首页 > 解决方案 > 使用内置 MATLAB 函数 fminimax 进行最大最小优化

问题描述

如何在 max-min 优化中使用 fminimax?我对必须包含在最小-最大公式中的外部负号感到困惑,以便可以使用“fminimax”解决最大-最小优化问题。如何在我的代码中包含外部负号?可以通过使成本函数为负来处理内部负号。但是外部的负号呢,如何在代码中包含它呢?

标签: matlab

解决方案


默认情况下fminmax,尝试解决您的目标函数集的所有最大值的“全局”最小值。但是,如果您正在寻找所有最小值中的最大值,如文档中所述,您需要为输出和目标函数集添加一个负号。

这是一个最小的例子:

% Solve minmax:
fun = @(x)[sin(x);cos(x)];
x0 = 1;
x = fminimax(fun,x0)

% Solve maxmin:
fun = @(x)-[sin(x);cos(x)]; %fun -> -fun
x0 = 1;
x = -fminimax(fun,x0)       %x   -> -x

推荐阅读