【发布时间】:2014-12-04 18:39:52
【问题描述】:
我对 MATLAB 比较陌生,而且我很容易陷入一个特定的问题。
我有一个方程式,我试图使用 while 循环求解。它通过猜测某个参数 e_0 并将其填充到方程中来工作,直到它收敛。下面是一个示例,其中初始猜测值等于 100:
clear all
i=1;
e_0=100
e_1= e_0 + log(0.6) - log(exp(e_0)/(exp(e_0)+1))
while( i < 1e10 & abs((e_1 - e_0)) > 1e-12),
i = i + 1;
e_0=e_1;
e_1= e_0+log(0.6)-log(exp(e_0)/(exp(e_0)+1))
end
i
现在我想要完全相同的程序,但同时处理多个 e_0 值,例如101, 102, 103 等等,并计算需要多少次迭代。我认为我因此需要为此放置一个 for 循环。我的想法是这样的:
clear all
i=1;
for e_0 = 100:105
e_1= e_0+log(0.6)-log(exp(e_0)/(exp(e_0)+1))
while( i < 1e10 & abs((e_1 - e_0)) > 1e-12),
i = i + 1;
e_0=e_1;
e_1= e_0+log(0.6)-log(exp(e_0)/(exp(e_0)+1))
end
end
i
但是,现在来自不同猜测值的所有迭代都显示在彼此下方,我总共得到 1519 次迭代。例如,如何将每个初始猜测值所需的迭代次数存储到一个变量中?
我希望它足够清楚......谢谢!
【问题讨论】:
标签: matlab loops for-loop while-loop nested