用Matlab求解非线性规划
1.无约束优化问题
,其中向量的n个分量都是决策变量,称目标函数。
用Matlab求解:先建立函数文件mbhs.m,内容是的表达式;再回到Matlab命令区输入决策变量初值数据x0,再命令[x,fmin]=fminunc(@mbhs,x0)
如:的最优解是 用Matlab计算,函数文件为
function f=mbhs(x)
f=2*x(1)^2+3*x(2)^2;
再输入初值 x0=[1;1]; 并执行上述命令,结果输出为 x =? fmin =? 略。
2.约束优化问题
其中:向量的n个分量都是决策变量,称目标函数、等式约束函数、不等式约束函数、L下界、U上界。
用Matlab求解:先把模型写成适用于Matlab的标准形式
约束条件中:把线性的式子提炼出来得前两个式子;后三个式子都是列向量。
(如: )
再建立两个函数文件:目标函数mbhs.m;约束函数yshs.m
再回到Matlab命令区,输入各项数据及决策变量初值数据x0,执行命令
[x,fmin]=fmincon(@mbhs,x0,A,b,Aeq,beq,L,U,@yshs)
例:单位球内,曲面的上方,平面之上(不是上面),满足上述三个条件的区域记为D,求函数在D上的最大值、最大值点。
解:(1)目标函数文件mbhs.m
function f=mbhs(x)
f=-exp(x(1)*x(2)*x(3))*sin(x(1)+x(2)-x(3))-exp(-x(1)*x(2))*cos(x(3)^2-1);
(2)约束函数文件yshs.m
function [g,h]=yshs(x)
g=[x(1)^2+x(2)^2+x(3)^2-1;x(1)^2+x(2)^2-0.5-0.1*x(x)*x(2)-x(3)];
h=[];
(3)数据准备
x0=[0.0;0.02;0.02];A=[];b=[];Aeq=[1,1,1];beq=0.08;
L=[-1;-1;-1];U=[1;1;1];
(4)执行命令
[x,fmin]=fmincon(@mbhs,x0,A,b,Aeq,beq,L,U,@yshs)
(5)结果???
1.无约束优化问题
,其中向量的n个分量都是决策变量,称目标函数。
用Matlab求解:先建立函数文件mbhs.m,内容是的表达式;再回到Matlab命令区输入决策变量初值数据x0,再命令[x,fmin]=fminunc(@mbhs,x0)
如:的最优解是 用Matlab计算,函数文件为
function f=mbhs(x)
f=2*x(1)^2+3*x(2)^2;
再输入初值 x0=[1;1]; 并执行上述命令,结果输出为 x =? fmin =? 略。
2.约束优化问题
其中:向量的n个分量都是决策变量,称目标函数、等式约束函数、不等式约束函数、L下界、U上界。
用Matlab求解:先把模型写成适用于Matlab的标准形式
约束条件中:把线性的式子提炼出来得前两个式子;后三个式子都是列向量。
(如: )
再建立两个函数文件:目标函数mbhs.m;约束函数yshs.m
再回到Matlab命令区,输入各项数据及决策变量初值数据x0,执行命令
[x,fmin]=fmincon(@mbhs,x0,A,b,Aeq,beq,L,U,@yshs)
例:单位球内,曲面的上方,平面之上(不是上面),满足上述三个条件的区域记为D,求函数在D上的最大值、最大值点。
解:(1)目标函数文件mbhs.m
function f=mbhs(x)
f=-exp(x(1)*x(2)*x(3))*sin(x(1)+x(2)-x(3))-exp(-x(1)*x(2))*cos(x(3)^2-1);
(2)约束函数文件yshs.m
function [g,h]=yshs(x)
g=[x(1)^2+x(2)^2+x(3)^2-1;x(1)^2+x(2)^2-0.5-0.1*x(x)*x(2)-x(3)];
h=[];
(3)数据准备
x0=[0.0;0.02;0.02];A=[];b=[];Aeq=[1,1,1];beq=0.08;
L=[-1;-1;-1];U=[1;1;1];
(4)执行命令
[x,fmin]=fmincon(@mbhs,x0,A,b,Aeq,beq,L,U,@yshs)
(5)结果???