RE: Use of ShowProgress Option output

• To: mathgroup at smc.vnet.net
• Subject: [mg34799] RE: [mg34783] Use of ShowProgress Option output
• From: "Annetts, Dave (E&M, North Ryde)" <David.Annetts at csiro.au>
• Date: Fri, 7 Jun 2002 01:09:04 -0400 (EDT)
• Sender: owner-wri-mathgroup at wolfram.com

```Hi Andre,

> ... may be my question was not clear in detail, but I realy
> can't find a
> solution.
> I will show you an example from the help browswer to
> ilustrate my problem.
>
>
> data={{1.0,1.0,.126},{2.0,1.0,.219},{1.0,2.0,.076},{2.0,
>         2.0,.126},{.1,.0,.186}};
>
> NonlinearRegress[data,
>   theta1 theta3 x1/(1+theta1 x1+theta2
> x2),{x1,x2},{theta1,theta2,theta3},
>   RegressionReport->BestFitParameters,ShowProgress->True]

In essence, you want to retain the values of Chi^2 and your model
parameters?

Short of modifying the code in the package, I don't see how NonlinearRegress
is going to give you this so you'll need to do things "manually".

The idea is to loop, and append the results of each fit to a list which you
can plot.

Something like the following block should get you started.

diff[chsq_, csqo_] := 100. * Abs[chsq - csqo]/chsq;
Off[FindMinimum::fmlim];
prog = {};
csqo = 1.;
i = 0;
{ith1, ith2, ith3} = {1., 1., 1.};

While[diff[chsq, csqo] > 1.,
tmp = NonlinearRegress[data, th1 th3 x1 /(1 + th1 x1 + th2 x2),
{x1, x2},
{{th1, ith1}, {th2, ith2}, {th3, ith3}},
RegressionReport -> {FitResiduals, BestFitParameters},
MaxIterations -> 1
] ;
i += 1;
csqo = chsq;
chsq = #^2 & /@ (FitResiduals /. tmp);
chsq = Apply[Plus, chsq];

Print["it = ", i, " ", chsq, " ", csqo, " ", diff[chsq, csqo],
" ", {ith1, ith2, ith3} ];

ith1 = th1 /. (BestFitParameters /. tmp);
ith2 = th2 /. (BestFitParameters /. tmp);
ith3 = th3 /. (BestFitParameters /. tmp);
lst = {chsq, {BestFitParameters /. tmp}};
prog = AppendTo[prog, lst];
]

Points to note are:-
1.	The code is in no sense elegant or efficient -- I recall something
like this using FindMinimum in a FAQ on WRI's site so you may want to search
there further;
2.	For a given tolerance, altering MaxIterations gives you multiple
"bites" per step -- at 1, convergence is in 29 its but at 2, convergence is
in 5 steps.;
3.	Convergence rates are dependent upon both the definition of "diff"
and the tolerance;

Regards,

Dave.
--------------------------------------------------------
Dr. David Annetts             EM Modelling Analyst
Tel: (+612) 9490 5416         CSIRO DEM, North Ryde
Fax: (+612) 9490 5467         David.Annetts at csiro.au
Include "usual_disclaimers"
--------------------------------------------------------

```

• Prev by Date: Use of ShoWProgress option (part 2)
• Next by Date: Re: Is it possible to access internal variables? [CompoundExpression]
• Previous by thread: Use of ShowProgress Option output
• Next by thread: Re: Use of ShowProgress Option output