MATLAB 数值求解函数参考

MATLAB fzero 求一元函数的根,即 f(x)=0 的 x。第一个参数必须是函数句柄,第二个参数为标量初值或包含根的区间。

语法

x = fzero(fun, x0)
x = fzero(fun, [a b])

输入参数

参数说明
fun函数句柄,接受标量 x,返回标量
x0标量初值。求解器自行搜索区间,多根时落在哪一个与实现有关
[a b]两端函数值宜异号的闭区间

输出

找到的一个根。方程有多个根时,一次调用只返回其中一个。

示例

f = @(x) sin(x) - x/2;
root = fzero(f, [1 3])
root = 1.8955

该方程在 0 处也有根。仅给标量初值 1 时,部分环境会收敛到 0,因此求正根时使用异号区间。

fzero(f, 0)
ans = 0

注意事项

  • 不可写成 fzero(sin(1)-1/2, [1 3]):传入的是已经算完的数,求解器无法再换 x 取样。
  • 区间两端同号时可能找不到根。
  • 多项式求全部根用 roots。