机械优化设计阻尼牛顿法复习过程.docx
- 文档编号:14806030
- 上传时间:2023-06-27
- 格式:DOCX
- 页数:12
- 大小:119.43KB
机械优化设计阻尼牛顿法复习过程.docx
《机械优化设计阻尼牛顿法复习过程.docx》由会员分享,可在线阅读,更多相关《机械优化设计阻尼牛顿法复习过程.docx(12页珍藏版)》请在冰点文库上搜索。
机械优化设计阻尼牛顿法复习过程
目录第1章选择方法及思路1
1.1概述1
1.1.1优化设计1
1.1.2优化设计的思想1
1.1.3优化设计的步骤1
1.2优化设计的方法1
1.2.1分类1
1.2.2常用的优化方法2
第2章阻尼牛顿法计算应用
2.1阻尼牛顿法的计算步骤4
2.2阻尼牛顿法的程序框图5
2.3实例解析5
2.4阻尼牛顿法的程序编程6
第3章总结9
第1章选择方法及思路
1.1概述
1丄1优化设计
优化设计是一种规格化的设计方法,它首先要求将设计问题按优化设计所规定的格式建立数学模型,选择合适的优化方法及计算机程序,然后再通过计算机的计算,自动获得最优设计方案。
1丄2优化设计的思想
优化设计的指导思想源于它所倡导的开放型思维方式,即在面对问题时,抛开现实的局限去想象一种最理想的境界,然后再返回到当前的现状中來寻找最佳的解决方案.在管理学中有一句俗语,“思路决定出路,心动决定行动”.如此的思维方式有助于摆脱虚设的假象,这并非屈于异想天开或者好高莺远的空想,而是强调一切从未來出发,然后再从现实着手。
1丄2优化设计的步骤
一般来说,优化设计有以下几个步骤:
1、建立数学模型
2、选择最优化算法
3、程序设计
4、制定目标要求
5、计算机自动筛选最优设计方案等
1.2优化设计的方法
1.2.1分类
根据讨论问题的不同方面,有不同的分类方法:
1、按设计变量数量来分
(1)单变量(一维)优化
(2)多变量优化
2、按约束条件來分
(1)无约束优化
(2)有约束优化
3、按目标函数來分
(1)单目标优化
(2)多目标优化
4、按求解方法特点
(1)准则法
(2)数学归纳法
122常用的优化方法
常用的优化方法:
单变量(一维)优化,无约束优化,多目标函数优化,数学归纳法。
1、单变量(一维)优化
(1)概述
单变量(一维)优化方法是优化方法中最简单、最基本的方法。
(2)具体优化方法
1)黄金分割法(0.618法)
黄金分割是指将一段线段分成两端的方法,使整段与较长段的比值等于较长段与较短段的比值,即
1:
久=久:
(1一力
2)插值法
插值法乂称"内插法”,是利用函数f(x)在某区间中若干点的函数值,作出适当的特定函数,在这些点上取己知值,在区间的其他点上用这特定函数的值作为函数f(x)的近似值,这种方法称为插值法。
黄金分割法(0.618法)与插值法的比较
相同点:
两种方法都是利用区间消去法原理将初始搜索区间不断缩短,求得极小值的
数值近似解。
不同点:
表现在试验点(插入点)位置的确定方法不同。
黄金分割法:
试验点是按照某种个特定的规律确定;不考虑函数值的分布;插值法:
试验点是按照函数值近似分布的极小点确定;利用了函数值本身及其导数信息。
2、无约束优化
(1)概述
无约束最优化问题是:
求n维设计变量左[&,左,…,兀]「使目标函数为minAAO,而对X没有任何限制;如果存在X*,使minf(力二f(X獅分别称的为最优点,为最优值
(2)具体优化方法
无约束最优化方法归纳起來可分为两大类:
直接法:
变量(坐标)轮换法、共觇方向法、鲍威尔(Powell)法
间接法:
梯度法、共辄梯度法、牛顿法
1)变量(坐标)轮换法
它是把多变量的优化问题转化为一系列单变量的优化问题的一种方法。
原理:
沿着坐标轴的方向轮流进行搜索,直至最优点。
乂称坐标轮换法。
特点:
变量轮换法的基本思想认为坐标轴方向为有利的搜索方向,因此,在搜索时总是沿着互相垂直的坐标轴方向,并变换多次,才能达到极值点。
搜索效率低,且越接近极值点,搜索速度越慢。
2)共辄方向法
设>1为nXn阶实对称正定矩阵,如果有两个n维向量5和$满足
S加二0
则称向量S与$对于矩阵力共辄。
共辄向量的方向称为共辄方向,
沿着共轨向量的方向进行搜索的方法称为共觇方向法。
3)鲍威尔(Powell)法
鲍威尔(Powell)法乂称鲍威尔共辄方向法,它是对原始共觇方向法的改进,与原始共辘法的区别在于它对于每一次的搜索结果进行判断,并选择最优方向继续搜索。
4)梯度法
基本原理:
人们利用函数在其负梯度方向函数值下降最快这一局部性质,将n维无约束极小化问题转化为一系列沿目标函数负梯度方向一维搜索寻优,这就成为梯度法的基本构想。
5)共辄梯度法
基本原理:
在梯度法的基础上,利用目标函数的共辄方向和一阶导数推算和重置负方向梯度,从而得到最优的搜索结果。
6)牛顿法
1原始牛顿法
基本原理:
原目标函数巩力用在迭代点才上)邻域展开的泰勒二次多项式力0)去近似的代替,再以”0)这个二次函数的极小点尤〃倂为原目标函数的下一个迭代点f,这样重复迭代若干次后,使迭代点点列逐步逼近原目标函数的极小点。
2阻尼牛顿法
基本原理:
在原始牛顿法的基础上,在搜索的的每一步选择最优因子进行下一步的搜索。
第2章阻尼牛顿法计算应用
2.1阻尼牛顿法的计算步骤
1)给定初始点收敛精度G置20。
2)计算wX)、V7c?
)>(V7(^)r和dJvg))F3)
3)求xk^=xk+akdk,其中©•为沿卅进行一维搜索的最佳步长。
4)检查收敛精度。
若曲1-叫则/=xx+1,停机;否则置k<-k+l,
返回步骤2,继续进行进行搜索。
2.2阻尼牛顿法的程序框图
2.3实例解析
利用阻尼牛顿法求函数f^x2)=(x{-2)4+(x1-2x2)2的极小值点(迭代两次,一维搜索任选一种方法)。
解:
取初始值x°=(3,0)r,则初始点初的函数梯度,海塞矩阵及其逆矩阵分别是
W(牙0)='4(兀一2)3十2(兀-2丕)
8耳-4人
把*代入Vf(x)=0中得最佳步长%=求出十=
2.4阻尼牛顿法的程序编程
程序如下:
//阻尼牛顿»去・cpp:
Definestheentrypointfortheconsoleapplication.
#include
#include
#include
#include
doublefunl(doubleql7doubleq2)
{
return(pow((ql-2),4)+pow((ql-2*q2)/2));〃修改函数
f(xl/x2)=(xl-2)*(xl-2)*(xl-2)*(xl-2)+(xl-2*x2)*(xl-2*x2)
}
doublefun2(doubleg,doublex,doubley,doubleredoubler2)
{
return(pow((x+g*y-2),4)+pow((x+g*y-2*(rl+g*r2))z2));//关于阻尼因子的函数
}
voidmain()
{
doubleA[2][1],B⑵[2],C[2][1],D[2]⑴,X[2][l];
doubleE[2][l]={4/3};//迭代的初始点xO
intt=Oj=Oj=O;
doubleE0,x:
tx2/X3,h(0・l);
doubleyby2,y3,m;
doubleabk=0・618,al,a2,fbf2;
printf("输入收敛精度:
”);//输入标准收敛精度
std:
:
cin»EO;
do
{
D[0][0]=E[0][0];
D[l][0]=E[l][0];
A[0][0]=4*(D[0][0]-2)*(D[0][0]-2)*(D[0][0]-2)+2*D[0][0]-4*D[l][0];
A[l][0]=-4*(D[0][0]-2*D[l][0]);//A[0][0]/A[l][0]为原函数梯度的各项
B[0][0]=1.0/(12.0*(D[0][0]-2)*(D[0][0]-2));
B[0][l]=1.0/(24.0*(D[0][0]-2)*(D[0][0]-2));
B[l][0]=1.0/(24.0*(D[0][0]-2)*(D[0][0]-2));
B[l][l]=(6.0*(D[0][0]-2)*(D[0][0]-2)+l)/(48.0*(D[0][0]-2)*(D[0][0]-2));//B[0][0LB
[O][1],B[1][OLB[1]⑴分别代表原函数的海赛矩阵的逆阵的各项
C[0][0]=-(B[0][0]*A[0][0]+B[0][l]*A[l][0]);
C[1][0]=-(B[1][0]*A[0][0]+B[1][1]*A[1][0]);//C[0][0]zC[1][0]为搜索方向dk的各项
〃下面利用外推法寻找函数2的区间,找单谷区间
xl=0;
x2=xl+h;
yl=fun2(xl,D[0][0],C[0][0]/D[l][0]/C[l][0]);
y2=fun2(x2/D[0][0]/C[0][0]/D[l][0],C[l][0]);
if(y2>yi)
{
h=-h;
x3=xl,y3=yl;
xl=x2zyl=y2;
x2=x3,y2=y3;
}
x3=x2+h;
y3=fun2(x3,D[0][0],C[0][0]/D[l][0]/C[l][0]);
while(y3 { h=2*h; xl=x2,yl=y2; x2=x3,y2=y3; x3=x2+h; y3=fun2(x3/D[0][0]/C[0][0]/D[l][0]/C[l][0]); i++; } 〃下面利用黄金分割法寻找函数2极值 a=xl; b=x3; al=b-k*(b-a); a2=a+k*(b-a); fl=fun2(al,D[0][0],C[0][0]/D[l][0]/C[l][0]); f2=fun2(a2,D[0][0]/C[0][0]/D[l][0]/C[l][0]); do { if(fl>=f2) { a=al; al=a2; fl=f2; a2=a+k*(b-a); f2=fun2(a2/D[0][0]/C[0][0]/D[l][0]/C[l][0]); } else { b=a2; a2=al; f2=fl; al=b-k*(b-a); fl=fun2(al/D[0][0]/C[0][0],D[l][0]/C[l][0]); } j++; }while(fabs((b-a)/b)>=EO&&fabs((f2-fl)/f2)>=EO); m=0.5*(a+b);//m为阻尼因子 E[0][0]=D[0][0]+m*C[0][0]; E[l][0]=D[l][0]+m*C[l][0]; printf("%d%15flO%15flO\n,,/t,E[O][O]/E[l][O]/funl(E[O][O]/E[l][O])); t++; }while(fabs(E[0][0]-D[0][0])>=E0&&fabs(E[l][O]-D[l][O])>=EO); X[O][O]=E[O][O]; X[1][O]=E[1][O]; printf(”迭代了%d次 printf(”极小点(xl/x2)=(%flO,%flO)\n"/X[O][O],X[l][O]); printf(”极小值f(xl,x2)=%fl0\n"/funl(X[0][0]/X[l][0])); } 该程序的运行结果,要求迭代两次后函数的极小值点在(1.94,0.97)处。 第3章总结 学习机械优化设计以前,总感觉企业的生产,人类日常生活中的劳动等都是一种简单的过程,总有一定的套路可循。 但自从接触了机械优化设计这门学科以后,让我认识到在人类的生产中,我们总是意向于得到我们最满意的效果,如加工零件怎样最省材料乂不影响零件的加工,生产的最优安排,设计的最优方案等,看似很简单的问题,但其中却蕴藏着极大的智慧。 以前在参加数学建模比赛的时候接触到一定的优化设计。 一些实例如管材问题中怎样剧料最省材料且利润最大,就这一个问题细分下來积累的,让我们团队奋斗了三天三夜,经过这那次比赛,我们都意识到原來优化设计是这么切合实际,贴近我们的生活。 终于在即将毕业之际,我接触到了机械优化设计这么课程,系统的学习了优化设计的各种方法。 机械优化设计虽然只有从近代到现在短短儿十年的发展历史,但是其体系的迅速完善我想是其他学科难以企及的。 如今,机械优化方法也是各类决策方法中普遍釆用的一种方法,机械优化设计作为一种现代化的设计方法己经广泛的机械设计中,并取得了良好的经济效益。 在面对市场竞争日益激烈的大环境下,计算机处理技术日益改进,作为新产品的开发与改进环节中最重要的环节就在于如何大幅度的缩短产品的使用周期,如何提高新产品的设计质量,以及降低新产品的设计成本这些方面等对于企业缩减开发成本,更快的抢占同类产品的市场等具有决定性的作用。 上完这门课,我学到了很多优化设计的方法,收获了很多,这对将来我的工作、生活都有很大的帮助。 我一定会与时俱进,跟上学科发展的势头,把机械优化设计作为学习生活中研究与关注的对象,在平时的处事中长存优化的思想。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机械 优化 设计 阻尼 牛顿 复习 过程