Re: FindFit and complex function?
- To: mathgroup at smc.vnet.net
- Subject: [mg80538] Re: FindFit and complex function?
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Sun, 26 Aug 2007 02:51:16 -0400 (EDT)
- Organization: The Open University, Milton Keynes, UK
- References: <falt1e$glh$1@smc.vnet.net>
Michael Ignatov wrote:
> I have ran into a problem of fitting my experimental data points to a
> function in mathematica.
> The function comes from a solution of five algebraic equations with 5
> variables. Very straight forward. Unfortunately cubic roots are present
> in the solution so when the function is evaluated at fixed parameters it
> always return a small imaginary part with the real part. The real parts
> are quite meaningful and imaginary parts are extremely small. For all
> practical purposes I can just drop the imaginary part. When I build a
> model function, which is just a linear combination of 5 solutions, I can
> evaluate it with fixed parameters and see that it describes my
> experimental points rather well. But FindFit fails to perform a search
> always stopping at the starting value. Any ideas on how to either drop
> imaginary part of the function completely or make FindFit work with a
> function that returns complex numbers?
The easiest way to discard very small imaginary parts is to use *Chop*.
For instance,
In[1]:= Exp[N[Range[4] Pi I]]
Out[1]= {-1. + 1.22465*10^-16 \[ImaginaryI],
1.- 2.44929*10^-16 \[ImaginaryI], -1. + 3.67394*10^-16 \[ImaginaryI],
1.- 4.89859*10^-16 \[ImaginaryI]}
In[2]:= Chop[%]
Out[2]= {-1., 1., -1., 1.}
--
Jean-Marc