Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

NonlinearModelFit and Complex Data

253 views
Skip to first unread message

Maria

unread,
Apr 26, 2012, 5:37:26 AM4/26/12
to
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

Maria

unread,
Nov 25, 2013, 3:01:58 AM11/25/13
to
Update

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

Peter Klamser

unread,
Nov 25, 2013, 11:30:51 PM11/25/13
to
I can not read Data!

says Peter

2013/11/25 Maria <rou...@gmail.com>:
> 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:
0 new messages