[已解决] 4阶龙格库塔计算不出结果?能给看看指出哪里有问题

[复制链接]
dccf1234 发表于 2021-1-8 17:49:08
%marunge4.m
function [x, y]=marunge4(dyfun,xspan,y0,h)
%用途: 4阶经典, 龙格库塔格式解常微分方程y'=f(x,y), y(z0)=y0
%格式: [x,y]=marunge4(dyfun ,xspan,y0,h) dyfun为函数f(x,y),
%xspan为求解区间[x0,xn],y0为初值h为步长,x返回节点,y返回数值解
format short;
x=xspan(1):h:xspan(2); y(1)=y0;
for n=1:(length(x)-1)
k1=feval(dyfun,x(n), y(n));
k2=feval(dyfun,x(n)+h/2,y(n)+h/2*K1);
k3=feval(dyfun, x(n)+h/2, y(n)+h/2*k2);
k4=feval(dyfun,x(n+1), y(n)+h*k3);
y(n+1)=y(n)+h*(k1+2*k2+2*k3+k4)/6;
end
x=x'; y=y';



clear;
dyfun=inline('y-exp(x)*cos(x)');
[x,y]=marunge4(dyfun,[0,3],1,0.1);[x';y']
plot(x,y,'r')
legend('4阶龙格库塔法')


最佳答案


20141303 发表于 2021-1-8 22:02:59
仅供参考
  1. k2=feval(dyfun,x(n)+h/2,y(n)+h/2*K1);
复制代码
中K1的K应小写
回复此楼

1 条回复


20141303 发表于 2021-1-8 22:02:59
仅供参考
  1. k2=feval(dyfun,x(n)+h/2,y(n)+h/2*K1);
复制代码
中K1的K应小写
回复此楼
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
热门教程
站长推荐
快速回复 返回顶部 返回列表