免费论文查重: 大雅 万方 维普 turnitin paperpass

探究数学建模中优化理由计算机解法

最后更新时间:2024-01-24 作者:用户投稿原创标记本站原创 点赞:24096 浏览:108658
论文导读:
【摘 要】优化理由是数学建模中最常见的理由,本文全面系统的阐述各种类型优化理由的MATLAB解法,包括无约束优化理由、有约束优化理由、线性优化理由、二次优化理由等。
【关键词】数学建模;优化理由;计算机求解;MATLAB语言
最优化理由就是求最大(小)值理由,是数学建模中最常见的理由,几乎每个建模理由都离不开优化。数学建模是用来解决实际理由,而在现实生产生活中,每个人、每个单位都希望自己所从事的事情能达到最化化。数学建模中的优化理由主要有四种类型,即无约束的优化理由、有约束的优化理由、线性优化(规划)理由和二次化化(规划)理由。

一、无约束最优化(fminunc)

命令 利用函数fminunc求无约束函数最小值
函数 fminunc
格式 :
x = fminunc(fun,x0) %返回给定初始点x0的最小函数值点
x = fminunc(fun,x0,options) % options为指定优化参数
[x,fval] = fminunc(…) %fval最优点x处的函数值
[x,fval,exitflag] = fminunc(…) % exitflag为终止迭代的条件,与上同。
[x,fval,exitflag,output] = fminunc(…) %output为输出优化信息

二、有约束的最优化(fmincon)

有约束的多元函数的最优化的标准形式为:
min f(x)
s.t C(x)<=0
Ceq(x)=0
A*x<=b
Aeq*x=beq
lb<=x<=ub
其中:x、b、beq、lb、ub是向量,A、Aeq为矩阵,C(x)、Ceq(x)是返回向量的函数,f(x)为目标函数,f(x)、C(x)、Ceq(x)可以是非线性函数。函数 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(…)
参数说明:fun为目标函数,它可用前面的策略定义;
x0为初始值;
A、b满足线性不等式约束 ,若没有不等式约束,则取A=[ ],b=[ ];
B、Aeq、beq满足等式约束 ,若没有,则取Aeq=[ ],beq=[ ];
C、lb、ub满足 ,若没有界,可设lb=[ ],ub=[ ];
D、nonlcon的作用是通过接受的向量x来计算非线性不等约束 和等式约束 分别在x处的估计C和Ceq,通过指定函数柄来使用,
如: x = fmincon(@myfun,x0,A,b,Aeq,beq,lb,ub,@mycon)
先建立非线性约束函数,并保存为mycon.m:function [C,Ceq] = mycon(x)
C = … % 计算x处的非线性不等约束 的函数值。
Ceq = … % 计算x处的非线性等式约束 的函数值。
lambda是Lagrange乘子,它体现哪一个约束有效。
output输出优化信息;
grad表示目标函数在x处的梯度;
hessian表示目标函数在x处的Hessiab值。

三、线性规划理由(linprog)

min f(x) x属于R
s.t: A*x<=b;
Aeq*x=beq;
lb<=x<=ub;
其中f、x、b、beq、lb、ub为向量,A、Aeq为矩阵。
函数 linprog
格式:
x = linprog(f,A,b) %求min f s.t 线性规划的最优解。
x = linprog(f,A,b,Aeq,beq) %不等式约束 ,若没有不等式约束 ,则A=[ ],b=[ ]。
x = linprog(f,A,b,Aeq,beq,lb,ub)%指定x的范围 ,若没有等式约束 ,则Aeq=[ ],beq=[ ]
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,lambda,exitflag] = linprog(…) % lambda为解x的Lagrange乘子。
[x, lambda,fval,exitflag] = linprog(…) % exitflag为终止迭代的错误条件。
说明:若exitflag>0表示函数收敛于解x,exitflag=0表示超过函数估值或迭代的最大数字,exitflag<0表示函数不收敛于解x。

四、二次规划(quadprog)

标准型为:
Min Z= XTHX+cTX
s.t. AX<=b
VLB≤X≤VUB
用MATLAB软件求解,其输入格式如下:

1.x=quadprog(H,C,A,b);

2.x=quadprog(H,C,A,b,Aeq,beq);

3.x=quadprog(H,C,A,b,Aeq,beq,VLB,VUB);

4.x=quadprog(H,C,A,b, Aeq,beq ,VLB,VUB,X0);
5.x=quadprog(H,C,A,b, Aeq,beq ,VLB,VUB,X0,opti论文导读:ons);6.=quaprog(...);7.=quaprog(...);8.=quaprog(...);参考文献:孙祥、徐流美、吴清.MATLAB7.0基础教程.清华大学出版社.2005年林雪松、周婧、林德新.MATLAB7.0应用集锦.机械工业出版社.2006年邱李华.MATLAB7及工程理由解决方案.机械工业出版社.2006年上一页12
ons);

6.[x,fval]=quaprog(...);

7.[x,fval,exitflag]=quaprog(...);

8.[x,fval,exitflag,output]=quaprog(...);
参考文献:
[1]孙祥、徐流美、吴清. MATLAB

7.0基础教程. 清华大学出版社. 2005年

[2] 林雪松、周婧、林德新. MATLAB

7.0应用集锦. 机械工业出版社. 2006年

[3]邱李华. MATLAB7及工程理由解决方案. 机械工业出版社. 2006年