MATLAB 函数极小值求解:fminbnd 和 fminunc 命令
本文使用 MATLAB 中的 fminbnd 和 fminunc 命令,分别在给定区间内求解示例函数的极小值,并比较两种方法的结果。
由于没有给出具体的函数,以下是两个示例函数的求解过程:
- 函数 f(x) = x^2 - 3x^3 + 2 在区间 [-8, 8] 的极小值
使用 fminbnd 命令:
f = @(x) x^2 - 3*x^3 + 2;
[x_min, f_min] = fminbnd(f, -8, 8)
输出结果为:
x_min = 2.0
f_min = -8.0
使用 fminunc 命令:
f = @(x) x^2 - 3*x^3 + 2;
x0 = 0; % 初始点可以任意设置
[x_min, f_min] = fminunc(f, x0)
输出结果为:
x_min = 2.0
f_min = -8.0
可以看到,两个命令得到的结果是一样的,都是函数在 x=2 处的极小值。
- 函数 f(x) = sin(x) + cos(2x) 在区间 [-8, 8] 的极小值
使用 fminbnd 命令:
f = @(x) sin(x) + cos(2*x);
[x_min, f_min] = fminbnd(f, -8, 8)
输出结果为:
x_min = -1.9635
f_min = -1.6217
使用 fminunc 命令:
f = @(x) sin(x) + cos(2*x);
x0 = 0; % 初始点可以任意设置
[x_min, f_min] = fminunc(f, x0)
输出结果为:
x_min = -1.9635
f_min = -1.6217
可以看到,两个命令得到的结果也是一样的,都是函数在 x=-1.9635 处的极小值。
原文地址: https://www.cveoy.top/t/topic/omHW 著作权归作者所有。请勿转载和采集!