数学建模常用的matlab求解命令.docx

上传人:b****3 文档编号:1509154 上传时间:2022-10-22 格式:DOCX 页数:10 大小:77.34KB
下载 相关 举报
数学建模常用的matlab求解命令.docx_第1页
第1页 / 共10页
数学建模常用的matlab求解命令.docx_第2页
第2页 / 共10页
数学建模常用的matlab求解命令.docx_第3页
第3页 / 共10页
数学建模常用的matlab求解命令.docx_第4页
第4页 / 共10页
数学建模常用的matlab求解命令.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

数学建模常用的matlab求解命令.docx

《数学建模常用的matlab求解命令.docx》由会员分享,可在线阅读,更多相关《数学建模常用的matlab求解命令.docx(10页珍藏版)》请在冰豆网上搜索。

数学建模常用的matlab求解命令.docx

数学建模常用的matlab求解命令

数学建模常用的matlab求解命令

一、数学规划模型的matlab求解 

1.线性规划问题 

MATLAB中,线性规划问题(Linear Programming)的求解使用的是函数linprog。

 

函数 linprog 格式 x = linprog(f,A,b) 

 %求min f ' *x    sub.to A*x<=b   线性规划的最优解。

 x = linprog(f,A,b,Aeq,beq)    

%等式约束Aeq*x=beq。

 x = linprog(f,A,b,Aeq,beq,lb,ub)    

%指定x的范围LB<=X<=UB 

x = linprog(f,A,b,Aeq,beq,lb,ub,x0)    %设置初值x0 

x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options)    

 % options为指定的优化参数 

[x,fval] = linprog(…)    

% 返回目标函数最优值,即fval= f ' *x。

 [x,fval,lambda] = linprog(…)    

% lambda为解x的Lagrange乘子。

 [x, fval,lambda,exitflag] = linprog(…)  

  % exitflag为终止迭代的错误条件。

[x,fval, lambda,exitflag,output] = linprog(…)   

 % 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

x = fminunc(fun,x0,options)    

% options为指定优化参数

 [x,fval] = fminunc(…)    %fval最优点x处的函数值 

[x,fval,exitflag] = fminunc(…)    % exitflag为终止迭代的条件,与上同。

[x,fval,exitflag,output] = fminunc(…)    %output为输出优化信息 

[x,fval,exitflag,output,grad] = fminunc(…)    

% grad为函数在解x处的梯度值 

[x,fval,exitflag,output,grad,hessian] = fminunc(…)    %目标函数在解x处的海赛(Hessian)值 

注意:

当函数的阶数大于2时,使用fminunc比fminsearch更有效,但当所选函数高度不连续时,使用fminsearch效果较好。

 

4)利用fmincon

求线性有约束的多元函数的最小值函数  

 fmincon 格式如下

 x = fmincon(fun,x0,A,b)

 x = fmincon(fun,x0,A,b,Aeq,beq) 

x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub)

 x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)

 x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)

 [x,fval] = fmincon(…) 

[x,fval,exitflag] = fmincon(…) 

[x,fval,exitflag,output] = fmincon(…)

 [x,fval,exitflag,output,lambda] = fmincon(…) 

[x,fval,exitflag,output,lambda,grad] = fmincon(…)

 [x,fval,exitflag,output,lambda,grad,hessian] = fmincon(…) 

3.二次规划问题 函数  

quadprog 

格式   x = quadprog(H,f,A,b)    

%其中H,f,A,b为标准形中的参数,x为目标函数的最小值。

 

x = quadprog(H,f,A,b,Aeq,beq)    %Aeq,beq满足等约束条件 。

 

目标函数表示成如下矩阵形式:

约束条件写成如下形式:

x = quadprog(H,f,A,b,Aeq,beq,lb,ub)  

% lb,ub分别为解x的下界与上界。

x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0)    

%x0为设置的初值 

x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options)   

% options为指定的优化参数 

[x,fval] = quadprog(…)    

%fval为目标函数最优值 

[x,fval,exitflag] = quadprog(…)   

 % exitflag与线性规划中参数意义相同 

[x,fval,exitflag,output] = quadprog(…)    

% output与线性规划中参数意义相同 

[x,fval,exitflag,output,lambda] = quadprog(…)   

% lambda与线性规划中参数意义相同

 4.     极小化极大(Minmax)问题 

函数 fminimax 

格式如下

 x = fminimax(fun,x0)           

x = fminimax(fun,x0,A,b) 

x = fminimax(fun,x0,A,b,Aeq,beq)

 x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub) 

x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)

 x = 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] = fminimax(…) 

[x,fval,maxfval,exitflag,output,lambda] = fminimax(…) 

5.多目标规划问题 

函数   fgoalattain 

格式   x = fgoalattain(fun,x0,goal,weight) 

x = fgoalattain(fun,x0,goal,weight,A,b) 

x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq)

 x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub) 

x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon) 

x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon,options) 

[x,fval] = fgoalattain(…) 

[x,fval,attainfactor] = fgoalattain(…) 

[x,fval,attainfactor,exitflag] = fgoalattain(…) 

[x,fval,attainfactor,exitflag,output] = fgoalattain(…)

 [x,fval,attainfactor,exitflag,output,lambda] = fgoalattain(…) 

6.最小二乘最优问题 

有约束线性最小二乘 函数   lsqlin    

格式   x = lsqlin(C,d,A,b)    

%求在约束条件 下,方程Cx = d的最小二乘解x。

x = lsqlin(C,d,A,b,Aeq,beq)   

x = lsqlin(C,d,A,b,Aeq,beq,lb,ub)   

x = lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0)   

% x0为初始解向量

x = 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] = lsqlin(…)    

%residual=C*x-d,即残差。

 

[x,resnorm,residual,exitflag] = lsqlin(…)  

%exitflag为终止迭代的条件

 [x,resnorm,residual,exitflag,output] = lsqlin(…)    

% output表示输出优化信息 

[x,resnorm,residual,exitflag,output,lambda] = lsqlin(…)    

% lambda为解x的Lagrange乘子 

7、非线性数据(曲线)拟合 函数   

lsqcurvefit 

格式   x = lsqcurvefit(fun,x0,xdata,ydata) 

x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub)

x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options)

 [x,resnorm] = lsqcurvefit(…)

 [x,resnorm,residual] = lsqcurvefit(…)

 [x,resnorm,residual,exitflag] = lsqcurvefit(…)

 [x,resnorm,residual,exitflag,output] = lsqcurvefit(…) 

[x,resnorm,residual,exitflag,output,lambda] = lsqcurvefit(…) 

8、非线性最小二乘 函数   

lsqnonlin 

格式   x = lsqnonlin(fun,x0)  

%x0为初始解向量;fun为 ,i=1,2,…,m,fun返回向量值F,而不是平方和值,平方和隐含在算法中,fun的定义与前面相同。

 x = lsqnonlin(fun,x0,lb,ub)     %lb、ub定义x的下界和上界 。

 

x = lsqnonlin(fun,x0,lb,ub,options)    %options为指定优化参数,若x没有界,则lb=[ ],ub=[ ]。

 

[x,resnorm] = lsqnonlin(…)    

 % resnorm=sum(fun(x).^2),即解x处目标函数值。

 [x,resnorm,residual] = lsqnonlin(…)  

 % residual=fun(x),即解x处fun的值。

 [x,resnorm,residual,exitflag] = lsqnonlin(…)  

 %exitflag为终止迭代条件。

 [x

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1