- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验优化问题
实验11 优化问题
实验目的
学会用MATLAB软件求解线形规划、非线形规划、二次规划、及小化极大问题。
实验内容与要求
线形规划
线形规划问题是目标函数和约束条件均为线形函数的问题,其线形规划问题的标准形式为:
min x x
sub,to: Axb
lbxub
其中,f,b,lb,ub为向量,A为矩阵。
格式:x= (f,A,b) %求minf’x,sub.to Axb线形规划的最优解。
x=lp(f,A,b,lb,ub) %指定x的范围。
x=lp(f,A,b,lb,ub,) %设置初值.
说明:在MATLAB 5.3及以上版本中,线形问题已用函数linprog取代了lp函数。Linprog常用格式如下。
X=linprog(f,A,b,Aeq,beq,lb,ub) %等式约束Aeqx=beq,若没有不等式约束
Axb,则A=[],b=[].
[x,fval]=linprog() %返回目标函数最优值,即fval=f*x。
【例 1.101】 求下面的最优化问题。
min -5-4-6
sub.to -+20
3+2+442
3+230
0,0,0
解:
f=[-5;-4;-6];
A=[1,-1,1;3,2,4;3,2,0];
b=[20;42;30];
lb=zeros(3,1);
x=lp(f,A,b,lb); %在5.3及以上版本中用[x,fval]=linprog(f,A,b,[],[],lb,[])
fval=f*x %求目标函数及小值
计算结果为:
x =
0.0000
15.0000
3.0000
fval =
-78.0000
2.有约束的一元函数的最小值
单变量函数求最小值的标准形式为:
f(x)
sub.to (x)
格式:xfmin(fun,,) %返回自变量x在区间x上函数fun取最小值时x的值,fun为目标函数的表达式字符串。
xfmin(fun,,,options) %fval为目标函数的最小值。
说明:在MATLAB5.3及以上版本汇总使用fminbnd函数求其最小值,常用格式为:
[x,fval]=fminbnd() %fval为目标函数的最小值。
【例1.102】 计算下面函数在区间内的最小值。
f(x)=
解: fun=inline((x^3+cos(x)+x*log(x))/exp(x));
x=fmin(fun,0,1) %在5.3及以上版本中用[x,fval]=fminbnd(fun,0,1)
fval=fun(x)
x =
0.5223
fval =
3974
3.无约束多元函数最小值
多元函数最小值的标准形式为 f(x),其中,x为向量,如x=[,,].
格式一:x=fmins(fun,) %为初始值,fun为目标函数。
x=fmins(fun,,options) %options为控制参数向量。
说明:在MATLAB5.3及以上版本汇总使用fminsearch函数求其最小值,常用格式为:
[x,fval]=fminsearch() %fval为最优点的函数值。
注意:fminsearch采用了Nelder-Mead形简单搜寻法。
【例1.103】求y=2的最小值点。
解: fun=inline(‘2*x(1)^3+4*x(1)*x(2)^3-10*x(1)*x(2)+x(2)^2’,’x’);
X=fmins(fun,[0,0]) %在5.3及以上版本中用[x,fval]=fminsearch (fun,[0,0])
y=fun(X)
结果如下:
X=
1.0016 0.8335
Y=
-3.3241
格式二:x=fminu(fun,) %返回值给定初始值的最小函数值点。
x=fminu(fun,,options) % options为控制参数。
说明:在MATLAB5.3及以上版本中使用fminnuc求其最小值,常用格式:
[x,fval]=fminuc() %fval为最优点函数值。
注意 当函数的阶数大于2时,使用fminu比fmins更有效,但当所选函数高度不连续时,使用fmins效果较好。
【例 1.104】 求的最小值。
fun=inline(exp(x(1))*(4*x(1)^2+4*x(1)*x(2)+2*x(2)^2+2*x(2)+1),x);
x0=[-1,1];
原创力文档


文档评论(0)