MathGroup Archive 2011

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

Search the Archive

Re: Problems with a first order differential equation

  • To: mathgroup at smc.vnet.net
  • Subject: [mg123432] Re: Problems with a first order differential equation
  • From: Bert RAM Aerts <bert.ram.aerts at gmail.com>
  • Date: Wed, 7 Dec 2011 06:14:23 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • References: <jb4p9j$gsc$1@smc.vnet.net>

On 30 nov, 09:25, Pippo <dinodebla... at yahoo.it> wrote:
> Dear all,
>
> I have a list of values (2-dimensional). data={{xi,yi}...}
> And I finally am able to fit them as the example below:
> and find the parameters A and B
> -----------------------------------
> Clear[y];
> data = {{1, 0.033}, {2, 0.054}, {5, 0.088}};
> With[{C = 1/9},
>   Column[{
>     model = DSolve[
>        {y'[t] == -A (y[t])^2 + B (C - y[t]), y[0] == 0},
>        y[t], t][[1]],
>     param = FindFit[data, y[t] /. model, {A, B}, t],
>     Plot[y[t] /. model /. param, {t, 0, Max[data[[All, 1]]]},
>      ImageSize -> 400, AxesLabel -> {"t", "y[t]"},
>      Epilog -> {Red, AbsolutePointSize[5], Point[data]}]}]] // Quiet
> ---------------------------
> Thanks to Bob Hanlon.
>
> However I would like to fit the same data by using different exponents of the term y[t])^2 which appear on the right hand side of the differential equation:
> for example I'd like to use:
>
> {y'[t] == -A (y[t])^3 + B (C - y[t]), y[0] == 0},
> or
> {y'[t] == -A (y[t])^(2.5) + B (C - y[t]), y[0] == 0},
>
> Is that anyway to fit a list of two-dimensional by using the models above?
>
> Thanks.
> Dino

The book Mathematica Navigator from Heikki Ruskeep=E4=E4 3rd edition on
page 879 gives you the answer:

Clear["Global`*"]; c = 1/9; data = {{1, 0.033}, {2, 0.054}, {5,
0.088}};

model[a_?NumericQ, b_?NumericQ] :=
 model[a, b] =
  y /. NDSolve[{y'[t] == -a (y[t])^3 + b (c - y[t]), y[0] == 0},
     y, {t, 0, 6}][[1]]

param = FindFit[data, model[a, b][t], {{a, 1}, {b, 1}}, t]

{a -> 3.23777, b -> 0.341321}

Plot[model[a, b][t] /. param, {t, 0, 6},
 Epilog -> {Red, AbsolutePointSize[5], Point[data]}]

Kind regards,

Bert



  • Prev by Date: Study of a real function
  • Next by Date: trap divide error with sqrt
  • Previous by thread: Re: Study of a real function
  • Next by thread: trap divide error with sqrt