主要内容

比较fminimax而且fminunc

极大极小问题是将一组目标函数的最大值最小化。为什么不最小化这个极大值函数,它是一个标量函数?答案是,最大值是不平滑的,而优化工具箱™求解器等fminunc需要光滑。

例如,定义有趣的(x)作为两个变量的三个线性目标函数,和fun2作为这三个目标的最大值。

一个= (1,1);b = (1, 1);c = [0, 1];a0 = 2;b0 = 3;c0 = 4;有趣= @ (x) [x * + a0, * b + b0, x * c + c0];fun2 = @ (x)马克斯(有趣的(x), [], 2);

画出三个目标的最大值。

(X, Y) = meshgrid (linspace (5,5));Z = fun2 ([X (:), Y (:)));Z =重塑(Z,大小(X));冲浪(X, Y, Z,“线型”“没有”)视图(-118年28)

图中包含一个axes对象。axis对象包含一个类型为surface的对象。

fminimax很容易找到极大极小点。

x0 = (0,0);[xm, fvalm maxfval] = fminimax(有趣,x0)
局部最小值。约束满足。Fminimax停止,因为当前搜索方向的大小小于步长公差值的两倍,约束条件满足到约束公差值之内。
xm =1×2-2.5000 - 2.2500
fvalm =1×31.7500 1.7500 1.7500
maxfval = 1.7500

然而,fminunc在一个远离极大极小点的点停止。

(徐,fvalu) = fminunc (x0 fun2)
局部最小值。Fminunc停止是因为它不能沿当前搜索方向减小目标函数。
徐=1×20 1.0000
fvalu = 3.0000

fminimax找到一个更好的(更小的)解决方案。

流(“fminimax找到一个目标%g的点,\ nfminunc找到一个目标%g的点。”、maxfval fvalu)
Fminimax找到一个目标1.75的点,fminunc找到一个目标3的点。

另请参阅

相关的话题

Baidu
map