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。