Hello guys, I've been trying some built-in package in Mathematica and I have few questions.
At first, I would like to solve my equation by using Runge-Kutta 4th order method. As I was looking into the tutorial, there's few types of equations such as Euler Equation and others as well. So for my equation, I've been using
Method -> "ExplicitRungeKutta", "StartingStepSize" -> 1/1000]
Then as I search online, I found some other ways, to use Runge-Kutta Equations, for example
ClassicalRungeKuttaCoefficients[4, prec_] := With[{amat = {{1/2}, {0, 1/2}, {0, 0, 1}}, bvec = {1/6, 1/3, 1/3, 1/6}, cvec = {1/2, 1/2, 1}}, N[{amat, bvec, cvec}, prec]]
Followed by,
Method -> {"ExplicitRungeKutta", "DifferenceOrder" -> 4, "Coefficients" -> ClassicalRungeKuttaCoefficients}, "StartingStepSize" -> 1/1000]
And finally, I also found some manual input of Runge-Kutta 4th Order Equation from http://www.cfm.brown.edu/
Well I tried to use this manual input equation instead but, there is something I don't understand at all
RK4s[f_, {x0_, xn_}, y0_, steps_] :=
Block[{xold = x0, yold = y0, sollist = {{x0, y0}}, x, y, n, h},
h = N[(xn - x0)/steps];
Do[xnew = xold + h;
xhalf = xold + h/2;
k1 = f /. {x -> xold, y -> yold};
k2 = f /. {x -> xhalf, y -> yold + k1*h/2};
k3 = f /. {x -> xhalf, y -> yold + k2*h/2};
k4 = f /. {x -> xnew, y -> yold + k3*h};
ynew = yold + (h/6)*(k1 + 2*k2 + 2*k3 + k4);
sollist = Append[sollist, {xnew, ynew}];
xold = xnew;
yold = ynew, {steps}];
Return[sollist[[steps + 1]]]]
I'm new in Mathematica and I need your guidance. Thank you very much.