RK3_heun
Propagates the state vector forward one time step using Heun's thirdorder method (RungeKutta thirdorder method).
Back to IVP Solver Toolbox Contents.
Contents
Syntax
y_next = RK3_heun(f,t,y,h)
Description
y_next = RK3_heun(f,t,y,h) returns the state vector at the next sample time, y_next, given the current state vector y at time t, the function f(t,y) defining the ODE , and the step size h.
Input/Output Parameters
Variable  Symbol  Description  Format  
Input  f  multivariate, vectorvalued function () defining the ordinary differential equation
 inputs to f are the current time (t, 1×1 double) and the current state vector (y, p×1 double)  output of f is the state vector derivative (dydt, p×1 double) at the current time/state 
1×1 function_handle 

t  current sample time  1×1 double 

y  state vector (i.e. solution) at the current sample time  p×1 double 

h  step size  1×1 double 

Output  y_next  state vector (i.e. solution) at the next sample time,  p×1 double 
Note
 This documentation is written specifically for the case of vectorvalued ODEs. However, this function can also be used for matrixvalued ODEs of the form , where .
Example
Consider the initial value problem
Find the solution until using RK3_heun. Then, compare your result to the solution found by solve_ivp using Heun's 3rdorder method.
First, let's define our ODE () and initial condition in MATLAB.
f = @(t,y) y; y2 = 3;
Let's define a time vector between and with a spacing of .
h = 0.01; t = (2:h:10)';
Solving for using RK3_heun and comparing the result to the result obtained using solve_ivp with Heun's 3rdorder method,
% preallocate vector to store solution y = zeros(size(t)); % store initial condition y(1) = y2; % solving using "RK3_heun" for i = 1:(length(t)1) y(i+1) = RK3_heun(f,t(i),y(i),h); end % solving using "solve_ivp" [t_ivp,y_ivp] = solve_ivp(f,[2,10],y2,h,'RK3 Heun'); % maximum absolute error between the two results max(abs(y_ivpy))
ans = 1.533408067189157e09
As expected, the two methods obtain identical results.
See also
RK1_euler  RK2  RK2_heun  RK2_ralston  RK3  RK3_ralston  SSPRK3  RK4  RK4_ralston  RK4_38