MATLAB fminbnd 在给定闭区间上求一元函数的最小值点。适用于单变量、必须给出区间的情形。
语法
x = fminbnd(fun, x1, x2)
[x, fval] = fminbnd(fun, x1, x2)输入参数
| 参数 | 说明 |
|---|---|
fun | 函数句柄,接受标量,返回标量 |
x1, x2 | 区间两端,须满足 x1 < x2 |
输出
第一个输出是最小值点,第二个输出是该处的函数值。找到的是区间上的一个局部最小,不一定是全局最小。
示例
[xmin, fmin] = fminbnd(@(x) cos(x), 0, 3)xmin = 3.1416
fmin = -1.0000二次函数在 [0, 5] 上的最小点:
[x, f] = fminbnd(@(x) (x - 2).^2, 0, 5)x = 2
f = 0注意事项
- 只处理单变量且必须给出区间。无约束或多变量问题使用
fminsearch。 - 目标函数应对标量 x 返回标量;若写成向量运算,须保证对单个 x 仍有定义。