Matlab的。创建一个循环以在每次迭代时更改变量大小

时间:2013-11-29 15:48:07

标签: matlab variables

我目前正在尝试运行一个调用特定函数的脚本,但是想要在一个循环中调用该函数,该循环将其中一个输入变量减半,大约进行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)

1 个答案:

答案 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