比较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)
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 \ nwhile fminunc发现与客观% g点。”、maxfval fvalu)
与目标1.75 fminimax找到一个点,而fminunc发现目标3。