龙格库塔函数三四阶函数matlab代码实现
三阶龙格—库塔法的计算公式为:
K1 g(xi,yi)
hhK2 g(xi ,yi K1)22 K3 g(xi h,yi hK1 2hK2)
yi 1 yi h(K1 4K2 K3)6
三阶龙格—库塔公式的Matlab程序代码:
function y = DELGKT3_kuta(f, h,a,b,y0,varvec)
format long;
N = (b-a)/h;
y = zeros(N+1,1);
y(1) = y0;
x = a:h:b;
var = findsym(f);
for i=2:N+1
K1 = Funval(f,varvec,[x(i-1) y(i-1)]);
K2 = Funval(f,varvec,[x(i-1)+h/2 y(i-1)+K1*h/2]);
K3 = Funval(f,varvec,[x(i-1)+h y(i-1)-h*K1+K2*2*h]);
y(i) = y(i-1)+h*(K1+4*K2+K3)/6;
end
format short;
DELGKT3_kuta
函数运行时需要调用下列函数:
function fv=Funval(f, varvec, varval)
var= findsym(f);
if length(var)<4
if var(1)==varvec(1)
fv=subs(f,varvec(1),varval(1));
else
fv=subs(f,varvec(2),varval(2));
end
else
fv=subs(f,varvec,varval);
end
三阶龙格—库塔求解一阶常微分方程应用实例。用三阶龙格—库塔法求下面常微分方程的数值解。
dy 2x 3y 2 dx 0 x 1
y(0) 1