Show results of Runge-Kutta Solution
- To: mathgroup at smc.vnet.net
- Subject: [mg70218] Show results of Runge-Kutta Solution
- From: nausea1995 at gmail.com
- Date: Sat, 7 Oct 2006 07:09:00 -0400 (EDT)
Hi all. I am trying to solve a DE with Exact, Euler, RK 2nd order, and
RK 4th order.
I have been able to solve the equation ( y'[t] = 3 Cos[t] - 2 y[t],
y[0]=0 ) using all of these methods with code provided by my
instructor, but now I am trying to NestList these results for h= .01
and n=30 for all 4 methods, and create a table.
I can plot the four solutions together, the problem comes when I try to
assemble a NestList for use in a table. The code I was given...
--------
tablestep[{t_, a1_, a2_}] := {t + h, exactsol[t + h], Eulerstep[{t,
a2}][[2]]}
tablevals = NestList[tablestep, {0, .5, .5}, 30]
--------
and then to create the table...
--------
TableForm[tablevals[[{1, 2, 3,
4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
22, 23,
24, 25, 26, 27, 28, 29, 30}]], TableHeadings -> {{"h=" <>
ToString[h]}, {"t", "Exact",
"Euler"}}]
--------
Works perfect, for those two solutions, but I am not sure how to add my
solutions RK4step and Heunstep. I've tried several variations but
either get 'RK4Step[*]' in the solution or a list of two values for a
solutions such as {1, 2, {0, 1}} or something along those lines. I
guess I don't really understand the syntax of the Eulerstep[{t, a2} and
how that needs to be setup for extra solutions. I gave up on it and
decided I'd place the values into excel and concatenate it into a list
I could put back into Mathematica, but even then, when I ran the
code...
---------
RK4step[{t_, y_}] := Module[{k1, k2, k3, k4, hh = .5h},
k1 = f[t, y];
k2 = f[t + hh, y + hh k1];
k3 = f[t + hh, y + hh k2];
k4 = f[t + h, y + h k3];
\!\(\(\({t + h, \ y + h\/6\ \((k1\ + \ 2 k2 + 2 k3 +
k4)\)}\)\(]\)\)\)
h = 0.1;
RK4points = NestList[RK4step, {0, 0}, 30];
--------
I don't get a list like I do when I did the NestList for the Euler
solution. I can plot it fine, but if I have to export it to excel and
create my final list and put it back, I need to somehow get the
calculated values.
Any help would be greatly appreciated.