Re: changing algorithm, finding residuals w/FindFit
- To: mathgroup at smc.vnet.net
- Subject: [mg56724] Re: changing algorithm, finding residuals w/FindFit
- From: dh <dh at metrohm.ch>
- Date: Thu, 5 May 2005 06:01:09 -0400 (EDT)
- References: <d59l9q$6h6$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi Ed,
if you want linear least square, you can use the one liner:
points[[All, 2]] - ( Fit[points, {1, x, x^2}, x] /. x :> points[[All, 1]])
Note also ready made solutions in the the packages:
Statistics`LinearRegression`
Statistics`NonlinearFit`
with the option RegressionReport -> {FitResiduals}
The option "Method" can have following values:
Possible settings for Method include "ConjugateGradient", "Gradient",
"LevenbergMarquardt", "Newton" and "QuasiNewton", with the default being
Automatic.
Sincerely, Daniel
Edward Peschko wrote:
> hey all,
>
> I was wondering if there was a integral way to get the residuals that that least
> squares fit offered:
>
> points = { { 1,2 } , { 3, 4 } , {5,6} };
>
> fit = FindFit[points, c + d x + e x^2, {c,d,e}, x];
>
> { c -> ..., d -> ..., e -> ... }
>
> residuals = Residual[points, c + d + e x^2 /. fit, ResidualType -> squarex ],
>
>
> I would think that there would be a oneliner (or oneliner function) to express this
> succinctly, but I'm having difficulty expressing it.. The closest I could
> get to in perl is:
>
> @points = ( [1,2], [3,4], [5,6] );
> @residuals = map( [ $_->[0], ($_->[1] - &$function($_->[0]))**2 ], @$points);
>
>
> Also, is there a way to change the method which is used for FindFit and
> FindMinimum/FindMaximum? I see there's a Method attribute, but there doesn't
> seem to be any options for setting it, other than 'Automatic'. In particular,
> I'd like to use adaptive simulated annealing:
>
> http://www.ingber.com/#ASA
>
> for more complicated functons..
>
> Ed
>