本文使用 MATLAB 中的 fminbnd 和 fminunc 命令,分别在给定区间内求解示例函数的极小值,并比较两种方法的结果。

由于没有给出具体的函数,以下是两个示例函数的求解过程:

  1. 函数 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 处的极小值。

  1. 函数 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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录