我已经编写了一个rungekutta代码,它应该计算出一个特定的x范围。问题是教授。想要一个代码,不断增加自身,直到达到所需的答案。
我尝试使用'if'函数,但是它只能运行一次,并且不再工作(因此,甚至会导致数组长度不匹配。
代码:
orderDetails
数组长度错误(表明如果函数只能运行一次)
null
它应该在'z'变量中继续增加+1,直到y(i + 1)的答案小于11。(正确的z应该是9.5)
答案 0 :(得分:1)
按照@medicine_man的建议,您需要一个while
循环:
h=0.5;% step size
z=0.5;
x = 0;
y = 50;% initial condition
F_xy = @(t,x) (37.5-3.5*x);%function
m = 0;
while y(m+1) > 11
m = m+1;
x = x+h;
k_1 = F_xy(x,y(m));
k_2 = F_xy(x+h,y(m)+h*k_1);
y(m+1) = y(m) + (h/2)*(k_1+k_2);% main equation
end
figure;
plot(0:h:x, y);
在y(m+1) > 11
循环的每次迭代开始时检查终止条件while
。在循环中,您可以增加x
的值并更新y
数组。循环运行直到满足终止条件。
以上代码的结果: