MathGroup Archive 2003

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: How to include a constraint in NonlinearFit?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg44677] Re: How to include a constraint in NonlinearFit?
  • From: "Curt Fischer" <crf3 at po.cwru.edu>
  • Date: Thu, 20 Nov 2003 03:16:42 -0500 (EST)
  • References: <bpffju$lua$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

"L. Vergara" <lvergara at lauca.usach.cl> wrote in message
news:bpffju$lua$1 at smc.vnet.net...
> Hi,
>
> thanks to Curt Fisher, now I know how to to fit an array of preexisting
> data with a function defined by NDSolve (see http://tinyurl.com/v0n1)

The thanks should be to Carl Woll.  But I'm glad to have been able to help
you, Lautaro Vergra.

> f[y_,a_,b_] :=NDSolve[x'[y] == (y^2/2 + a y + b)/Sqrt[1 -(y^2/2 + a y +
> b)^2], x[0] == .6}, y, {y, 0, 1.5}];
>
> Here there is a constraint that must be satisfied: Abs[(y^2/2 + a y
> +b)^2]<1.
> Do you know how include this into NonlinearFit (or perhaps better, into
> NDSolve)?

One approach might be to abandon NonlinearFit[] and use Minimize[] instead.
I think this will work only if you have version 5.0.  Anyway, Minimize[]
accepts constraints as part of the input.

In[1]:=
? Minimize

Out[1]:=
Minimize[f, {x, y, ... }] minimizes f with respect to x, y, ... . \
Minimize[{f, cons}, {x, y, ... }] minimizes f subject to the constraints \
cons.

You'll need to change your fitting function from your "model" (the NDSolve
solution) to a cost function (the root-mean-square difference between your
NDSolve solution and your data, for example).

Happy minimizing.

-- 
Curt Fischer



> Thanks!
> Lautaro Vergara
>
>



  • Prev by Date: Re: Default Precision isn't reached yet no warning about convergence are generated
  • Next by Date: interpolation and plotting 3d data
  • Previous by thread: How to include a constraint in NonlinearFit?
  • Next by thread: Default Precision isn't reached yet no warning about convergence are generated