我使用的是RK4算法:
xlabel('x')
ylabel('y')
h=0.05;
fprintf ('\n First block \n');
xx = [0:h:1];
Nodes = length(xx);
yy = zeros(1,Nodes);
for i=1:Nodes
fp(i)=feval('edo',-1,xx(i));
end
E=RK4_h('edo',0,1,-1,h);
plot(E);
fprintf ('\n%f',E);
在我的主脚本中,我将其称为每个值:
edo
问题是当我尝试将RK4算法与function edo = edo(y,t)
edo = 6*((exp(1))^(6*t))*(y-(2*t))^2+2;
公式一起使用时:
y(0)=8
结果不合逻辑,例如,真实值为:y(1)=11,53
,int
。但估计并不接近。 E向量中的任何一个坐标代表了该问题的可行方法,因此我不知道这是否是正确的实现。
实施有一个基本错误?
答案 0 :(得分:1)
函数edo
将t
作为第一个参数,将y
作为第二个参数。您反转参数。
你的功能应该是:
function edo = edo(t,y) % NOT edo(y,t)
edo = 6*((exp(1))^(6*t))*(y-(2*t))^2+2;