MATLAB一阶常微分方程数值解利用四阶龙格库塔方法
时间: 2023-06-30 18:21:42 浏览: 183
常微分方程的数值解法MATLAB程序_龙格库塔方法求解常微分方程数值解_Euler法求解常微分方程_改进的欧拉法求解常微分方程_
5星 · 资源好评率100%
好的,下面是MATLAB实现一阶常微分方程数值解的四阶龙格库塔方法的代码示例:
```matlab
% 定义常微分方程
f = @(t,y) y - t^2 + 1;
% 定义初始条件
y0 = 0.5;
t0 = 0;
% 定义步长和计算次数
h = 0.2;
n = 5;
% 初始化
t = zeros(n+1,1);
y = zeros(n+1,1);
t(1) = t0;
y(1) = y0;
% 迭代计算
for i = 1:n
k1 = h*f(t(i),y(i));
k2 = h*f(t(i)+h/2,y(i)+k1/2);
k3 = h*f(t(i)+h/2,y(i)+k2/2);
k4 = h*f(t(i)+h,y(i)+k3);
y(i+1) = y(i) + 1/6*(k1+2*k2+2*k3+k4);
t(i+1) = t(i) + h;
end
% 输出结果
table(t,y)
% 绘制图像
plot(t,y)
xlabel('t')
ylabel('y')
title('4th-order Runge-Kutta method')
```
上述代码中,我们同样定义了常微分方程y' = y - t^2 + 1,初始条件为y(0) = 0.5,步长为h = 0.2,计算5次。然后使用四阶龙格库塔方法迭代计算y的值,并输出结果和绘制图像。
通过比较欧拉方法和四阶龙格库塔方法的结果,你可以发现四阶龙格库塔方法的数值解更加精确。
阅读全文