Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.soft-sys.math.mathematica > #16619

Re: FindFit and LeastSquares

From Bill Rowe <readnews@sbcglobal.net>
Newsgroups comp.soft-sys.math.mathematica
Subject Re: FindFit and LeastSquares
Date 2014-03-10 08:37 +0000
Message-ID <lfjtjo$hh5$1@smc.vnet.net> (permalink)
Organization Time-Warner Telecom

Show all headers | View raw


On 3/8/14 at 2:43 AM, lipson.alexandra@gmail.com (Alexandra Lipson)
wrote:

>I have an assignment to use Linear Least Squares to determine the
>orbital parameters given the following observations as (x,y)
>coordinates:  (1.02,.39), (.95,.32), (.87,.27), (.77,.22),
>(.67,.18), (.56,.15), (.44,.13), (.30,.12), (.16,.13), (.01,.15). I
>am asked to plot the resulting orbit for the given data points.

>Here is what I have been playing with:

>a1 = {{1.02, .39}, {.95, .32}};
>b1 = {{.87, .27}, {.77, .22}};
>c1 = {{.67, .18}, {.56, .15}};
>d1 = {{.44, .13}, {.3, .12}};
>e1 = {{.16, .13}, {.01, .15}};
>r = ListPlot[{a1, b1, c1, d1, e1}]
>points = {{a1}, {b1}, {c1}, {d1}, {e1}};
>data = {{1.02, .39}, {.95, .32}, {.87, .27}, {.77, .22}, {.67, .18}, {.56, \
>.15}, {.44, .13}, {.3, .12}, {.16, .13}, {.01, .15}}

Note, ListPlot[data] will give you the same plot of your data as
what you did with a lot less typing.

>model = a*y^2 + b*x*y + c*x + d*y + e - x^2
>FindFit[data, model, {a, b, c, d, e}, {x, y}]
>l = LeastSquares[{a1, b1, c1, d1, e1},_]

Look at the documentation for FindFit and LeastSquares. Neither
can deal with a model in implicit form as you have it.

You can construct an array for FindFit for each of your data
points with rows formated as:

{y^2,x*y,x,y,e,x^2,0}

where each part above is numeric computed from your {x,y} pairs.
With that array, you would call FindFit as follows:

FindFit[dataArray,,a*y2 + b*xy + c*x + d*y + e - x2,{a, b, c, d, e},{y2,xy,x,y,x2}]

A somewhat different approach would be to create an explicit
expression of the sum of squares and use NMinimize. That is:

x = data[[All, 1]]; y = data[[All, -1]];
error = Total[model^2] // Simplify;
sol = NMinimize[error, {a, b, c, d, e}]

Back to comp.soft-sys.math.mathematica | Previous | Next | Find similar


Thread

Re: FindFit and LeastSquares Bill Rowe <readnews@sbcglobal.net> - 2014-03-10 08:37 +0000

csiph-web