四阶龙格-库塔法求解常微分方程的初值问题-matlab通用程序

参考教材《数值分析》李乃成.梅立泉

clear
clc
format long
m=input('请输入常微分方程的阶数m=');
a=input('请输入x下限a=');
b=input('请输入x上限b=');
h=input('请输入步长h=');
ym=input('令y(1,1)=y,y(2,1)=y’,y(3,1)=y’’...请输入ym=','s');     %输入的时候必须按照这个形式输入y1=y(1,1);
if m==1                                               %一阶初值问题单独求解
    mm=(b-a)/h;
    y(1,1)=input('请输入在初值点的函数值f(a)=');
    x=a;
    y11(1)=y(1,1);
    for k1=2:(mm+1)
        y1=y(1,1);
        K(1,1)=h*(eval(ym));                         %计算K1
        x=x+h/2;
        y(1,1)=y1+K(1,1)/2;
        y1=y(1,1);
        K(1,2)=h*(eval(ym));                         %计算K2
       

你可能感兴趣的:(matlab,算法,function)