一、数学模型:
二、模型求解函数(fminimax)
[x,fval]=fminimax(@fun,x0,A,b,Aeq,beq,lb,ub,@nonlfun,option)
三、例子
步骤:
1、先建立M文件 fun.m,定义目标函数
function f=fun(x);
a=[1 4 3 5 9 12 6 20 17 8];
b=[2 10 8 18 1 4 5 10 8 9];
% 函数向量
f=zeros(10,1);
for i = 1:10
f(i) = abs(x(1)-a(i))+abs(x(2)-b(i));
end;
% f(1) = abs(x(1)-a(1))+abs(x(2)-b(1));
% f(2) = abs(x(1)-a(2))+abs(x(2)-b(2));
% f(3) = abs(x(1)-a(3))+abs(x(2)-b(3));
% f(4) = abs(x(1)-a(4))+abs(x(2)-b(4));
% f(5) = abs(x(1)-a(5))+abs(x(2)-b(5));
% f(6) = abs(x(1)-a(6))+abs(x(2)-b(6));
% f(7) = abs(x(1)-a(7))+abs(x(2)-b(7));
% f(8) = abs(x(1)-a(8))+abs(x(2)-b(8));
% f(9) = abs(x(1)-a(9))+abs(x(2)-b(9));
% f(10) = abs(x(1)-a(10))+abs(x(2)-b(10));
end
2、再建立M文件mycon.m定义非线性约束(此题无非线性约束,可不写)
function [g,ceq]=mycon(x)
% 非线性不等式约束(记得标准化为<=,并且移项)
g=[];
% 非线性等式约束
ceq=[];
3、主程序main.m
x0 = [6, 6]; % 给定初始值
lb = [3, 4]; % 决策变量的下界
ub = [8, 10]; % 决策变量的上界
[x,feval] = fminimax(@fun,x0,[],[],[],[],lb,ub)
max(feval)
4、求解结果