数学建模常用的matlab求解命令Word下载.docx
《数学建模常用的matlab求解命令Word下载.docx》由会员分享,可在线阅读,更多相关《数学建模常用的matlab求解命令Word下载.docx(10页珍藏版)》请在冰豆网上搜索。
A*x<
=b
线性规划的最优解。
linprog(f,A,b,Aeq,beq)
%等式约束Aeq*x=beq。
linprog(f,A,b,Aeq,beq,lb,ub)
%指定x的范围LB<
=X<
=UB
linprog(f,A,b,Aeq,beq,lb,ub,x0)
%设置初值x0
linprog(f,A,b,Aeq,beq,lb,ub,x0,options)
%
options为指定的优化参数
[x,fval]
linprog(…)
返回目标函数最优值,即fval=
*x。
[x,fval,lambda]
lambda为解x的Lagrange乘子。
[x,
fval,lambda,exitflag]
exitflag为终止迭代的错误条件。
[x,fval,
lambda,exitflag,output]
output为关于优化的一些信息说明
:
若exitflag>
0表示函数收敛于解x,exitflag=0表示超过函
%function[f,g]=fun(x)
f=x
(1)^2+2*x
(1)*x
(2)+x
(2)^2;
%function
g=[2*x
(1)+2*x
(2)
2*x
(1)+2*x
(2)];
%gradient
fminunc(fun,x0,options)
options为指定优化参数
fminunc(…)
%fval最优点x处的函数值
[x,fval,exitflag]
exitflag为终止迭代的条件,与上同。
[x,fval,exitflag,output]
%output为输出优化信息
[x,fval,exitflag,output,grad]
grad为函数在解x处的梯度值
[x,fval,exitflag,output,grad,hessian]
%目标函数在解x处的海赛(Hessian)值
注意:
当函数的阶数大于2时,使用fminunc比fminsearch更有效,但当所选函数高度不连续时,使用fminsearch效果较好。
4)利用fmincon
求线性有约束的多元函数的最小值函数
fmincon
格式如下
fmincon(fun,x0,A,b)
fmincon(fun,x0,A,b,Aeq,beq)
fmincon(fun,x0,A,b,Aeq,beq,lb,ub)
fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)
fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)
fmincon(…)
fmincon(…)
[x,fval,exitflag,output,lambda]
[x,fval,exitflag,output,lambda,grad]
[x,fval,exitflag,output,lambda,grad,hessian]
3.二次规划问题
quadprog
quadprog(H,f,A,b)
%其中H,f,A,b为标准形中的参数,x为目标函数的最小值。
quadprog(H,f,A,b,Aeq,beq)
%Aeq,beq满足等约束条件
。
目标函数表示成如下矩阵形式:
约束条件写成如下形式:
quadprog(H,f,A,b,Aeq,beq,lb,ub)
lb,ub分别为解x的下界与上界。
quadprog(H,f,A,b,Aeq,beq,lb,ub,x0)
%x0为设置的初值
quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options)
quadprog(…)
%fval为目标函数最优值
exitflag与线性规划中参数意义相同
output与线性规划中参数意义相同
lambda与线性规划中参数意义相同
4.
极小化极大(Minmax)问题
fminimax
fminimax(fun,x0)
fminimax(fun,x0,A,b)
fminimax(fun,x0,A,b,Aeq,beq)
fminimax(fun,x0,A,b,Aeq,beq,lb,ub)
fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)
fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)
[x,fval,maxfval]
fminimax(…)
[x,fval,maxfval,exitflag]
fminimax(…)
[x,fval,maxfval,exitflag,output]
[x,fval,maxfval,exitflag,output,lambda]
5.多目标规划问题
fgoalattain
fgoalattain(fun,x0,goal,weight)
fgoalattain(fun,x0,goal,weight,A,b)
fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq)
fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub)
fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)
fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon,options)
fgoalattain(…)
[x,fval,attainfactor]
[x,fval,attainfactor,exitflag]
[x,fval,attainfactor,exitflag,output]
fgoalattain(…)
[x,fval,attainfactor,exitflag,output,lambda]
6.最小二乘最优问题
有约束线性最小二乘
lsqlin
lsqlin(C,d,A,b)
%求在约束条件
下,方程Cx
d的最小二乘解x。
lsqlin(C,d,A,b,Aeq,beq)
lsqlin(C,d,A,b,Aeq,beq,lb,ub)
lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0)
x0为初始解向量
lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0,options)
options为指定优化参数
[x,resnorm]
lsqlin(…)
resnorm=norm(C*x-d)^2,即2-范数。
[x,resnorm,residual]
%residual=C*x-d,即残差。
[x,resnorm,residual,exitflag]
%exitflag为终止迭代的条件
[x,resnorm,residual,exitflag,output]
output表示输出优化信息
[x,resnorm,residual,exitflag,output,lambda]
lambda为解x的Lagrange乘子
7、非线性数据(曲线)拟合
lsqcurvefit
lsqcurvefit(fun,x0,xdata,ydata)
lsqcurvefit(fun,x0,xdata,ydata,lb,ub)
lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options)
lsqcurvefit(…)
lsqcurvefit(…)
8、非线性最小二乘
lsqnonlin
lsqnonlin(fun,x0)
%x0为初始解向量;
fun为
,i=1,2,…,m,fun返回向量值F,而不是平方和值,平方和隐含在算法中,fun的定义与前面相同。
lsqnonlin(fun,x0,lb,ub)
%lb、ub定义x的下界和上界
lsqnonlin(fun,x0,lb,ub,options)
%options为指定优化参数,若x没有界,则lb=[
],ub=[
]。
lsqnonlin(…)
resnorm=sum(fun(x).^2),即解x处目标函数值。
residual=fun(x),即解x处fun的值。
%exitflag为终止迭代条件。
[x