【发布时间】:2015-11-17 16:03:26
【问题描述】:
我编写了一个函数,它估计 e 的倒数并循环遍历 n 的值,直到近似值在实际值的给定 tolerance 范围内。
目前我使用这个代码:
function [approx, n] = calc_e(tolerance)
for n = 1:inf
approx = ((1-1/n)^n);
diff = (1/exp(1)) - approx;
if diff < tolerance, break; end
end
end
这很好用,但是有人告诉我,使用while 循环可能会更有效,但我不知道如何以这种方式进行。
有人能解释一下吗?
【问题讨论】:
-
我不认为它会对 matlab 产生任何影响
-
此外,函数的名称具有误导性,您近似于
1/e,而不是e(这需要 (1+1/n)^n -
你真的应该避免使用像
diff这样的内置函数名作为变量名。
标签: matlab loops for-loop while-loop