MathGroup Archive 2013

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: NonlinearModelFit and Complex Data

  • To: mathgroup at smc.vnet.net
  • Subject: [mg132043] Re: NonlinearModelFit and Complex Data
  • From: Maria <rouelli at gmail.com>
  • Date: Mon, 25 Nov 2013 03:02:24 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: l-mathgroup@wolfram.com
  • Delivered-to: mathgroup-outx@smc.vnet.net
  • Delivered-to: mathgroup-newsendx@smc.vnet.net
  • References: <jnb50m$5m8$1@smc.vnet.net>

Update

The solution here worked for me:
http://forums.wolfram.com/mathgroup/archive/2010/Apr/msg00280.html

On Thursday, 26 April 2012 17:37:26 UTC+8, Maria  wrote:
> Hi,
> 
> 
> 
> I am trying to fit complex data to a complex function. 
> 
> 
> 
> Here's a snippet:
> 
> 
> 
> data = Import["http://apps.getcloudigniter.com/data/data.csv";];
> 
> 
> 
> fitData = 
> 
>   Table[{data[[i, 1]], data[[i, 2]] + I*data[[i, 3]]}, {i, 1, 
> 
>     Dimensions[data][[1]]}];
> 
> 
> 
> fitEqn[x_] := (aR + I aI) + ( bR + I bI)*(Abs[x - 79800.3]/
> 
>      1585.02) - (
> 
>    par1 (x - par1))/((cR + I cI)*((x - par1)^2 - 
> 
>       I par2/2 (x - par1) - 435093.75^2));
> 
> 
> 
> fit = NonlinearModelFit[fitData, 
> 
>   fitEqn[x] , {aR, aI, bR, bI, cR, cI, par1, par2}, x, 
> 
>   WorkingPrecision -> 100, MaxIterations -> 10000]
> 
> 
> 
> This gives me an error:
> 
> 
> 
> "The function value {....} is not a list of real numbers..."
> 
> 
> 
> On the other hand, FindFit gives me the same error but it works quite well by setting NormFunction -> (Norm[Abs[#^2]] &):
> 
> 
> 
> (* This works *)
> 
>  fit = FindFit[fitData, 
> 
>   fitEqn[x] , {aR, aI, bR, bI, cR, cI, par1, par2}, x, 
> 
>   NormFunction -> (Norm[Abs[#^2]] &), WorkingPrecision -> 100, 
> 
>   MaxIterations -> 10000]
> 
> 
> 
> And I get a fairly nice fit:
> 
> 
> 
> Show[ListPlot[
> 
>   Table[{data[[i]][[1]], data[[i]][[2]]}, {i, 1, 
> 
>     Dimensions[data][[1]]}], PlotStyle -> Red], 
> 
>  Plot [Re[fitEqn[x] /. fit], {x, data[[Dimensions[data][[1]]]][[1]], 
> 
>    data[[1, 1]]}, PlotStyle -> Blue]]
> 
> 
> 
> Show[ListPlot[Table[{data[[i]][[1]],data[[i]][[3]]},{i,1,Dimensions[\
> 
> data][[1]]}],PlotStyle->Red],Plot \
> 
> [Im[fitEqn[x]/.fit],{x,data[[Dimensions[data][[1]]]][[1]],data[[1,1]]}\
> 
> ,PlotStyle->Blue]]
> 
> 
> 
> However, I can't do the same modification to NonlinearModelFit(which I prefer to use since I need the additional information on fitting, e.g. ANOVA). Any tips on making it work? 
> 
> 
> 
> Thanks,
> 
> Maria




  • Prev by Date: Re: Help needed
  • Next by Date: Re: Solving complicated matrix equations
  • Previous by thread: Re: Local Variables in Do[]
  • Next by thread: Re: NonlinearModelFit and Complex Data