Runge Kutta方法求解常微分方程

本文详细介绍了如何使用二阶和四阶Runge-Kutta方法求解常微分方程,通过实例演示了改进的Euler方法和标准四阶格式,并展示了它们在初值问题上的应用。对比分析了两种方法的精度,强调了四阶方法在提高数值解的准确性方面的优势。
摘要由CSDN通过智能技术生成

Runge Kutta方法求解常微分方程


参考书籍:应用数学基础下

常微分方程

  一阶常微分方程形式如下:
在这里插入图片描述

二阶Runge Kutta法

  改进的Euler格式如下:
在这里插入图片描述
  例题:用改进的Euler格式求解初值问题:
在这里插入图片描述
解:根据上面公式可以列出改进的Euler格式为:
在这里插入图片描述
取步长为h=0.1,初值y0=1,数值结果和解析结果如下表所示:

xnyny(xn)
0.11.095909091.09544511
0.21.184096571.18321596
0.31.266201361.26491106
0.41.343360151.341640798
0.51.416401931.41421356
0.61.485955601.48323970
0.71.552514091.54919334
0.81.616474781.61245155
0.91.678166361.67332005
1.01.737867401.73205081

代码如下:

clear;clc;
h=0.1;
xn=0;
yn=1;
for n = 1:10
    K1 = yn - 2*xn/yn;
    K2 = yn + h*K1 - 2*(xn + h)/(yn + h*K1);
    yn_1 = yn + h/2*(K1 + K2);
    xn = xn + h;
    yn = yn_1;
    yn_1
end

四阶Runge Kutta法

标准四阶Runge Kutta格式为:
在这里插入图片描述
  例题:用改进的Euler格式求解初值问题:
在这里插入图片描述
解:计算格式为:
在这里插入图片描述
取步长为h=0.1,初值y0=1,数值结果和解析结果如下表所示:

xnyny(xn)
0.11.095445531.09544511
0.21.183216741.18321596
0.31.264912221.26491106
0.41.341642351.341640798
0.51.414215571.41421356
0.61.483242221.48323970
0.71.549196451.54919334
0.81.612455341.61245155
0.91.673324651.67332005
1.01.732056361.73205081

  可见,四阶Runge Kutta法相比二阶Runge Kutta精度更高。
代码如下:

clear;clc;
xn=0;
yn=1;
h=0.1;
for n=1:10
    K1 = yn-2*xn/yn;
    K2 = yn + h/2*K1 - (2*xn+h)/(yn+h/2*K1);
    K3 = yn + h/2*K2 - (2*xn+h)/(yn+h/2*K2);
    K4 = yn + h*K3 - 2*(xn + h)/(yn + h*K3);
    yn_1 = yn + h/6*(K1 + 2*K2 + 2*K3 + K4);
    xn = xn + h;
    yn = yn_1;
    yn_1
    pred = sqrt(1 + 2*xn)
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值