Solving an ODE when the function is given as discrete values -matlab-

You can use interp1 to create an interpolated lookup table function: fx = [0.5644 0.6473 0.7258 0.7999 0.8697 0.9353 0.9967 1.0540 1.1072 1.1564 … 1.2016 1.2429 1.2803 1.3138 1.3435 1.3695 1.3917 1.4102 1.4250 1.4362 … 1.4438 1.4477 1.4482 1.4450 1.4384 1.4283 1.4147 1.3977 1.3773 1.3535 … 1.3263 1.2957 1.2618 1.2246 1.1841 1.1403 1.0932 1.0429 0.9893 … Read more

Error in RK4 algorithm in Python

Two different errors were obvious in the first parsing. (was not an error, ifft is indeed the complete inverse of fft. This might not be the case in other libraries.) In the RK4 step, you have to decide on one place for the factor h. Either (as example, the others analogously) k2 = f(t+0.5*h, y+0.5*h*k1) … Read more

Absolute error of ODE45 and Runge-Kutta methods compared with analytical solution

Your RK4 function is taking fixed steps that are much smaller than those that ode45 is taking. What you’re really seeing is the error due to polynomial interpolation that is used to produce the points in between the true steps that ode45 takes. This is often referred to as “dense output” (see Hairer & Ostermann … Read more