rk.m

来自「自学Matlab必备的_60_个小程序代码.rar」· M 代码 · 共 19 行

M
19
字号
%四阶RK法求解常微分方程
function y=RK(a,b,N,af);
h=(b-a)/N;
x(1)=a;
y(1)=af;
jqj(1)=af;
for i=2:N+1
    K1=f(x(i-1),y(i-1));
    K2=f(x(i-1)+h/2,y(i-1)+h*K1/2);
    K3=f(x(i-1)+h/2,y(i-1)+h*K2/2);
    K4=f(x(i-1)+h,y(i-1)+h*K3);
    y(i)=y(i-1)+(K1+2*K2+2*K3+K4)/6;
    x(i)=x(i-1)+(i-1)*h;
    jqj(i)=x(i)+exp((-x(i)));
end
[x',y',jqj']
er=norm(y-jqj,2)/norm(y)
plot(x',y','r',x',jqj','g');
legend('RK法','精确解');

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?