带参数(指的是数学题中用字母当作已知数的参数)!!![x,fval]=fmincon('fun',x0,A,b,Aeq,beq,lb.un.nonlcon,options)
(这个参数要作为约束条件)
如何用Matlab解决带参数的非线性约束问题?从目前matlab软件的能力,还不具备解决这类问题。fmincon函数可以解决下列类型的问题:
min f(x)=100*(x2-x1^2)^2 + (1-x1)^2
st. x1+2x2≤1; x1、x2>0
求解过程:
fun = @(x)100*(x(2)-x(1)^2)^2 + (1-x(1))^2; %自定义极小值函数
x0 = [-1,2]; %确定x的初值
A = [1,2]; %左约束条件方程的系数
b = 1; %右约束条件方程的系数
[x,fval]= fmincon(fun,x0,A,b) %求x1—x(1),x2—x(2)的值,fval—100*(x2-x1^2)^2 + (1-x1)^2的最小值
执行结果。