Re: Use of ShoWProgress option (part 2)
- To: mathgroup at smc.vnet.net
- Subject: [mg34830] Re: Use of ShoWProgress option (part 2)
- From: Peter Pein <petsie at arcor.de>
- Date: Sat, 8 Jun 2002 05:22:05 -0400 (EDT)
- References: <adpfda$j3q$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Andre Heinemann wrote:
<snip>
> My aim is to get !automaticaly! a list like this:
>
> {{Iteration:1,{1.,1.,1.}},...,{Iteration:11,{3.13156,15.1594,0.780051}},...,}
>
>
> May be this problem is very easy to solve, but I found only the "Hand
> made solution"
> of copy and paste - this is not the way I want to use a computer (-;
>
> So if you have any idea how to solve this problem, please give me a hint.
>
> ----------------------------end of original message ------------------------------------------
>
>
> Thanks,
> Andre
>
>
Hi Andre,
while having a look at the sources, you might have noticed the call of
Internal`FindNonlinearFit[...] (line 1108 in my version). So replacing
any Print or Message call is not possible. My first idea is to redirect
the output stream to a temporary file to be read in later:
------------
<< Statistics`NonlinearFit`
so = OutputStream["stdout", 1];
st = OpenWrite["tmp", PageWidth -> \[Infinity]];
$Output = $Output /. so -> st;
data = {{1.0, 1.0, .126}, {2.0, 1.0, .219},
{1.0, 2.0, .076}, {2.0, 2.0, .126}, {.1, .0, .186}};
result = NonlinearRegress[data,
theta1 theta3 x1/(1 + theta1 x1 + theta2 x2),
{x1, x2}, {theta1, theta2, theta3},
RegressionReport -> BestFitParameters, ShowProgress -> True];
$Output = $Output /. st -> so;
Close["tmp"];
st = OpenRead["tmp"];
rtmp = ReadList[st, String];
Close["tmp"];
Map[Rest[Apply[List, ToExpression[#]]] &, rtmp] // MatrixForm
-------------
If you want to see what happens while Mathematica is busy, append st to $Output
first and remove it from the list after finishing NonlinearRegress[].
Peter