数模论坛

 找回密码
 注-册-帐-号
搜索
热搜: 活动 交友 discuz
查看: 2964|回复: 9

数学工具每日一练

[复制链接]
发表于 2004-7-4 22:38:26 | 显示全部楼层 |阅读模式
<>应网友 一起来 的建议,现开辟数学工具版每日一练专栏,主要内容包括:数学工具练习/数学工具问题/(非官方版本中)MATLAB函数介绍。</P>
<>不过虽说是每日一练,由于有时各位版主有事比较忙,可能成了“两日一练”,还请各位网站支持者包涵!;-P</P>
 楼主| 发表于 2004-7-4 22:45:46 | 显示全部楼层
<>7.4</P>
<>今日题目:对一个函数进行最小化</P>
<>目标函数:f(x)=(x1-10)^3+(x2-20)^3</P>
<P>约束条件:1) (x1-5)^2+(x2-5)^2-100&gt;=0</P>
<P>           2) -(x1-6)^2-(x2-5)^2+82.81&gt;=0</P>
<P>           3) 13&lt;=x1&lt;=100</P>
<P>           4) 0&lt;=x2&lt;=100</P>
<P>不要小看这个题目,本题中可行空间非常小(仅仅是两个圆的差集的并集)</P>
<P>谁有兴趣?来挑战一下试试?不一定仅限于MATLAB哦。:-P</P>
发表于 2004-7-5 03:15:20 | 显示全部楼层
<>非常谢谢版主这么快就采纳了我的建议,但愿大家多把问题提出来,共同进步!</P><>  明天要考试了,来不及琢磨,简单练了一下久别的MATLAB,不知到底怎样,等待大家的“挑剔”谢谢!!</P><>首先建立约束的m函数function [c,ceq]=confun(x)
c=[-(x(1)-5)^2-(x(2)-5)^2+100;(x(1)-6)^2+(x(2)-5)^2-82.81];
ceq=[];</P><P>然后在工作区输入求解程序,如下:</P><P>       x0=[1,1];fun='(x(1)-10)^3+(x(2)-20)^3';</P><P>    lb=[13,0]; ub=[100,100];</P><P>    options=[];</P><P>   [x,fval,exitflag,output]=fmincon(fun,x0,[],[],[],[],lb,ub,'confun',options);</P><P>结果为x =</P><P>   14.0950    0.8430</P><P>fval =</P><P> -6.9618e+003(最小值)
</P>[em01]
发表于 2004-7-5 03:55:38 | 显示全部楼层
做不来啊~~~~~~~~~~[em04][em04][em04][em04][em04][em04][em04]
发表于 2004-7-5 03:57:11 | 显示全部楼层
大虾,我会的你的答案的~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
发表于 2004-7-5 05:42:10 | 显示全部楼层
<TABLE fixed; WORD-BREAK: break-all" width="90%" border=0><TR><TD 9pt; LINE-HEIGHT: 12pt" width="100%"><img src="http://www.shumo.com/bbs/Skins/Default/topicface/face1.gif"> <B></B>
<>7.4</P><>今日题目:对一个函数进行最小化</P><>目标函数:f(x)=(x1-10)^3+(x2-20)^3</P><P>约束条件:1) (x1-5)^2+(x2-5)^2-100&gt;=0</P><P>           2) -(x1-6)^2-(x2-5)^2+82.81&gt;=0</P><P>           3) 13&lt;=x1&lt;=100</P><P>           4) 0&lt;=x2&lt;=100</P><P>         程序是什么 快告诉我 我想学  楼主  谢谢你了</P></TD></TR></TABLE>
 楼主| 发表于 2004-7-6 20:14:36 | 显示全部楼层
<><FONT face=宋体>一起来</FONT> <FONT face=宋体>做的不错!最优解确实就是你得到的值。其实我并没有想到你用</FONT>MATLAB<FONT face=宋体>能这么快的做出来,因为我印象里,我当时用</FONT>MATLAB<FONT face=宋体>来解这个问题的时候,得到的总是局部最优解:</FONT>-<FONT face=宋体>)
</FONT>
<>
<><FONT face=宋体>这个问题的解空间的图如下:可行空间很小,只有两个圆不相重叠的那一部分,而最优解仅在一个月牙的角上,所以是比较难求解的</FONT></P>
<P><FONT face=宋体><v:shapetype><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path gradientshapeok="t" extrusionok="f" connecttype="rect"></v:path><LOCK aspectratio="t" v:ext="edit"></LOCK></v:shapetype><v:shape><v:imagedata></v:imagedata></v:shape>
<P></FONT>
<P>
<P>
<P>
<P>
<P><FONT face=宋体><v:shapetype><v:shapetype><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path gradientshapeok="t" extrusionok="f" connecttype="rect"></v:path><LOCK aspectratio="t" v:ext="edit"></LOCK></v:shapetype><v:shape><v:imagedata></v:imagedata></v:shape></v:shapetype></FONT></P>
<P><FONT face=宋体>其实我出这道题的目的主要是想介绍另一个软件包:</FONT>GENECOP<FONT face=宋体>,一个遗传算法结合序列二次规划的软件包,很适合求解函数最优化。因为它使用了遗传算法,产生初始可行解是分散的,因而是比较容易跳出局部最优,而获得全局最优的。


<P></FONT>
<P>
<P><FONT face=宋体>不过既然能用</FONT>“<FONT face=宋体>通用</FONT>”<FONT face=宋体>的</FONT>MATLAB<FONT face=宋体>解出来了,就更好了!


<P></FONT>
<P>
<P><FONT face=宋体>感谢一起来</FONT> <FONT face=宋体>的参与。这次的获胜者是</FONT> <FONT face=宋体>一起来!</FONT></P> swaBJzQG.jpg (19.07 KB, 下载次数: 0)
<IMG src="http://www.shumo.com/bbs/showimg.asp?Boardid=10&amp;filename=2004-7/200476122352741.jpg" border=0>
发表于 2004-7-9 19:38:34 | 显示全部楼层
<>itmwk,其实我还没怎么理解求最优解的实质,我只是用了MATLAB里的优化工具箱求的,那怎么判断所求的结果是不是正确的?怎么判断是局部还是全局的?解优化问题一般比较标准的解法是怎么?常需用那些工具?GENECOP到底是怎么的?那哪里有吗,下来试试看.</P><>            急待版主的指点!!!!谢谢!!!!1</P>[em08]
发表于 2004-7-10 23:35:56 | 显示全部楼层
<>                    为用lindo可以更好的解</P><>                                 不过我还没有时间去试一下</P>[em06][em03][em02][em08]
发表于 2004-7-12 20:14:09 | 显示全部楼层
<>用lingo解得的答案是:-950.9619,不知道对不对</P><>  Local optimal solution found at iteration:             47
  Objective value:                                -950.9619</P><>
                       Variable           Value        Reduced Cost
                             X1        13.66025            0.000000
                             X2        0.000000            323.2051</P><P>                            Row    Slack or Surplus      Dual Price
                              1       -950.9619           -1.000000
                              2        0.000000           -2.320511
                              3        116.4895            0.000000
                              4        86.33975            0.000000
                              5       0.6602540            0.000000
                              6        0.000000            0.000000
                              7        100.0000            0.000000
</P><P>
</P>
您需要登录后才可以回帖 登录 | 注-册-帐-号

本版积分规则

小黑屋|手机版|Archiver|数学建模网 ( 湘ICP备11011602号 )

GMT+8, 2024-11-27 12:48 , Processed in 0.069690 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表