Mathematica 9 is now available
Student Support Forum
-----
Student Support Forum: 'getting values out of interpolating functions' topicStudent Support Forum > General > Archives > "getting values out of interpolating functions"

Next Comment >Help | Reply To Topic
Author Comment/Response
sean kim
09/14/03 6:22pm

hello group.

it appears that the mathgroup has been down for sometime, so I decided to try this group.

i'm trying to get specific values out of interpolaing functions generated by NDSolve.

What I woudl like to do is to find the value of t that correspond to the maximum y[t] over the given range of t.

if there are more than maximum, then the first maximum y[t]value and the t value associated with it.

then after that, I have to figure out what the half maximal y[t] value is and the time associated with that.

i'm using lorenz equation as an example.

thanks much group.

In[10]:=
solution =
NDSolve[{Derivative[1][x][t] == -y[t] - z[t], x[0] == -0.04,
Derivative[1][y][t] == x[t] + 0.425*y[t], y[0] == -0.3,
Derivative[1][z][t] == 2 - (4 - x[t])*z[t], z[0] == 0.52}, {x[t], y[t],
z[t]}, {t, 0, 25}, Method -> RungeKutta]
(*ParametricPlot3D[Evaluate[{x[t], y[t], z[t]} /. solution], {t, 0, 25},
PlotPoints -> 1000, PlotRange -> All];*)

(*pulling out interpolating functions*)
interp = solution[[1, 2, 2]]

(*finding the maxvalues for y[t]*)
maxYoft = Max[Table[interp, {t, 0, 25, 1}]]

(*finding the t value for max Y this doesn't work.
is there any other ways to do this? instead opf using findroot?*)
tformaxY = FindRoot[interp == maxYoft, {t, 0}]

(*half maximal y*)
halfmaxY = ( maxYoft)/2

(*tfor half maximal y*)
{t, halfmaxY}
tforhalfmaxY = FindRoot[interp == halfmaxY, {t, 0}]

Plot[Evaluate[y[t] /. solution], {t, 0, 25}];


URL: ,

Subject (listing for 'getting values out of interpolating functions')
Author Date Posted
getting values out of interpolating functions sean kim 09/14/03 6:22pm
Re: getting values out of interpolating functions Henry Lamb 09/24/03 7:26pm
Next Comment >Help | Reply To Topic