龙格-库塔四阶(rk4)

15次观看(过去30天)
丽贝卡
丽贝卡 2011年4月15日
回答: Meysam Mahooti 2021年5月5日
在实现龙格-库塔阶4格式(rk4) u1时,…,un使用算法计算:
对于I = 0,1,…,n-1
K1 = f (ti, ui),
K2 = f (ti + h/2, UI + h/2*k1),
K3 = f (ti + h/2, UI + h/2*k2),
K4 = f (ti + h, UI + h*k3),
Ui +1 = Ui + h/6 (k1 + 2k2 + 2k3 + k4)。
这部分代码是否可以在matlab中写成如下:
I = 1:n
K1 = h * feval (f, u(:,i));
K2 = h * feval (f, u(:,i) + k1/2);
K3 = h * feval (f, u(:,i) + k2/2);
K4 = h * feval (f, u(:,i) + k3);
u (:, i + 1) = (:, i) + h * (k1 + 2 * k2 + 2 * k3 + k4) / 6;
结束
我不太确定最后一行(u(:, I +1))中的“h”是否应该存在。
任何帮助都将不胜感激。

接受的答案

1月
1月 2011年4月15日
简单地比较伪代码:
K4 = f (ti + h, UI + h*k3)
用你的Matlab代码:
K4 = h * feval(f, u(:,i) + k3)
看一下,h已经包含在k1 k2 k3 k4中。
一个好主意是测试:整合COS曲线,看看结果是否如预期。
4评论
马特Tearle
马特Tearle 2011年4月15日
函数f是什么?(由此产生了“鸡蛋形图”)
但是从检查来看,您的代码看起来是正确的。也就是说,函数句柄比feval更好…:)

登录发表评论。

更多答案(1)

Meysam Mahooti
Meysam Mahooti 2021年5月5日
//www.tianjin-qmedu.com/matlabcentral/fileexchange/61130-runge-kutta-fehlberg-rkf78?s_tid=srchtitle

社区寻宝

在MATLAB中央找到宝藏,并发现社区可以如何帮助你!

开始狩猎!