[Date Index]
[Thread Index]
[Author Index]
Re: FindFit / NonlinearFit Problems
*To*: mathgroup at smc.vnet.net
*Subject*: [mg65673] Re: FindFit / NonlinearFit Problems
*From*: "Ray Koopman" <koopman at sfu.ca>
*Date*: Thu, 13 Apr 2006 02:19:49 -0400 (EDT)
*References*: <e1il6r$40g$1@smc.vnet.net>
*Sender*: owner-wri-mathgroup at wolfram.com
Xoedusk wrote:
> Hello. I am trying to do a NonlinearFit or Findfit, but I get the
> following cryptic error:
>
> FindFit::sszero: The step size in the search has become less than the \
> tolerance prescribed by the PrecisionGoal option, but the gradient is
> larger \
> than the tolerance specified by the AccuracyGoal option. There is a \
> possibility that the method has stalled at a point which is not a local
> \
> minimum.
>
> My data is
> {{0.345721, 0.0351973}, {0.523381, 0.0267363}, {0.699319, 0.0149018},
> {0.871647, 0.0036456}, {1.04792, 0.00167384}, {1.22115, 0.0413637},
> {1.39689, 0.234294}}
>
> My model is
> \!\(A*\((\((\(n\^2\) Cos[Î¸]\ - \ \@\(n\^2 -
> Sin[Î¸]\^2\))\)\/\((\(n\^2\) \
> Cos[Î¸]\ + \ \@\(n\^2 - Sin[Î¸]\^2\))\))\)\^2 + C\)
>
> Or in more-readable terms,
> A* ((n^2 Cos[Î¸] - Sqrt[n^2 - Sin[Î¸]^2])/(n^2 Cos[Î¸] + Sqrt[n^2 -
> Sin[Î¸]^2]))^2 + C
>
> My pars are
> {n, A, C}
>
> My vars are
> Î¸
>
> I am typing
> \!\(\(\(\ \)\(FindFit[dataRUnoErrorRad, A*\((\((\(n\^2\) Cos[Î¸]\ - \
> \
> \@\(n\^2 -
> Sin[Î¸]\^2\))\)\/\((\(n\^2\) Cos[Î¸]\ + \ \@\(n\^2 -
> Sin[Î¸]\^2\))\))\)\^2 \
> + C, {n, A, C}, Î¸\ ]\)\)\)
>
> Any help would be very very appreciated! I am able to get a nice fit by
> hand, but i really need good numbers via mathematica.
Since n is always squared, use m = n^2.
Then notice that the dependent variable is linear in
In[5]:= x[t_,m_] := ((m Cos[t] - Sqrt[m - Sin[t]^2])/
(m Cos[t] + Sqrt[m - Sin[t]^2]))^2
The residual sum of squares from the linear regression is
In[6]:= f[m_?NumericQ] := QRDecomposition[{1,x[#[[1]],m],#[[2]]}&/@
data][[2,3,3]]^2
and
In[7]:= Plot[f[m],{m,1,10}];
suggests a minimum just beyond 2.
In[8]:= FindMinimum[f[m],{m,2}]
Out[8]= {2.486752566197999`*^-7, {m -> 2.298357787509425`}}
I leave A & C to you (but Mathematica will object to "C").
Prev by Date:
**Re: Reaction-diffusion PDEs**
Next by Date:
**Re: A conditional random number generation problem (please help me!)**
Previous by thread:
**FindFit / NonlinearFit Problems**
Next by thread:
**bug in Partition?**
| |