版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38784454/article/details/80329021
matlab中的函数fmincon可用于求可以求取多元函数的极值,其约束包括五种:1、线性不等式
约束;2、线性等式约束;3、变量约束;4、非线性不等式约束;5、非线性等式约束。
其形式如下:x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)
求解问题的标准型为
min F(X)
s.t
AX <= b(线性不等式约束)
AeqX = beq(线性等式约束)
G(x) <= 0(非线性不等式约束)
Ceq(X) = 0(非线性等式约束)
lb <= X <= ub(变量约束)
matalb实例:
fxx.m
clc
clear
close all
fun=@(x)x(1)^2+x(2)^2+8;
x0=rand(2,1);
A=[];
b=[];
Aeq=[];
beq=[];
vlb=[0,0];
vub=[];
exitflag=1;
[x,fval,exitflag]=fmincon(fun,x0,A,b,Aeq,beq,vlb,vub,'mycon')
mycon.m
function [g,ceq]=mycon(x)
g=-x(1)^2+x(2);
ceq=-x(1)-x(2)^2+2;