我目前正在尝试运行一个调用特定函数的脚本,但是想要在一个循环中调用该函数,该循环将其中一个输入变量减半,大约进行4次迭代。
在下面的代码中,函数已替换为另一个for循环和上述输入。
for循环在函数上运行Euler方法,并且工作正常,它只是试图以重复的较小步长运行它而我遇到了麻烦。
欢迎任何帮助。
f = '3*exp(-x)-0.4*y';
xa = 0;
xb = 3;
ya = 5;
n = 2;
h=(xb-xa)/n;
x = xa:h:xb;
% h = zeros(1,4);
y = zeros(1,length(x));
F = inline(f);
y(1) = ya;
for j = 1:4
hOld = h;
hNew = hOld*0.5;
hOld = subs(y(1),'h',hNew);
for i = 1:(length(x)-1)
k1 = F(x(i),y(i));
y(i+1,j+1) = y(i) + h*k1;
end
end
disp(h)
答案 0 :(得分:0)
就像这样
for j = 1:4
h=h/2;
x = xa:h:xb;
y = zeros(1,length(x));
y(1) = ya;
for i = 1:(length(x)-1)
k1 = F(x(i),y(i));
y(i+1,j+1) = y(i) + h*k1;
end
end