Matlab fzero 命令用法

Matlab fzero command usage

我正在尝试围绕点 x=-2 逼近方程 x+sin(x) = -e^x 的解。我使用了这条线:

fzero('x+sin(x) == -exp(x)', -2);

然而,这给了我错误的答案。我认为我的错误是在表达式中使用了 ==,它应该是:

fzero('x+sin(x)+exp(x)', -2);

谁能解释一下这背后的原因?

引用MATLAB documentation

x = fzero(fun,x0) tries to find a point x where fun(x) = 0.

fzero 不会为您重新排序方程式,它只能计算 root or zero of a given function.

答案在于函数的名称。 fzero(f,p) 找到哪里 f == 0 围绕点 p。

对于第一个示例,您在 x+sin(x) == -exp(x) 时询问。如果为真,您提供的函数将输出 1,这将使 fzero 输出除您想要的答案之外的任何值。