最优化方法课程实验报告
- 格式:doc
- 大小:942.00 KB
- 文档页数:45
最优化方法实验报告一、实验目的:本实验旨在通过使用最优化方法来解决实际问题,探究最优化方法在不同场景下的适用性和效果,并对比不同最优化方法的优缺点。
二、实验原理:三、实验过程:1.准备工作确定要解决的问题,并确定问题的数学模型。
例如,可以选择一个具有约束条件的优化问题,如线性规划问题。
2.实验步骤(1)选择最优化方法根据实际问题的特点选择适合的最优化方法。
例如,如果问题具有多个局部最优解,可以选择遗传算法来避免陷入局部最优。
(2)实现算法根据选择的最优化方法,编写相应的算法实现代码。
可以使用编程语言如Python来实现算法。
(3)进行实验使用实际数据或人工生成的数据来测试算法的效果。
根据实验结果评估算法的性能,并对比不同算法的效果。
3.结果分析通过对比不同算法的效果,分析各种方法的优缺点,评估其适用性和可靠性。
四、实验结果与讨论:在本次实验中,我们选择了一个线性规划问题作为例子,使用了遗传算法和优化算法来求解。
具体问题为:有两种产品A和B,产品A的利润为5元,产品B的利润为10元。
每天可以生产的产品总数为50。
产品A的生产量不超过30,产品B的生产量不超过20。
求解在满足以上约束条件下,如何安排生产计划使得总利润最大。
我们首先使用了优化算法来求解。
通过编写代码,使用优化算法来最大化总利润。
结果发现,在满足约束条件的情况下,总利润最大为350元。
然后,我们使用了遗传算法来求解。
遗传算法是一种模仿生物进化过程的算法,通过选择、交叉和变异等操作来优化解。
在实验中,我们设置了一组初始解作为遗传算法的种群,并通过不断迭代优化解。
结果发现,在相同的迭代次数下,遗传算法得到的结果比优化算法更优,总利润最大为400元。
通过对比两种算法的结果,我们发现遗传算法相对于优化算法在该问题上具有更好的性能。
遗传算法通过不断迭代寻找更好的解,能够更好地避免陷入局部最优。
五、实验结论:本实验通过使用最优化方法来解决一个实际问题,对比了优化算法和遗传算法的效果。
最优化方法实验报告Numerical Linear Algebra And ItsApplications学生所在学院:理学院学生所在班级:计算数学10-1学生姓名:甘纯指导教师:单锐教务处2013年5月实验三实验名称:无约束最优化方法的MATLAB实现实验时间: 2013年05月10日星期三实验成绩:一、实验目的:通过本次实验的学习,进一步熟悉掌握使用MATLAB软件,并能利用该软件进行无约束最优化方法的计算。
二、实验背景:(一)最速下降法1、算法原理最速下降法的搜索方向是目标函数的负梯度方向,最速下降法从目标函数的负梯度方向一直前进,直到到达目标函数的最低点。
2、算法步骤用最速下降法求无约束问题n R()min的算法步骤如下:xxf,a )给定初始点)0(x ,精度0>ε,并令k=0;b )计算搜索方向)()()(k k x f v -∇=,其中)()(k x f ∇表示函数)(x f 在点)(k x 处的梯度;c )若ε≤)(k v ,则停止计算;否则,从)(k x 出发,沿)(k v 进行一维搜索,即求k λ,使得)(min )()()(0)()(k k k k v x f v x f λλλ+=+≥; d )令1,)()()1(+=+=+k k v x x k k k k λ,转b )。
(二)牛顿法1、算法原理牛顿法是基于多元函数的泰勒展开而来的,它将)()]([-)(1)(2k k x f x f ∇∇-作为搜索方向,因此它的迭代公式可直接写出来:)()]([)(1)(2)()(k k k k x f x f x x ∇∇-=-2、算法步骤用牛顿法求无约束问题n R x x f ∈),(min 的算法步骤如下:a )给定初始点)0(x ,精度0>ε,并令k=0;b )若ε≤∇)()(k x f ,停止,极小点为)(k x ,否则转c );c )计算)()]([,)]([)(1)(2)(1)(2k k k k x f x f p x f ∇∇-=∇--令;d )令1,)()()1(+=+=+k k p x x k k k ,转b )。
基于Matlab的共轭梯度算法指导老师:姓名:学号:班级:日期:基于Matlab的共轭梯度算法一、实验目的及要求(1)熟悉使用共轭梯度法求解无约束非线性规划问题的原理;(2)在掌握原理的基础上熟练运用此方法解决问题(3)学会利用计算机语言编写程序来辅助解决数学问题;(4)解决问题的同时分析问题,力求达到理论与实践的统一;(5)编写规范的实验报告.实验内容二、实验原理1.基本思想:把共轭性与最速下降方法相结合,利用已知点处的梯度构造一组共轭方向,并沿这组方向进行搜索,求出目标函数的极小点。
根据共轭方向的基本性质,这种方法具有二次终止性。
在各种优化算法中,共轭梯度法是非常重要的一种。
其优点是所需存储量小,具有步收敛性,稳定性高,而且不需要任何外来参数。
2.程序流图:三、实验代码通过查阅相关资料,编写一个基于Matlab的共轭梯度算法,具体代码如下:function f=grad_2d(x0,t)%用共轭梯度法求已知函数f(x1,x2)=x1^2+2*x2^2-4*x1-2*x1*x2的极值点%已知初始点坐标:x0%已知收敛精度:t%求得已知函数的极值:fx=x0;syms xi yi a; %定义自变量,步长为符号变量f=xi^2+2*yi^2-4*yi-2*xi*yi; %创建符号表达式ffx=diff(f,xi); %求表达式f对xi的一阶求导fy=diff(f,yi); %求表达式f对yi的一阶求导fx=subs(fx,{xi,yi},x0); %代入初始点坐标计算对xi的一阶求导实值fy=subs(fy,{xi,yi},x0); %代入初始点坐标计算对yi的一阶求导实值fi=[fx,fy]; %初始点梯度向量count=0; %搜索次数初始为0while double(sqrt(fx^2+fy^2))>t %搜索精度不满足已知条件s=-fi; %第一次搜索的方向为负梯度方向if count<=0s=-fi;elses=s1;endx=x+a*s; %进行一次搜索后的点坐标f=subs(f,{xi,yi},x); %构造一元搜索的一元函数φ(a)f1=diff(f); %对函数φ(a)进行求导f1=solve(f1); %得到最佳步长aif f1~=0ai=double(f1); %强制转换数据类型为双精度数值elsebreak %若a=0,则直接跳出循环,此点即为极值点endx=subs(x,a,ai); %得到一次搜索后的点坐标值f=xi^2+2*yi^2-4*xi-2*xi*yi;fxi=diff(f,xi);fyi=diff(f,yi);fxi=subs(fxi,{xi,yi},x);fyi=subs(fyi,{xi,yi},x);fii=[fxi,fyi]; %下一点梯度向量d=(fxi^2+fyi^2)/(fx^2+fy^2);s1=-fii+d*s; %下一点搜索的方向向量count=count+1; %搜索次数加1fx=fxi;fy=fyi; %搜索后终点坐标变为下一次搜索的始点坐标endx,f=subs(f,{xi,yi},x),count %输出极值点,极小值以及搜索次数end四、实验结果在命令窗口输入:f=grad_2d([1,1],0.0000001)输出结果如下:x =4.0000 2.0000f =-8.0000count = 75f =-8.0000当在命令窗口输入如下命令时:f=grad_2d([2,1],0.0000001)x =4.0000 2.0000f =-8.0000count =22f =-8.0000当在命令窗口输入如下命令时:f=grad_2d([2,1],0.001)x = 3.9996 1.9999f =-8.0000count =12f =-8.0000由以上结果可知:(1.)初始点不同搜索次数不同(2.)无论初始点为多少,精度相同时最终结果极值点都是(4.0000,2.0000)(3.)当初始点相同时,若精度不一样搜索次数和最终结果会有差异但大致相同。
桂林电子科技大学数学与计算科学学院实验报告最优解为:x=(2,0,1,0); 最优函数值为:-8。
()()123123123max23.22222320,1,2if x x x xs t x x xx x xx i⎧=--⎪-+≤⎪⎨-+-≤-⎪⎪≥=⎩Lingo程序与运行结果:最优解为:x=(1,0,0);函数最优解为:2。
()()1231212312max 564.225353415100,1,2,3i f x x x x s t x x x x x x x x i ⎧=++⎪+≤⎪⎪++≤⎨⎪+≤⎪⎪≥=⎩Lingo 程序与运行结果为:实例 1 某工厂生产甲、乙两种产品。
已知生产甲种产品t 1需耗A 种矿石t 10、B 种矿石t 5、煤t 4;生产乙种产品t 1需耗A 种矿石t 4、B 种矿石t 4、煤t 9。
每t 1甲种产品的利润是600元,每t 1乙种产品的利润是1000元。
工厂在生产这两种产品的计划中要求消耗A 种矿石不超过t 300、B 种矿石不超过t 200、煤不超过t 360。
甲、乙两种产品应各生产多少,能使利润总额达到最大?化为数学线性规划模型为:()12121212max 6001000.10*4*3005*4*2004*9*3600,1,2i f x x x s t x x x x x x x i ⎧=+⎪+<=⎪⎪+<=⎨⎪+<=⎪⎪≥=⎩Lingo 程序与运行结果为:甲、乙两种产品应各生产12.41379t 、34.48276t ,能使利润总额达到最大,最大利润为:41931.03。
实例2 设有A 1,A 2两个香蕉基地,产量分别为60吨和80吨,联合供应B 1,B 2,B 3三个销地的销售量经预测分别为50吨、50吨和40吨。
两个产地到三个销地的单位运价如下表所示:表1(单位运费:元/吨)问每个产地向每个销地各发货多少,才能使总的运费最少?化为数学线性规划模型:()()111213212223111213212223112112221323min 600300400400700300.608035050400,1,2,1,2,3ij f x x x x x x x s t x x x x x x x x x x x x x i j ⎧=+++++⎪++=⎪⎪++=⎪⎪+=⎨⎪+=⎪⎪+=⎪≥==⎪⎩Lingo 程序与运行结果为:A1到B2发货50t ,A1到B3发货10t ,A2到B1发货50t ,A2到B3发货30t ,才能使总的运费最少,最少值为48000。
最优化学习报告(写写帮整理)第一篇:最优化学习报告(写写帮整理)最优化学习报告在日常生活中,无论做任何一件事,人们总希望以最少的代价取得最大的效益,也就是力求最好,这就是优化问题。
最优化的问题是奥数中常见的一个问题,因为最优化是在生活中常用的。
例如一件事情要怎么样才能在尽可能节省人力、物力和时间前提下,争取获得在可能范围内的最佳效果。
这个就是需要通过计算来实现!最优化问题不仅具有趣味性,而且由于解题方法灵活,技巧性强,因此对于开拓解题思路,增强数学能力很有益处。
最优化就是在一切可能的方案中选择一个最好的方案以达到最优目标的学科。
最优化问题无处不在。
只要存在选择,就一定存在优化问题。
例如,从甲地到乙地有公路、水路、铁路、航空四种走法,如果我们追求的目标是省钱,那么只要比较一下这四种走法的票价,从中选择最便宜的那一种走法就达到目标。
这是最简单的最优化问题。
生活中还有很多的例子,比如说随着我国经济高速发展,能源短缺的矛盾突现,建设节约性社会是众望所归。
现实生活中,汽车作为代步工具,与我们的生活密切相关。
汽油的使用效率何时最高的问题也是最优化问题,众所周知,汽车的每小时耗油量与汽车的速度有一定的关系。
如何使汽车的汽油使用效率最高(汽油使有效率最高是指每千米路程的汽油耗油量最少)的问题。
此外还有磁盘的最大存储量问题,计算机把数据存储在磁盘上。
磁盘是带有磁性介质的圆盘,并有操作系统将其格式化成磁道和扇区。
磁道是指不同半径所构成的同心轨道,扇区是指被同心角分割所成的扇形区域。
磁道上的定长弧段可作为基本存储单元,根据其磁化与否可分别记录数据0或1,这个基本单元通常被称为比特(bit)。
则一个磁盘它的存储区是半径介于与多少之间的环形区域,磁盘的存储量越大问题。
第三个例子,饮料瓶大小对饮料公司利润的影响,现实生活中你是否注意过,市场上等量的小包装的物品一般比大包装的要贵些?那是不是饮料瓶越大,饮料公司的利润越大?又比如说一个具体的例子,货轮上卸下若干只箱子,总重量为10吨,每只箱子的重量不超过1吨,为了保证能把这些箱子一次运走,问至少需要多少辆载重3吨的汽车?[分析] 因为每一只箱子的重量不超过1吨,所以每一辆汽车可运走的箱子重量不会少于2吨,否则可以再放一只箱子。
最优化方法课程设计报告班级:________________姓名: ______学号: __________成绩:2017年 5月 21 日目录一、摘要.............................. 错误!未定义书签。
二、单纯形算法 .......................... 错误!未定义书签。
1.1 单纯形算法的基本思路................................................................... 错误!未定义书签。
1.2 算法流程图....................................................................................... 错误!未定义书签。
1.3 用matlab编写源程序...................................................................... 错误!未定义书签。
二、黄金分割法 ......................... 错误!未定义书签。
2.1 黄金分割法的基本思路................................................................... 错误!未定义书签。
2.2 算法流程图....................................................................................... 错误!未定义书签。
2.3 用matlab编写源程序...................................................................... 错误!未定义书签。
2.4 黄金分割法应用举例....................................................................... 错误!未定义书签。
《最优化方法》实验报告实验序号:01 实验项目名称:线性规划及MATLAB应用《最优化方法》实验报告实验序号:02 实验项目名称:0.618黄金分割法的应用结果分析:根据以上结果可知,在区间[0,3]上,函数g(x)=x^3-2*x+1的最小值点在x=0.9271处,此时最小值为0。
第二题:P50 例题3.1程序:function [t,f]=golden3(a,b) %黄金分割函数的m文件t2=a+0.382*(b-a);f2=2*(t2)^2-(t2)-1;t1=a+0.618*(b-a); %按照黄金分割点赋值,更准确可直接算f1=2*(t1)^2-(t1)-1;while abs(t1-t2)>0.16; %判定是否满足精度if f1<f2a=t2;t2=t1;f2=f1;t1=a+0.618*(b-a);f1=2*(t1)^2-(t1)-1;elseb=t1;t1=t2;f1=f2;t2=a+0.382*(b-a);f2=2*(t2)^2-(t2)-1;endendt=(t1+t2)/2; %满足条件取区间中间值输出第四题:P64 T3程序:function [t,d]=newtow2(t0)t0=2.5;t=t0-(4*(t0)^3-12*(t0)^2-12*(t0)-16)/(12*(t0)^2-24*(t0)-12);k=1;T(1)=t;while abs(t-t0)>0.000005t0=t;t=t0-(4*(t0)^3-12*(t0)^2-12*(t0)-16)/(12*(t0)^2-24*(t0)-12); k=k+1;T(k)=t;endt1=t0;d=(t1)^4-4*(t1)^3-6*(t1)^2-16*(t1)+4;kTend运行结果:当x(0)=2.5当x(0)=3四.实验小结:1.通过这次实验,加深了对0.618法的理解。
2.在学习0.618法的过程中,又巩固了倒数、求解函数值等相关知识。
最优化实验报告(单纯形法的matlab程序,lingo程序)实验一:线性规划单纯形算法一、实验目的通过实验熟悉单纯形法的原理,掌握Matlab 循环语句的应用,提高编程的能力和技巧。
二、实验用仪器设备、器材或软件环境Windows Xp 操作系统 ,Matlab6.5,计算机三、算法对于一般的标准形式线性规划问题(求极小问题),首先给定一个初始基本可行解。
设初始基为B,然后执行如下步骤:(1).解B Bx b =,求得1Bx B b -=,0,N B B x f c x ==令计算目标函数值 1(1,2,...,)i m B bi -=i 以b 记的第个分量(2).计算单纯形乘子w, B wB C =,得到1B wC B -=,对于非基变量,计算判别数1i i i B i i z c c B p c σ-=-=-,令 max{}k i i i Rz c σ∈=-,R 为非基变量集合若判别数0k σ≤ ,则得到一个最优基本可行解,运算结束;否则,转到下一步(3).解k k By p =,得到1k k y B p -=;若0k y ≤,即k y 的每个分量均非正数,则停止计算,问题不存在有限最优解,否则,进行步骤(4). (4).确定下标r,使{}min ,0t rrktktk b b tk y y t y y >=>且r B x 为离基变量。
k x 为进基变量,用k p 替换r B p ,得到新的基矩阵B ,返回步骤(1)。
对于极大化问题,可以给出完全类似的步骤,只是确定进基变量的准则不同。
对于极大化问题,应令min{}k k j j z c z c -=-四、计算框图是否是否开始初始可行解B令1,0,BN B B x B b b x f c x -====计算单纯形乘子1B w c B -=,计算判别数,i j j wp c j R σ=-∈(非基变量)令max{,}kj j R σσ=∈0?k σ≤得到最优解解方程kk By p =,得到1k k y B p -=。
最优化方法实验报告optimization method Experiment Report学生所在学院:理学院学生所在班级:信息1学生姓名:教务处20014年5 月最优化方法实验报告书说明:1.下面程序在MATLAB R2012a 中均能正常运行。
2.程序之间有关联。
实验一熟悉MATLAB基本功能(2学时)实验的目的和要求:在本次实验中,通过亲临使用MATLAB,对该软件做一全面了解并掌握重点内容。
实验内容:1、全面了解MATLAB系统2、实验常用工具的具体操作和功能学习建议:本次实验在全面了解软件系统基础之上,学习和熟悉一些MATLAB的基础用途,重点掌握优化工具箱函数选用的内容。
重点和难点:优化工具箱函数选用。
利用Matlab的优化工具箱,可以求解线性规划、非线性规划和多目标规划问题。
具体而言,包括线性、非线性最小化,最大最小化,二次规划,半无限问题,线性、非线性方程(组)的求解,线性、非线性的最小二乘问题。
另外,该工具箱还提供了线性、非线性最小化,方程求解,曲线拟合,二次规划等问题中大型课题的求解方法,为优化方法在工程中的实际5.大型方法的演示函数下面以我们最常用的线性规划模型求解函数linprog作为典型对优化工具箱进行简单的介绍。
linprog函数功能:求解线性规划问题。
在命令窗口,键入doc linprog,得到下图(该图为帮助窗口)数学模型:其中f,x,b,beq,lb和ub为向量,A和Aeq 为矩阵。
语法:x = linprog(f,A,b,Aeq,beq)x = linprog(f,A,b,Aeq,beq,lb,ub)x = linprog(f,A,b,Aeq,beq,lb,ub,x0)x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options)[x,fval] = linprog(...)[x,fval,exitflag] = linprog(...)[x,fval,exitflag,output] = linprog(...)[x,fval,exitflag,output,lambda] = linprog(...)描述:x = linprog(f,A,b)求解问题 min f'*x,约束条件为A*x <= b。
项目一 一维搜索算法(一)[实验目的]编写加步探索法、对分法、Newton 法的程序。
[实验准备]1.掌握一维收搜索中搜索区间的加步探索法的思想及迭代步骤; 2.掌握对分法的思想及迭代步骤; 3.掌握Newton 法的思想及迭代步骤。
[实验内容及步骤] 编程解决以下问题:1.用加步探索法确定一维最优化问题的搜索区间,要求选取.加步探索法算法的计算步骤: (1)选取初始点,计算.给出初始步长,加步系数,令。
(2) 比较目标函数值.令k k k h t t +=+1,计算 )(11++=k k t ϕϕ,若k k ϕϕ<+1,转(3),否则转(4)。
(3) 加大探索步长.令,同时,令,转(2)。
(4) 反向探索.若,转换探索方向,令,转(2)。
否则,停止迭代,令。
加步探索法算法的计算框图12)(min 30+-=≥t t t t ϕ2,1,000===αh t ])0[)(0[max 00t t t ,或,∈⊂∞+∈)(00t ϕϕ=0>h 1α>0=k k k h h α=+1,k t t =,1+=k k t t 1k k =+0=k ,k k h h -=1+=k t t 11min{}max{}k k a t t b t t ++==,,,程序清单加步探索法算法程序见附录1实验结果运行结果为:2.用对分法求解,已知初始单谷区间,要求按精度,分别计算.对分法迭代的计算步骤:(1)确定初始搜索区间],[b a ,要求。
(2) 计算],[b a 的中点)(21b ac +=. (3) 若0)(<'c ϕ,则c a = ,转(4);若0)(='c ϕ,则c t =*,转(5);若0)(>'c ϕ,则c b = ,转(4).)2()(min +=t t t ϕ]5,3[],[-=b a 3.0=ε001.0=ε'()0'()0a b ϕϕ<>,(4) 若ε<-||b a ,则)(21*b a t +=,转(5);否则转(2). (5) 打印*t ,结束对分法的计算框图程序清单对分法程序见附录2实验结果运行结果为:3.用Newton 法求解,已知初始单谷区间,要求精度.Newton 法的计算步骤12)(min 3+-=t t t ϕ]1,0[],[=b a 01.0=ε(1) 确定初始搜索区间],[b a ,要求 (2) 选定0t(3) 计算(4) 若 ε≥-||0t t ,则t t =0,转(3);否则转(5). (5) 打印 ,结束.Newton 法的计算框图程序清单Newton 法程序见附录3实验结果运行结果为:'()0'()0a b ϕϕ<>,000'()/"()t t t t ϕϕ=-()t t ϕ,项目二 一维搜索算法(二)[实验目的]编写黄金分割法、抛物线插值法的程序。
倒立摆控制系统控制器设计实验报告成员:乾睿2220150423文2220150493学院:自动化倒立摆控制系统控制器设计实验一、实验目的和要求1、目的(1)通过本设计实验,加强对经典控制方法(LQR控制器、PID控制器)和智能控制方法(神经网络、模糊控制、遗传算法等)在实际控制系统中的应用研究。
(2)提高学生有关控制系统控制器的程序设计、仿真和实际运行能力.(3)熟悉MATLAB语言以及在控制系统设计中的应用。
2、要求(1)完成倒立摆控制系统的开环系统仿真、控制器的设计与仿真以及实际运行结果(2)认真理解设计容,独立完成实验报告,实验报告要求:设计题目,设计的具体容及实验运行结果,实验结果分析、个人收获和不足,参考资料。
程序清单文件。
二、实验容倒立摆控制系统是一个典型的非线性系统,其执行机构具有很多非线性,包括:死区、电机和带轮的传动非线性等。
本设计实验的主要容是设计一个稳定的控制系统,其核心是设计控制器,并在MATLAB/SIMULINK环境下进行仿真实验,并在倒立摆控制实验平台上实际验证。
算法要求:使用LQR以外的其它控制算法。
三、倒立摆系统介绍倒立摆是机器人技术、控制理论、计算机控制等多个领域、多种技术的有机结合,其被控系统本身又是一个绝对不稳定、高阶次、多变量、强耦合的非线性系统,可以作为一个典型的控制对象对其进行研究。
倒立摆系统作为控制理论研究中的一种比较理想的实验手段,为自动控制理论的教学、实验和科研构建一个良好的实验平台,以用来检验某种控制理论或方法的典型方案,促进了控制系统新理论、新思想的发展。
由于控制理论的广泛应用,由此系统研究产生的方法和技术将在半导体及精密仪器加工、机器人控制技术、人工智能、导弹拦截控制系统、航空对接控制技术、火箭发射中的垂直度控制、卫星飞行中的姿态控制和一般工业应用等方面具有广阔的应用开发前景。
倒立摆的形式和结构各异,但所有的倒立摆都具有以下的特性:非线性,不确定性,耦合性,开环不稳定性,约束限制。
上海电力学院最优化方法报告院系:能机学院 ______________专业:动力机械及工程学牛姓名:张焱儒14101058任课教师:薛文娟__________2015年6月21 日1 动力机械及工程简介动力机械及工程是“动力工程及工程热物理”一级学科的重点组成部分,它以工程热物理为主要理论基础,与工程力学、机械工程学、自动控制、计算机、环境科学、微电子技术等学科互相交融,密切相关。
动力系统与机械建模、仿真、优化,动力机械与设备的气动热力学,燃烧理论与技术,动力机械工作过程及排放净化,动力机械的控制理论与技术,热力机械的结构分析及设计方法,新型动力机械是该学科研究的范围。
动力机械及工程学科其侧重点主要以燃气轮机、汽轮机、内燃机和正在发展中的其它新型动力机械及其系统为对象,研究如何把燃料的化学能和流体动能安全、高效、低污染地转换成动力的基本规律和过程,研究转换过程中的系统和设备,以及与此相关的控制技术,同时,对于风能、太阳能的利用也积极探索,如何能高效地获得这些能源。
它涉及能源、交通、电力、航空、农业、环境等与国民经济、社会发展及国防工业密切相关的领域。
2 问题及解决方案2.1 非线性结构优化问题我所研究的方向是燃气轮机转子非线性动力学,燃气轮机转子在运转的情况下,其工作条件非常恶劣,承受高温、高压。
另外燃气轮机转子的结构复杂也是一大难题,复杂的结构必然导致模型参数维数高,所以在对结构进行优化的过程非常困难,所以我们需要对其非线性特性进行优化,然而结构非线性优化的梯度计算代价太高,而且当考虑结构的动态效应时,处理时域内的函数也相当复杂。
因此,利用传统的基于梯度的数值优化方法进行结构动态非线性优化是比较困难的。
近年来,全局优化算法得到了快速发展,如粒子群优化算法(Particle swarm optimization ,PSO)、遗传算法(Genetic algorithm , GA)、自适应模拟退火法(Adaptive simulated annealing , ASA) 等。
《最优化方法及其应用》课 程 实 验 报 告一、 实验内容项目一 一维搜索算法(一) [实验目的]编写加步探索法、对分法、Newton 法的程序。
[实验学时]2学时[实验准备]1.掌握一维收搜索中搜索区间的加步探索法的思想及迭代步骤;2.掌握对分法的思想及迭代步骤;3.掌握Newton 法的思想及迭代步骤。
[实验内容及步骤]编程解决以下问题:1.用加步探索法确定一维最优化问题12)(min 30+-=≥t t t t ϕ的搜索区间,要求选取2,1,000===αh t .2.用对分法求解)2()(min +=t t t ϕ,已知初始单谷区间]5,3[],[-=b a ,要求按精度3.0=ε,001.0=ε分别计算.3.用Newton 法求解12)(min 3+-=t t t ϕ,已知初始单谷区间]1,0[],[=b a ,要求精度01.0=ε.项目二 一维搜索算法(二)[实验目的]编写黄金分割法、抛物线插值法的程序。
[实验学时]2学时[实验准备]1.掌握黄金分割法的思想及迭代步骤;2.掌握抛物线插值法的思想及迭代步骤。
[实验内容及步骤]编程解决以下问题:1.用黄金分割法求解)2()(min +=t t t ϕ,已知初始单谷区间]5,3[],[-=b a ,要求精度001.0=ε.2.用抛物线插值法求解3728)(min 23+--=x x x x f ,已知初始单谷区间001.0]20[][==ε,,,b a .项目三 常用无约束最优化方法(一)[实验目的]编写最速下降法、Newton 法(修正Newton 法)的程序。
[实验学时]2学时[实验准备]1.掌握最速下降法的思想及迭代步骤。
2.掌握Newton 法的思想及迭代步骤;3.掌握修正Newton 法的思想及迭代步骤。
[实验内容及步骤]编程解决以下问题:1.用最速下降法求22120min ()25[22]0.01T f X x x X ε=+==,,,.2.用Newton 法求22121212min ()60104f X x x x x x x =--++-,初始点0[00]0.01T X ε==,,. 3.用修正Newton 求221212min ()4(1)2(1)10f X x x x x =++-+++,初始点0[00]0.01T X ε==,,.项目四 常用无约束最优化方法(二)[实验目的]编写共轭梯度法、变尺度法(DFP 法和BFGS 法)程序。
摘要最优化理论和方法日益受到重视,已经渗透到生产、管理、商业、军事、决策等各个领域,而最优化模型与方法广泛应用于工业、农业、交通运输、商业、国防、建筑、同学、政府机关等各个部门及各个领域。
伴随着计算机技术的高速发展,最优化理论与方法的迅速进步为解决实际最优化问题的软件也在飞速发展。
其中,MATLAB软件已经成为最优化领域应用最广的软件之一。
有了MATLAB 这个强大的计算平台,既可以利用MATLAB优化工具箱(OptimizationToolbox)中的函数,又可以通过算法变成实现相应的最优化计算。
在最优化计算中一维最优化方法是优化设计中最简单、最基本的方法。
一维搜索,又称为线性搜索,一维问题是多维问题的基础,在数值方法迭代计算过程中,都要进行一维搜索,也可以把多维问题化为一些一维问题来处理。
一维问题的算法好坏,直接影响到最优化问题的求解速度。
而黄金分割法是一维搜索方法中重要的方法之一,它适用于任何单峰函数求最小值的问题,甚至于对函数可以不要求连续,是一种基于区间收缩的极小点搜索算法。
目录摘要 (1)一、引言 (2)二、最优化方法原理 (3)2.1 无约束问题的最优性条件 (3)三、黄金分割法的基本思想与原理 (4)3.1 黄金分割法基本思路: (4)3.2 黄金分割法的基本原理与步骤 (4)3.3 0.618法算法 (5)3.4 算法流程图 (6)3.5 用matlab编写源程序 (6)第四章黄金分割法应用举例 (7)4.1 例1 (7)4.2 例2 (8)第五章总结 (9)一、引言数学科学不仅是自然科学的基础,也是一切重要技术发展的基础。
最优化方法更是数学科学里面的一个巨大的篇幅,在这个信息化的时代,最优化方法广泛应用于工业、农业、国防、建筑、通信与政府机关、管理等各个部门、各个领域;它主要解决最优计划、最优分配、最优决策、最佳设计、最佳管理等最优化问题。
而最优解问题是这些所有问题的中心,是最优化方法的重中之重,在求最优解问题中,有多种方法解决,我们在这里着重讨论无约束一维极值问题,即非线性规划的一维搜索方法之黄金分割法。
项目一 一维搜索算法(一)[实验目的]编写加步探索法、对分法、Newton 法的程序。
[实验准备]1.掌握一维收搜索中搜索区间的加步探索法的思想及迭代步骤; 2.掌握对分法的思想及迭代步骤;3.掌握Newton 法的思想及迭代步骤。
[实验内容及步骤]编程解决以下问题:1.用加步探索法确定一维最优化问题的搜索区间,要求选取.加步探索法算法的计算步骤: (1)选取初始点,计算.给出初始步长,加步系数,令。
(2) 比较目标函数值.令k k k h t t +=+1,计算 )(11++=k k t ϕϕ,若k k ϕϕ<+1,转(3),否则转(4)。
(3) 加大探索步长.令,同时,令,转(2)。
(4) 反向探索.若,转换探索方向,令,转(2)。
否则,停止迭代,令。
加步探索法算法的计算框图12)(min 30+-=≥t t t t ϕ2,1,000===αh t ])0[)(0[max 00t t t ,或,∈⊂∞+∈)(00t ϕϕ=00>h 1α>0=k k k h h α=+1,k t t =,1+=k k t t 1k k =+0=k ,k k h h -=1+=k t t 11min{}max{}k k a t t b t t ++==,,,程序清单加步探索法算法程序见附录1实验结果运行结果为:2.用对分法求解,已知初始单谷区间,要求按精度,分别计算.对分法迭代的计算步骤:(1)确定初始搜索区间],[b a ,要求。
(2) 计算],[b a 的中点)(21b ac +=. (3) 若0)(<'c ϕ,则c a = ,转(4);若0)(='c ϕ,则c t =*,转(5);若0)(>'c ϕ,则c b = ,转(4).(4) 若ε<-||b a ,则)(21*b a t +=,转(5);否则转(2).(5) 打印*t ,结束对分法的计算框图)2()(min +=t t t ϕ]5,3[],[-=b a 3.0=ε001.0=ε'()0'()0a b ϕϕ<>,程序清单对分法程序见附录2实验结果运行结果为:3.用Newton 法求解,已知初始单谷区间,要求精度.Newton 法的计算步骤(1) 确定初始搜索区间],[b a ,要求 (2) 选定0t(3) 计算(4) 若 ε≥-||0t t ,则t t =0,转(3);否则转(5).(5) 打印 ,结束.Newton 法的计算框图12)(min 3+-=t t t ϕ]1,0[],[=b a 01.0=ε'()0'()0a b ϕϕ<>,000'()/"()t t t t ϕϕ=-()t t ϕ,程序清单Newton 法程序见附录3实验结果运行结果为:项目二 一维搜索算法(二)[实验目的]编写黄金分割法、抛物线插值法的程序。
实验报告时序分析和优化篇一:最优化实验报告最优化第一次实验报告班级:信息与计算科学 2 班姓名:陈鸿杰学号:201141410202一、模型求解:运用黄金分割法求得minφ=-1,最优解为:α=1。
第一次迭代点为:-第二次迭代点为:-二、程序代码:function [s,phis,k,G,E]=golds t=-1)/2;h=b-a;phia=feval;phib=feval;p=a+*h;q=a+t*h;phip=feval;phiq=feval;G=[a, p, q, b]; while>epsilon) ||if*h;phip=feval;elsea=p;phia=phip;p=q;phip=phiq;h=b-a;q=a+t*h;phiq=feval;endk=k+1; G=[a, p, q, b]; endds=abs;dphi=abs;ifs=p;phis=phip;elsephis=phiq;endE=[ds,dphi];三、模型求解:在Matlab命令窗口输入:[s,phis,k,G,E]=goldsx -2*x,-2,5,1e-5,1e-5) 程序运行结果:s =phis = -k = 29G = ---E = *[]篇二:时序实验报告实验报告实验项目名称时间序列数据平稳性检验实验室机房八所属课程名称时间序列分析实验类型软件操作实验日期班级金融保险统计学号2008119060姓名蔡志文成绩篇二:基本时序电路的实验报告专业:电气工程及自动化姓名:邓思原实验报告学号:3130103251 日期:1月5日地点:东三-310 课程名称:电路与电子技术实验ⅰ指导老师:李玉玲成绩:__________________ 实验名称:实验25时序逻辑电路设计、实验27脉冲分配器实验类型:_____ 同组学生姓名:__一、实验目的和要求1、加深理解时序电路的工作原理;2、学习时序电路的设计与调试;3、掌握时序集成电路的应用。
. .项目一 一维搜索算法(一)[实验目的]编写加步探索法、对分法、Newton 法的程序。
[实验准备]1.掌握一维收搜索中搜索区间的加步探索法的思想及迭代步骤; 2.掌握对分法的思想及迭代步骤;3.掌握Newton 法的思想及迭代步骤。
[实验容及步骤]编程解决以下问题:1.用加步探索法确定一维最优化问题12)(min 30+-=≥t t t t ϕ的搜索区间,要求选取2,1,000===αh t .加步探索法算法的计算步骤:(1)选取初始点])0[)(0[max 00t t t ,或,∈⊂∞+∈,计算)(00t ϕϕ=.给出初始步长0>h ,加步系数1α>,令0=k 。
(2) 比较目标函数值.令k k k h t t +=+1,计算 )(11++=k k t ϕϕ,若k k ϕϕ<+1,转(3),否则转(4)。
(3) 加大探索步长.令k k h h α=+1,同时,令,k t t =,1+=k k t t 1k k =+,转(2)。
(4) 反向探索.若0=k ,转换探索方向,令,k k h h -=1+=k t t ,转(2)。
否则,停止迭代,令11min{}max{}k k a t t b t t ++==,,,。
加步探索法算法的计算框图. .程序清单加步探索法算法程序见附录1实验结果运行结果为:2.用对分法求解)2()(min +=t t t ϕ,已知初始单谷区间]5,3[],[-=b a ,要求按精度3.0=ε,001.0=ε分别计算.对分法迭代的计算步骤:(1)确定初始搜索区间],[b a ,要求'()0'()0a b ϕϕ<>,。
(2) 计算],[b a 的中点)(21b ac +=. (3) 若0)(<'c ϕ,则c a = ,转(4);若0)(='c ϕ,则c t =*,转(5);若0)(>'c ϕ,则c b = ,转(4).(4) 若ε<-||b a ,则)(21*b a t +=,转(5);否则转(2)... (5) 打印*t ,结束对分法的计算框图程序清单对分法程序见附录2实验结果运行结果为:3.用Newton 法求解12)(min 3+-=t t t ϕ,已知初始单谷区间]1,0[],[=b a ,要求精度01.0=ε.Newton 法的计算步骤(1) 确定初始搜索区间],[b a ,要求 '()0'()0a b ϕϕ<>, (2) 选定0t (3) 计算000'()/"()t t t t ϕϕ=-. . (4) 若 ε≥-||0t t ,则t t =0,转(3);否则转(5). (5) 打印()t t ϕ, ,结束.Newton 法的计算框图程序清单Newton 法程序见附录3实验结果运行结果为:项目二 一维搜索算法(二)[实验目的]编写黄金分割法、抛物线插值法的程序。
.. [实验准备]1.掌握黄金分割法的思想及迭代步骤; 2.掌握抛物线插值法的思想及迭代步骤。
[实验容及步骤]编程解决以下问题: 1.用黄金分割法求解)2()(min +=t t t ϕ, 已知初始单谷区间]5,3[],[-=b a ,要求精度001.0=ε.黄金分割法迭代步骤:(1) 确定)(t ϕ的初始搜索区间][b a ,. (2) 计算)(382.02a b a t -+= (3) 计算)(618.01a b a t -+=(4) 若ε<-||21t t ,则打印221*t t t +=,结束;否则转(5). (5) 判别是否满足21ϕϕ≤:若满足,则置12122ϕϕ===,,t t t a 然后转(3);否则,置)()(22221211t a b t t t t b ϕϕβαϕϕ=-+====,,,,然后转(4). 黄金分割法的计算框图:. .程序清单黄金分割法程序见附录4实验结果运行结果为:2.用抛物线插值法求解3728)(min 23+--=x x x x f ,已知初始单谷区间001.0]20[][==ε,,,b a .抛物线插值法的计算步骤:(1) )()(0t t ϕϕ<,所以相对0t 来说t 是好点,故划掉区间],[20t t ,保留],[01t t 为新区间,故置)()(0202t t t t ϕϕ==,,)()(00t t t t ϕϕ==,,1t 保持不变;(2) )()(0t t ϕϕ>,所以相对t 来说0t 是好点,故划掉区间],[1t t ,保留],[2t t 为新区间,故置)()(11t t t t ϕϕ==,,0t 与2t 保持不变;程序清单抛物线插值法程序见附录5. . 实验结果运行结果为:项目三 常用无约束最优化方法(一)[实验目的]编写最速下降法、Newton 法(修正Newton 法)的程序。
[实验准备]1.掌握最速下降法的思想及迭代步骤。
2.掌握Newton 法的思想及迭代步骤; 3.掌握修正Newton 法的思想及迭代步骤。
[实验容及步骤]编程解决以下问题: 1.用最速下降法求22120min ()25[22]0.01T f X x x X ε=+==,,,.最速下降法计算步骤 (1)0,0)(,)0(=>k X 令精度容许误差取初始点ε(2))()()(k k X f p-∇=计算(3)0)()(4,,?否则转取若是迭代终止检验k k X X p =≤*ε (4)))(()(min :)()()()(0一维搜索求最优步长k k k k k k p X f p Xf λλλλ+=+≥)()()1(2,1:,转令令+=+=+k k p X X k k k k λ最速下降法的计算框图..程序清单最速下降法程序见附录6实验结果运行结果为:2.用Newton 法求22121212min ()60104f X x x x x x x =--++-,.. 初始点0[00]0.01TX ε==,,.Newton 法的计算步骤 (1)给定初始点(0)x ,及精度0ε>,令0k =;(2)若()()k f X ε∇≤,停止,极小点为()k x ,否则转步骤(3);(3)计算12()()k f X -⎡⎤∇⎣⎦,令1()()()()()k k k s H X f X -⎡⎤=-∇⎣⎦;令(1)()()k k k xx s +=+,1k k =+,转步骤(2)。
程序清单Newton 法程序见附录7实验结果 运行结果为:3.用修正Newton 求221212min ()4(1)2(1)10f X x x x x =++-+++,初始点0[00]0.01T X ε==,,.修正Newton 的计算步骤 (1)给定初始点(0)x ,及精度0ε>,令0k =; (2)若()()k f X ε∇≤,停止,极小点为()k x,否则转步骤(3);(3)计算12()()k f X -⎡⎤∇⎣⎦,令1()()()()()k k k s H X f X -⎡⎤=-∇⎣⎦;(4)用一维搜索法求α,使得()()()()()()min ()k k k k k f X S f X S ααα≥+=+,令(1)()()()k k k k X X S α+=+,1k k =+,转步骤(2)。
程序清单..修正Newton 程序见附录8实验结果运行结果为:项目四 常用无约束最优化方法(二)实验目的编写共轭梯度法、变尺度法(DFP 法和BFGS 法)程序。
实验准备1.掌握共轭方向法的思路及迭代过程; 2.掌握共轭梯度法的思想及迭代步骤;3.掌握DFP 法和BFGS 法的思想及迭代步骤。
实验容及步骤编程解决以下问题:1. 用共轭梯度法求得)4min(2221x x +,取初始点TX ]11[0,=,01.0=ε.共轭梯度法算法步骤 (1) 给定初始点(0)x,及精度0ε>;(2) 若(0)()f x ε∇≤,停止,极小值点为(0)x,否则转步骤(3);. . (3) 取(0)(0)()pf x =-∇,且置0k =;(4) 用一维搜索法求k t ,使得()()()()()()min k k k k k t f x t p f x tp ≥+=+,令,(1)()()k k k k x x t p +=+,转步骤5;(5) 若(1)()k f x ε+∇≤,停止,极小值点为(1)k x+,否则转步骤(6);(6) 若1k n +=,令(0)()n x x =,转步骤(3),否则转步骤(7);(7) 令(1)(1)()()k k k k p f x p λ++=-∇+,2(1)2()()()k k k f x f x λ+∇=∇,置1k k =+,转步骤(4)。
程序清单共轭梯度法程序见附录9实验结果运行结果为:2. 用共轭梯度法求221212min ()2f X x x x x =+-,自定初始点,01.0=ε.程序清单共轭梯度法程序见附录9..实验结果运行结果为:3.用DFP 法求2212min ()4(5)(6)f X x x =-+-,初始点01.0]98[0==ε,,TX .DFP 法的具体迭代步骤如下: (1)给定初始点,迭代精度,维数n(2)置0→k ,单位矩阵I →,计算。
(3)计算搜索方向 (4)进行一维搜索求,使得迭代新点(5)检验是否满足迭代终止条件‖‖≤?若满足,停止迭代,输出最优解,;否则进行下一步。
(6)检查迭代次数,若k=n ,则置,转向步骤(2);若k<n ,则进行下一步。
(7)计算:。
然后,置k+1→k,转向步骤(3)。
DFP法的计算框图程序清单DFP法程序见附录10实验结果运行结果为:... . 项目五 常用约束最优化方法[实验目的]编写外点罚函数法、外点罚函数法的程序。
[实验准备]1.掌握外点罚函数法的思想及迭代步骤; 2.掌握点罚函数法的思想及迭代步骤。
[实验容及步骤]编程解决以下问题:1.用外点罚函数法编程计算⎩⎨⎧=-+=≥=+-=,,,01)(0ln )(..)(min 2112121x x X h x X g t s x x X f精度510-=ε.外点法的计算步骤:(1)给定初始点x (0),初始罚因子)1(λ,放大系数c>1;允许误差e>0,设置k=1;(2)以x (k-1)作为搜索初始点,求解无约束规划问题)()(m in x P x f λ+,令x (k)为所求极小点。
(3)当e xP k <)()(λ,则停止计算,得到点x (k);否则,令)()1(k k c λλ=+,返回(2)执行。
程序清单外点罚函数法程序见附录11实验结果实验结果为运行结果为:..2.用点罚函数法编程计算⎩⎨⎧≥≥-⎥⎦⎤⎢⎣⎡++.,,001..)1(31min 21231x x t s x x初始点取为TX ]43[0,=,初始障碍因子取101=u ,缩小系数取1.0=c .点罚步骤:(1) 给定初始点S x ∈)0(,允许误差e>0,障碍参数)1(γ,缩小系数)1,0(∈b ,置k=1;(2) 以)1(-k x 为初始点,求解下列规划问题:Sx t s x B x f k ∈+..)()(min )(γ,令)(k x 为所求极小点(3) 如果e x B k k <)()()(γ,则停止计算,得到结果)(k x ,(4) 否则令)()1(k k b γγ=+,置k=k+1,返回(2)。