[Dino笔记]最优化求解法单纯形法
作者:dinochen1983 日期:2010-06-07
最近有空时看看最优化的书《工程优化方法》(陈卫东),之前没有多大的接触,在数学上属于极值求解方法。原来除了梯度法以外还有很多种直接方法的,所谓直接方法就是不用求梯度,求梯度对于有限元来说是很难的一件事,计算量太大,倒不如用直接法算了。以下介绍一下最近学的一种单纯形法(simplex method),最直接法中最基本的方法。计算流程图如图所示(页71)。
原理简单来说就是在超空间中(多于三维的话),假定超多边形,检查棱点是否可行且最小,通过不断的放大缩小使棱点碰到最小值。接下来通过DELPHI程序编个小程序,算一算经典的一些函数就知道了。DELPHI对于我来说相当于MATLAB,经常做一些数值试验。最近老觉得自已的抽象思维越来越不行了,没有图形是想像不出数学或力学的一些东西,也许是过分依赖电脑图形,抽象思维还是得煅炼一下。作为工程研究为主的我,面向抽象的数学,当然就是采用图形化把数学具体化啦,这个工作我发现国内的数学家很少去做,我经常上网看得的都是国外的学者用图形学来把抽象的数学表述出来,如分形,拓展,纤维束等。接下来写几个算例在博客上面,这些算例都是《工程优化方法》书上摘下来,有些改了一些,他的习题是没有答案的,这里也提供一些答案吧。已经是博士生了,但是我还是经常会买些奇奇怪怪的数学的书,做做后面的习题,当然啦,这么复杂的习题当然是用电脑编程来做了。
题目:用单纯形法求无约束方法:
编制单纯形法程序求解过程如下:
计算公式:RESULT:=x[0]*x[0]+x[1]*x[1]-x[0]*x[1]-3*x[0] ;
答案: x1=2.0,x2=1.0;
采用图形学技术,将三维曲面画出来,再用梯度颜色一画,查看一下极值,检验结果(这个图形小程序就是来检验结果的,因为习题没有答案):
图形界面,黑色为等值线,通过颜色可以明显看出形状,最值为x=2,y=1,z=-3,数学其实很美的!
这是一张网格图与带颜色的三维图,通过空间去看它的形状。
接下来搞一个工程问题:
有一个简单的支架结构,由两斜柱组成,重力荷载为2P=20kN,管截面壁厚T为10mm,高度H与管直径D为设计变量,要求强度与稳定满足,如公式所示,结构要求最轻,即质量最小。
这是一个二变量的优化问题,可以用图形来显示,由于存在边界,所以将边界外的值变大就行了,然后就进行单纯形优化。优化结果为H=1000x1.0=1000mm,D=100x1.6377=163.7mm,质量为1720kg。图形表达如图所示。
优化结果为H=1000x1.0=1000mm,D=100x1.6377=163.7mm,质量为1720kg。图形表达如图所示。
单纯形法也适用于多变量,由于不用求偏导,适用于有限元分析,复形法从单纯形法发展而来,具有更好的适用性。接下来学习更多的优化方法,以后再分享啦。
凹下去部分就是可行解,平台部分是不可行解,也就是失稳与超强的,任务就是找到可行区的最低点。图形的表达可以让数学不那么深奥,不那么抽象,数学不仅仅是符号的运算,........待续。
