【发布时间】:2016-03-02 03:32:24
【问题描述】:
我正在尝试编写 f(x)=e^(-x)-sin(x) 的割线法以找到最小的正根。我的代码似乎出错了。
%// Initial values and tolerance
x(0) = 2;
x(1) = 10;
f = @(x) exp(-x)-sin(x);
error = 0.001;
%// Different iterations
for k=0:100
x(k+1) = x(k) - (f(x(k)))*((x(k) - x(k-1))/(f(x(k)) - f(x(k-1))));
if abs(x(k)-x(k-1)) < error
return;
end
end
【问题讨论】:
-
在 k=0 时,x(k-1) 是 x(-1),for 循环不应该从 1 开始。
-
你不能在 Matlab 中访问
x(0),所以应该从 2 开始