最优化大作业
优化设计作业
作业1. 阐述优化设计数学模型的三要素。
写出一般形式的数学模型。
答:建立最优化问题数学模型的三要素:(1)决策变量和参数。
决策变量是由数学模型的解确定的未知数。
参数表示系统的控制变量,有确定性的也有随机性的。
(2)约束或限制条件。
由于现实系统的客观物质条件限制,模型必须包括把决策变量限制在它们可行值之内的约束条件,而这通常是用约束的数学函数形式来表示的。
(3)目标函数。
这是作为系统决策变量的一个数学函数来衡量系统的效率,即系统追求的目标。
2. 阐述设计可行域和不可行域的基本概念答:约束对设计点在设计空间的活动范围有所限制。
凡满足所有约束条件的设计点,它在设计空间中的可能活动范围,称可行设计区域(可行域)。
不能满足所有约束条件的设计空间便是不可行设计区域(不可行域)。
3、无约束局部最优解的必要条件?答: (1)一元函数(即单变量函数) 极值点存在的必要条件如果函数f (x )的一阶导数f’(x )存在的话,则欲使x *为极值点的必要条件为: f’(x *)=0但使f’(x *)=0的点并不一定部是极值点;使函数f (x )的一阶导数f’(x )=0的点称为函数f (x )的驻点;极值点(对存在导数的函数)必为驻点,但驻点不一定是极值点。
至于驻点是否为极值点可以通过二阶导数f’’(x )=0来判断。
(2)n 元函数在定义域内极值点X *存在的必要条件为即对每一个变量的一阶偏导数值必须为零,或者说梯度为零(n 维零向量)。
▽f (X*)=0是多元函数极值点存在的必要条件,而并非充分条件;满足▽f (X*)=0的点X *称为驻点,至于驻点是否为极值点,尚须通过二阶偏导数矩阵来判断。
3. 阐述约束优化问题最优解的K-T 条件。
答:K-T 条件可阐述为:如果X (k)是一个局部极小点,则该点的目标函数梯度▽f (X (k))可表示成该点诸约束面梯度为▽g u (X (k))、▽h v (X (k))的如下线性组合:()()()()0****21=⎥⎦⎤⎢⎣⎡∂∂∂∂∂∂=∇T n x X f x X f x X f X f式中:q —在X (k)点的不等式约束面数;j —在X (k)点的等式约束面数;λu (u =1,2,…q )、μv (v =1,2,…j )——非负值的乘子,亦称拉格朗日乘子。
最优化方法大作业答案
1.用薄钢板制造一体积5m 3,长度不小于4m ,无上盖的货箱,要求钢板耗量最小。
确定货箱的长x 1、宽x 2和高x 3。
试列出问题的数学模型。
解:min 32312122x x x x x x z ++= s.t 5321=x x x 41≥x 0,,321≥x x x2.将下面的线性规划问题表示为标准型并用单纯形法求解max f=x 1+2x 2+x 3s .t .2x 1+x 2-x 3≤2 -2x 1+x 2-5x 3≥-6 4x 1+x 2+x 3≤6 x i ≥0 i=1,2,3 解:先化标准形:Min 321x x x z -+=224321=+-+x x x x 6525321=++-x x x x646321=+++x x x x列成表格:121610011460105122001112-----可见此表已具备1°,2°,3°三个特点,可采用单纯形法。
首先从底行中选元素-1,由2/2,6/2,6/4最小者决定选第一行第一列的元素2,标以记号,迭代一次得121210231040116201002121211--------再从底行中选元素-2/3,和第二列正元素1/2,迭代一次得12123230210231040116201002121211-------再从底行中选元素-3,和第二列正元素2,迭代一次得4233410120280114042001112---再迭代一次得1023021062210231010213000421021013--选取最优解:01=x 42=x 23=x3. 试用DFP 变尺度法求解下列无约束优化问题。
min f (X )=4(x 1-5)2+(x 2-6)2取初始点X=(8,9)T ,梯度精度ε=0.01。
解:取IH=0,初始点()TX 9,8=2221)6()5(4)(-+-=x x x f⎥⎦⎤⎢⎣⎡--=∇122408)(21x x x f⎪⎪⎭⎫⎝⎛=∇624)()0(xfTx f d )6,24()()0()0(--=-∇=)0(0)0()1(dxxα+=T)69,248(00αα--=])669()5248(4min[)(min 2020)0(0)0(--+--⨯=+αααdxf 0)6()63(2)24()2458(8)(00)0(0)0(=-⨯-+-⨯--=+ααααd d xdf13077.0130170≈=α⎪⎪⎭⎫⎝⎛=⎪⎪⎭⎫ ⎝⎛--⨯+⎪⎪⎭⎫ ⎝⎛=21538.886153.462413077.098)1(x⎪⎪⎭⎫⎝⎛-=∇43077.410784.1)()1(xf进行第二次迭代:⎥⎦⎤⎢⎣⎡--=-=78463.013848.31)0()1(xxδ⎥⎦⎤⎢⎣⎡--=∇-∇=56924.110783.25)()(1)0()1(xf xf γ101011011101γγγγγδδδH HH H H TTTT-+=03172.8011=γδT86614.6321101==γγγγH T⎥⎦⎤⎢⎣⎡=61561.046249.246249.285005.911Tδδ⎥⎦⎤⎢⎣⎡==46249.240022.3940022.3940363.630110110TTHH γγγγ所以:⎪⎪⎭⎫⎝⎛--=0038.103149.003149.012695.01H⎪⎪⎭⎫⎝⎛-⨯⎪⎪⎭⎫⎝⎛---=∇-=43076.410784.10038.103149.003149.012695.0)()1(1)1(xf H d⎪⎪⎭⎫⎝⎛-=48248.428018.0令 )1(1)1()2(dx x α+=利用)()1()1(=+ααd dxdf ,求得49423.01=α,所以⎪⎪⎭⎫⎝⎛-+⎪⎪⎭⎫⎝⎛=+=21538.213848.021538.886152.449423.0)1()1()2(dxx⎪⎪⎭⎫ ⎝⎛=65因)()2(=∇xf ,于是停,)2(x 即为最优解。
小学四年级数学最优化问题提高训练(附答案解析)
最优化问题一、知识要点在日常生活和生产中,我们经常会遇到下面的问题:完成一件事情,怎样合理安排才能做到用的时间最少,效果最佳。
这类问题在数学中称为统筹问题。
我们还会遇到“费用最省”、“面积最大”、“损耗最小”等等问题,这些问题往往可以从极端情况去探讨它的最大(小)值,这类问题在数学中称为极值问题。
以上的问题实际上都是“最优化问题”。
二、精讲精练【例题1】用一只平底锅煎饼,每次只能放两个,剪一个饼需要2分钟(规定正反面各需要1分钟)。
问煎3个饼至少需要多少分钟?练习1:1、烤面包时,第一面需要2分钟,第二面只要烤1分钟,即烤一片面包需要3分钟。
小丽用来烤面包的架子,一次只能放两片面包,她每天早上吃3片面包,至少要烤多少分钟?2、用一只平底锅烙大饼,锅里只能同时放两个。
烙熟大饼的一面需要3分钟,现在要烙3个大饼,最少要用几分钟?【例题2】妈妈让小明给客人烧水沏茶。
洗水壶需要1分钟,烧开水需要15分钟,洗茶壶需要1分钟,洗茶杯需要1分钟。
要让客人喝上茶,最少需要多少分钟?练习2:1、小虎早晨要完成这样几件事:烧一壶开水需要10分钟,把开水灌进热水瓶需要2分钟,取奶需要5分钟,整理书包需要4分钟。
他完成这几件事最少需要多少分钟?2、小强给客人沏茶,烧开水需要12分钟,洗茶杯要2分钟,买茶叶要8分钟,放茶叶泡茶要1分钟。
为了让客人早点喝上茶,你认为最合理的安排,多少分钟就可以了?【例题3】五(1)班赵明、孙勇、李佳三位同学同时到达学校卫生室,等候校医治病。
赵明打针需要5分钟,孙勇包纱布需要3分钟,李佳点眼药水需要1分钟。
卫生室只有一位校医,校医如何安排三位同学的治病次序,才能使三位同学留在卫生室的时间总和最短?练习3:1、甲、乙、丙三人分别拿着2个、3个、1个热水瓶同时到达开水供应点打热水。
热水龙头只有一个,怎样安排他们打水的次序,可以使他们打热水所花的总时间最少?2、甲、乙、丙三人到商场批发部洽谈业务,甲、乙、丙三人需要的时间分别是10分钟、16分钟和8分钟。
最优化马昌凤第三章作业
最优化方法及其Matlab程序设计习题作业暨实验报告学院:数学与信息科学学院班级:12级信计一班姓名:李明学号:49第三章 最速下降法和牛顿法一、上机问题与求解过程1、用最速下降法求212221216423),(x x x x x x f --+=的极小值。
解:仿照书上编写最速下降法程序如下:function [x,val,k]=grad(fun,gfun,x0)%功能:用最速下降法求解无约束化问题:min f(x)%输入:x0是初始点,fun,gfun分别是目标函数和梯度%输出:x,val分别是近似嘴有点和最优值,k是迭代次数maxk=5000;rho=;sigma=;%一开始选择时选择的rho和sibma选择的数据不够合理,此处我参照书上的数据编写数据k=0;epsilon=1e-5;while(k<maxk)g=feval(gfun,x0);%计算梯度d=-g;%计算搜索方向if(norm(d)<epsilon),break;endm=0;mk=0;while(m<20)%Armijo搜索if(feval(fun,x0+rho^m*d)<feval(fun,x0)+sigma*rho^m*g'*d)mk=m;break;%直接利用Armijo搜索公式,一开始的时候没有记住公式编写出现错误endm=m+1;endx0=x0+rho^mk*d;k=k+1;endx=x0;val=feval(fun,x0)%求得每一个的函数值然后仿照书上建立两个目标函数和梯度的M文件:function f=fun(x)f=3*x(1)^2+2*x(2)^2-4*x(1)-6*x(2);function g=gfun(x)g=[6*x(1)-4,4*x(2)-6]';选取初始点为']0,0[,调用函数程序,得出最小极值点为']6667.0[,极小值为8333500.1,,在界面框中输入的程序如下:.5[x,val,k]=grad('fun','gfun',x0)val =x =k =10从结果可以看出迭代次数为10次,如果选取不同的初值点则迭代次数不一样,但是极小值相同。
小学四年级奥数竞赛班作业第39讲:统筹与最优化
5. 有一家五口人要在夜晚过一座独木桥.他们家里的老爷爷行动非常不便,过桥需要 12 分钟;孩子们的父亲贪吃且不爱运动,体重严重超标,过河需要时间也较长,8 分钟; 母亲则一直坚持劳作,动作还算敏捷,过桥要 6 分钟;两个孩子中姐姐需要 3 分钟,弟
1
弟只要 1 分钟.当时正是初一夜晚又是阴天,不要说月亮,连一点星光都没有,真所谓 伸手不见五指.所幸的是他们有一盏油灯,同时可以有两个人借助灯光过桥.但要命的 灯油将尽,这盏灯只能再维持 30 分钟了!他们焦急万分,该怎样过桥呢?
A1 C
B
A2
A5
A6
D
F
E
公路
A3 A4 A7
5
答案: 1. 在不浪费时间的情况下:两张饼可同时煎完,三张饼也可以:首先 A,B 的正面,然后拿
走 A,煎 B 的反面和 C 的正面,然后拿走 B,煎 A,C 的反面. 2009 21003 3,完全可 以不浪费时间煎完,从而所需时间为: 2009 2 2 2009 分钟.
最优化方法与应用大作业(一)最速下降法
最优化方法与应用大作业(一)
---最速下降法部分:
1.问题描述:
用梯度下降法求解以下优化问题
min f(x)=(x1+10*x2)^2+5(x3-x4)^2+(x2-2*x3)^4+10*(x1-x4)^4
2.编程感想:
该算法需要计算Hesse矩阵,C语言在向量运算时没有Matlab方便,所以手工完成了理论计算,再输入,破坏了程序的移植性。
同时,实验表明当初始值离理想点较远且精度要求较高时,最速下降法的收敛速率极慢,迭代几乎不可能完成,这对初值的选取提出了一定限制。
3.结果分析:
编译界面(Mac os X,Xcode环境)
输入参数(设定为(0.1,0.2,0.3,0.4)):
结果(此处列出每次迭代结果)。
明显的看到,最速下降法的收敛较慢,最终结果接近理论值(F(0,0,0,0)=0)所以该结果可以满意。
4.算法代码见下页
西安电子科技大学电子工程学院020951
李骏昊02095005。
最优化方法大作业模板
命题人:审核人:大作业学期:至学年度第学期课程:最优化方法课程代号:签到序号:使用班级:姓名:学号:题号一二三四五六七八九十总分得分一、(目标1)请从以下6种算法中任选一种,说明算法的来源、定义、基本思想和优缺点,并给出算法步骤(包含算法流程图)和例子(包含程序与运算结果)。
①禁忌搜索算法;②模拟退火算法;③遗传算法;④神经网络算法;⑤粒子群算法;⑥蚁群算法。
二、(目标1)某工厂生产甲、乙两种产品,已知生产这两种产品需要消耗三种材料A 、B 和C ,其中生产过程中材料的单位产品消耗量和总量,以及单位产品的利润如下表所示。
该如何配置安排生产计划,使得工厂所获得的利润最大?材料甲乙资源总量材料A (Kg )3265材料B (Kg )2140材料C (Kg )0375单位利润(元/件)15002500-(1)要保证工厂利润的最大化,写出相应的生产计划数学模型;(2)根据对偶理论,直接写出该线性规划的对偶问题;(3)采用单纯形表法对该该线性规划问题进行求解,写出详细的计算过程;(4)采用Matlab 软件对该线性规划问题进行求解,写出完整的源程序,并给出程序运行结果;(5)讨论当材料B 的资源总量发生变化时,该线性规划问题的最优解会如何变化?课程目标目标1……题号一、二、三、四、五……分值20、25、20、20、15……得分得分三、(目标1)求解下列无约束非线性规划问题(1)采用黄金分割法求解:min 4()24f x x x =++。
初始区间为[-1.0],精度为ε=10-4。
(要求:采用黄金分割法进行Matlab 编程求解,写出源程序,并给出运行结果,列出迭代过程的数据表格)(2)采用阻尼牛顿法求解:222121212min (,)4f x x x x x x =+-。
分别取两个初始点:x A =(1,1)T ,x B =(3,4)T 。
(要求:采用阻尼牛顿法进行Matlab 编程求解,并给出运行结果,列出迭代过程的数据表格)四、(目标1)求解下列约束非线性规划问题:22112212121212min ()23532..00f x x x x x x x x x x x s t x x =-+--+≤⎧⎪-≤⎪⎨≥⎪⎪≥⎩(1)采用罚函数法进行求解,需写出具体计算过程;(2)采用二次规划方法进行求解,需写出具体计算过程,并进行MATLAB 编程,写出源程序和运算结果;五、(目标1)(1)某商店在未来的4个月里,准备利用它的一个仓库来专门经营某种商品,仓库的最大容量为1000单位,而且该商店每月只能出卖仓库现有的货。
西电最优化上机报告(大作业)
上机报告一.最速下降法算法简述:1.在本例中,先将最速下降方向变量赋一个值,使其二范数满足大于ε的迭代条件,进入循环。
2.将函数的一阶导数化简,存在一个矩阵,将其hesse矩阵存在另一个矩阵。
依照公式求出α,进而求出下一任迭代的矩阵初值。
循环内设置一个计数功能的变量,统计迭代次数。
3.求其方向导数的二范数,进行判别,若小于ε,则跳出循环,否则将继续迭代。
4.显示最优解,终止条件,最小函数值。
心得体会:最速下降法的精髓,无疑是求梯度,然后利用梯度和hesse矩阵综合计算,求解下一个当前最优解。
但是,要求函数是严格的凸函数,结合严格凸函数的大致图像,这就给初值的选取提供了一点参考。
例如在本例中,由于含有两个变量的二次方之和,结合大致图像,想当然的,初值的选取应当在原点附近;又因为变量的二次方之和后面,还减去了变量的一次形式和一次混合积,所以初值的选取应该再向第一象限倾斜。
综合以上考量,第一次选取(1,1)作为初值,判别精度方面,取到千分位,暂定为0.001。
运行以后,结果显示迭代了25次,最优解为(3.9995,1.9996),终止条件为5.4592e-04,目标函数为-8.0000。
这个结果已经相当接近笔算结果。
整体的运行也比较流畅,运算速度也比较快。
第二次取值,决定保留判别精度不变,将初值再适当向第一象限倾斜,取(2,2)作为初值,运行后,显示只迭代了11次!最优结果显示(3.9996,1.9997),终止条件为3.6204e-04,最优解-8.0000。
可见,最优结果更接近理想值,终止条件也变小了,最关键的是,迭代次数减少至第一次的一半以下!这说明以上初选取的方向是对的!第三次再进行初值细化,判别精度仍然不变,初值取(3,3)。
结果令人兴奋,只迭代了四次!最优解已经显示为(4.0000,2.0000),终止条件为2.4952e-04,目标函数-8.0000。
第四次,判别精度不变,取初值(4,4)。
最优化理论和算法: 大作业(一)
最优化理论和算法:大作业(一)简介:这个大作业的主要目的是在Matlab下自己编写单纯形法算法来求解标准型线性规划问题:min c T xs.t.Ax=bx≥0其中b≥0,A是m×n(m≤n)的矩阵。
假设A的秩是m.特别的,A并不一定包含单位矩阵。
按照要求编写下列小程序。
程序(一):实现单步单纯形法程序格式:function[istatus,iB,iN,xB]=simplex_step(A,b,c,iB,iN,xB)%实现一步单纯形法%输入参数:%A-(n,m)系数矩阵%b-(m,1)(正)右端向量%c-(n,1)目标函数系数%iB-(1,m)整数向量记录当前基本变量的指标数%iN-(1,n-m)整数向量记录当前非基本变量的指标数%xB-(m,1)向量代表当前基本变量的值%输出参数:%istatus-整数标记单纯形法执行状态%istatus=0正常单纯形法步完成% istatus=32问题无界% istatus=-1找到最优基本可行解%iB-(1,m)整数向量记录运行单纯形法之后的基本变量的指标数%iN-(1,n-m)整数向量记录运行单纯形法之后的非基本变量的指标数%xB-(m,1)向量记录运行单纯形法之后的基本变量的值注:该程序不考虑退化情形。
程序(二):利用两步法中的第一步来求解一个初始基本可行解程序格式:function[istatus,iB,iN,xB]=simplex_init(A,b)%实现两步法中的第一步来求解一个初始基本可行解,通过求解下面的问题:%min y_1+...+y_m%s.t.Ax+y=b%x>=0,y>=0%A是m x n矩阵。
%输入参数:%A-(n,m)系数矩阵%b-(m,1)正的右端向量%输出参数:%istatus-整数标记初始化状态% istatus=1找到原问题的一个基本可行解% istatus=4问题可行域是空集% istatus=16初始化过程失败%iB-(1,m)整数向量记录运行初始化之后的基本变量的指标数(对应原问题)%iN-(1,n-m)整数向量记录运行初始化之后的非基本变量的指标数(对应原问题)%xB-(m,1)向量记录运行初始化之后的基本变量的值(对应原问题)注:为了简单化程序,若初始化过程找到的初始基本可行解包含某些人工变量y j,设置istatus=16(初始化失败)。
北航最优化方法大作业参考
1 流量工程问题1.1 问题重述定义一个有向网络G=(N,E),其中N是节点集,E是弧集。
令A是网络G的点弧关联矩阵,即N×E阶矩阵,且第l列与弧里(I,j)对应,仅第i行元素为1,第j行元素为-1,其余元素为0。
再令b m=(b m1,…,b mN)T,f m=(f m1,…,f mE)T,则可将等式约束表示成:Af m=b m本算例为一经典TE算例。
算例网络有7个节点和13条弧,每条弧的容量是5个单位。
此外有四个需求量均为4个单位的源一目的对,具体的源节点、目的节点信息如图所示。
这里为了简单,省区了未用到的弧。
此外,弧上的数字表示弧的编号。
此时,c=((5,5…,5)1 )T,×13)。
根据上述四个约束条件,分别求得四个情况下的最优决策变量x=((x12,x13,…,x75)1×13图 1 网络拓扑和流量需求1.2 7节点算例求解1.2.1 算例1(b1=[4;-4;0;0;0;0;0]T)转化为线性规划问题:Minimize c T x1Subject to Ax1=b1x1>=0利用Matlab编写对偶单纯形法程序,可求得:最优解为x1*=[4 0 0 0 0 0 0 0 0 0 0 0 0]T对应的最优值c T x1=201.2.2 算例2(b2=[4;0;-4;0;0;0;0]T)Minimize c T x2Subject to Ax2=b2X2>=0利用Matlab编写对偶单纯形法程序,可求得:最优解为x2*=[0 4 0 0 0 0 0 0 0 0 0 0 0]T对应的最优值c T x2=201.2.3 算例3(b3=[0;-4;4;0;0;0;0]T)Minimize c T x3Subject to Ax3=b3X3>=0利用Matlab编写对偶单纯形法程序,可求得:最优解为x3*=[4 0 0 0 4 0 0 0 0 0 0 0 0]T对应的最优值c T x3=401.2.4 算例4(b4=[4;0;0;0;0;0;-4]T)Minimize c T x4Subject to Ax4=b4X4>=0利用Matlab编写对偶单纯形法程序,可求得:最优解为x4*=[4 0 0 4 0 0 0 0 0 4 0 0 0]T对应的最优值c T x4=601.3 计算结果及结果说明1.3.1 算例1(b1=[4;-4;0;0;0;0;0]T)算例1中,由b1可知,节点2为需求节点,节点1为供给节点,由节点1将信息传输至节点2的最短路径为弧1。
小学数学作业优化设计的有效方法分析
小学数学作业优化设计的有效方法分析摘要:优化小学数学作业设计,可以激发学生的学习兴趣,培养创新精神和实践能力,同时减轻学生的课业负担,是每一个教育工作者都应该关注和努力实现的目标。
从小学数学作业优化设计的目的、现状、有效方法等方面进行了全面的探讨,通过分析当前小学数学作业存在的问题,提出针对性的优化方法,以期提高作业设计质量,促进学生全面发展。
关键词:小学数学;作业优化;设计方法;全面发展引言:随着我国教育改革的深入推进,小学数学教学越来越注重学生的主体地位,作业设计作为教学过程中的重要环节,对于学生的学习效果具有至关重要的影响。
然而,当前小学数学作业设计中仍存在一定的问题,如过于强调应试、缺乏创新、忽视学生差异等。
为了提高作业设计的质量,需要对小学数学作业优化设计的有效方法进行了分析。
1小学数学作业优化设计的目的1.1提高学生学习兴趣兴趣是激发学生学习的内在动力。
优化数学作业设计,需要关注学生的兴趣爱好,将数学知识与生活实际相结合,创设有趣的情境,使学生在轻松愉快的氛围中体验到学习的乐趣。
通过有趣的作业,激发学生的求知欲,从而提高他们的学习兴趣[1]。
1.2关注学生个体差异每个学生都有自己独特的个性和学习能力。
优化数学作业设计,要充分考虑学生的个体差异,提供分层、分类的作业,使不同层次的学生都能在适合自己的难度下进行有效学习[2]。
此外,还要注重培养学生的合作精神,鼓励他们相互讨论、分享学习心得,共同进步。
1.3培养学生的创新能力和实践能力创新精神和实践能力是当今社会所需要的重要素质。
优化数学作业设计,要注重培养学生的思维能力,引导他们运用数学知识解决实际问题。
通过设计富有挑战性、创新性的作业,激发学生的探究欲望,培养他们的创新精神和实践能力[3]。
1.4减轻学生课业负担过重的课业负担会影响学生的身心健康。
优化数学作业设计,要遵循“适量、适度、科学”的原则,合理控制作业量,保证学生有充足的休息时间。
北航最优化方法大作业参考
北航最优化方法大作业参考旅行商问题是一个经典的组合优化问题,目标是找到一条最短路径,使得旅行商能够在访问所有城市后回到起始城市。
在实际应用中,旅行商问题有着广泛的应用,例如物流配送、城市规划等领域。
为了解决旅行商问题,我们可以采用启发式算法,其中一个常用的方法是遗传算法。
遗传算法是一种模拟自然进化过程的优化算法,通过模拟生物遗传的选择、交叉和变异等操作,逐步优化问题的解。
首先,我们需要对问题进行建模。
假设有N个城市,我们可以通过一个N*N的距离矩阵来表示各个城市之间的距离。
同时,我们需要定义一个染色体表示一条路径,其中每个基因表示一个城市的编号。
接下来,我们可以采用遗传算法来求解最优解。
遗传算法一般包括以下几个步骤:1.初始化种群:随机生成初始的染色体种群,每个染色体都表示一条路径。
2.适应度评价:根据染色体的路径长度来评估每个染色体的适应度,路径越短适应度越高。
3.选择操作:选择适应度较高的染色体作为父代,采用轮盘赌选择算法确定父代。
4.交叉操作:采用部分映射交叉算子对父代进行交叉操作,生成新的子代。
5.变异操作:对子代进行变异操作,以增加种群的多样性。
6.环境选择:根据适应度选择下一代种群,同时保留精英个体,避免解的丢失。
7.终止条件:当达到预设的迭代次数或者达到最优解时,终止算法。
通过以上步骤的迭代,我们可以逐步优化路径的长度,最终得到一条最短路径。
除了遗传算法,我们还可以尝试其他的优化算法,例如模拟退火算法、蚁群算法等。
这些算法在求解旅行商问题时都有一定的优势和适用性。
总结起来,旅行商问题是一个经典的组合优化问题,在北航最优化方法大作业中可以选择使用启发式算法来解决。
我们可以尝试使用遗传算法来求解最优路径,并根据实际情况选择合适的算法参数和终止条件。
通过不断地迭代和优化,我们可以得到一条最短路径,满足旅行商的需求。
以上是关于北航最优化方法大作业的参考内容,希望对你的写作有所帮助。
如果有其他疑问,欢迎继续提问。
北航最优化方法作业答案co_theory
原始问题
min-max问题是研究对偶问题的基础!各种对偶的区别: 的定义方式不同! 原始问题(primal problem)
◎ 前提: 两人采取理性行为 不管对方采取何种策略,该行为都能保证自己的最大获益 该行为都能保证自己的最大获益 -不管对方采取何种策略 Peter: 选 最多要支付 Harriet: 选 最少收到 需要解决的问题: max-min问题←→对偶问题
第 7 章 约束优化:理论 数学规划基础 LHY‐SMSS‐BUAA 第 7 章 约束优化:理论 数学规划基础 LHY‐SMSS‐BUAA
4
线性规划的对偶理论
线性规划的对偶理论: 原始问题←→对偶问题 • 原始问题-minimize,对偶问题-maximize • 原始问题最优解所对应的单纯形乘子是对偶问题的解 • 弱对偶性 • 强对偶性(之一有解,则另一个必有解,且最优值相等)
其中 是凸函数. 定理. 凸规划的任一KKT点是全局极小点. 注1. 凸规划的所有局部解也是全局解. 注2. 线性规划是凸规划;二次规划中目标函数的Hessian阵 半正定时,也是凸规划.
第 7 章 约束优化:理论 数学规划基础 LHY‐SMSS‐BUAA
则 . 从而 Lagrange乘子的解释:最优值关于约束的灵敏度,即 约束函数变化时,对应的最优值的变化率!
原始问题(primal problem) 例1.
Lagrange对偶-例
其中 的其它约束. 对任意的
, 是凸函数,X是凸集,是希望分别处理 ,定义对偶函数 定义对偶函数(dual (d l function) f ti )
对偶函数
对偶问题: 对偶问题(dual problem):
注:如果要求 ci(x) = 0,则对偶问题中与之对应的变量没 有符号限制.
西电最优化大作业
p0 f x0 , 当 搜 索 到
xk 1
时
,
共
轭
方
向
为
pk 1 f xk 1 k pk , k 0,1,...,n 2 ,此时, pk 1 与 pk A 共轭,用 Apk 右乘上式得
T pk 1 Apk f xk 1 Apk k pk Apk
m 2 理解为拉格朗日乘子法: minT X ; M min f x M min0, g i x i 1
其中
min0, g i x 2
g i 0,i 1 ~ m
当g i x 0,
,
由
T pk 1 Apk 0
得
f x k 1 Ap k k k 0,1,...,n 2 ,若不满足条件,进行下一次迭代。 pT p Ap k
T
1.2.2 问题求解 本程序编程语言为 MATLAB,终止条件为 f x k x0 =[1 1]。 程序代码见附件conjugate.m 1.2.3 计算结果如下:
三、此次实验的收获
经过几个晚上的艰苦奋斗,努力学习,不断调试程序,最终才得以成功运行 程序并得到满意的结果。 有过山重水复疑无路的困境,但最终迎来的还是柳暗花 明又一村的喜悦。通过此次实验,我的收获主要有以下几点: 以前自己在求解函数最优化问题时都是通过求导、画图等方法,而这几个算法都 是通过不断迭代寻找最优解, 相对来说更有利于电脑编程的实现和推广,对函数 本身性质的要求也不是太高。 在最速下降法中, 沿负梯度方向函数值很快的说法容易使我们相信这一定是 最理想的搜索方向, 沿该方向搜索时收敛速度应该很快,然而在算法实现过程中 发现,梯度法的收敛速度并不快(迭代次数为 45 次) ,比其它算法收敛速度都要 慢。而共轭梯度法仅需要利用一阶导数信息,也不再要求精确的直线搜索,进而 克服了最速下降法收敛慢的缺点(迭代次数为 2 次) 。 内点法和外点法的实质都是构造 “惩罚函数” 或者 “围墙函数 (或障碍函数) ” , 将约束函数其转化为非约束函数, 其中外点法在将函数转化为非约束函数后调用 了“牛顿法”来求解,内点法也尝试过用“牛顿法”来求解非约束函数,但由于 障碍函数为倒数形式, 导致了程序在求矩阵逆的时候产生了无穷大的量,函数无 解,所以内点法采用“直接求导”来求解非约束函数。此外,我也尝试了用求极 限的方法来求解最优点,根据手算的步骤,在求得偏导数为 0 的点后,令障碍因 子 mk→0,求得最优解,方法简单,算法易于实现。 这门课在学习过程中多以理论学习为主,如果平时不注重实践,将自己所学 运用到实际中, 就很难会有太大的收获,通过自己的努力用课堂上的算法解决了 实际问题,无疑加深了自己对算法理论的理解。
化学反应器大作业-二氧化硫转换器最优化
化学反应器理论大作业二氧化硫转换器最优化二氧化硫转换器最优化反应方程式:SO 2+1/2O 2=SO 3 (放热反应)四段绝热反应器,级间间接换热,常压下反应。
1. 基础数据• 混合物恒压热容Cp =0.2549 [kcal/kgK] • -ΔH =23135 [kcal/kmol] • 催化剂堆密度 ρb =554 [kg/m 3]• 进口SO 2浓度8.0 mol%,O 2浓度9.0 mol%,其余为氮气 • 处理量131 [kmol SO 2/hr],要求最终转化率98%2..动力学方程 式中:3. 基本要求• 在T -X 图上,做出平衡线;至少4条等速率线。
• 以一维拟均相平推流模型为基础,在催化剂用量最少的前提下,求总()()()[]sec ./11-2232323222gcat mol P P K P PB B P P K P k R SO SO SO SO SO SO O eff SO +-+-=ξ()()987.1,3.11295exp 1026203.227200exp 103.25.7355exp 48148600475,35992exp 105128.1475420,76062exp 106915.75218718223=⎪⎪⎭⎫⎝⎛⨯=⎪⎭⎫ ⎝⎛=⎪⎪⎭⎫ ⎝⎛⨯=⎪⎪⎭⎫⎝⎛-=-⎪⎪⎭⎫⎝⎛-⨯=-⎪⎪⎭⎫⎝⎛-⨯=--R T K P P K P RT K T B C RT k C RT k P O SO P SOoeff oeff ξ的及各段的催化剂装量,进出口温度、转化率并在T-X 图上标出折线。
•程序用C、Fortran、BASIC语言之一编制。
4.讨论•要求的最终转化率从98%变化到99%对催化剂用量的影响;•y O2+y SO2=21%,SO2进口浓度在7-9%之间变化,对催化剂装量的影响。
一.T-X图绘制平衡线与等反应速率线本次大作业计算程序,使用Matlab编程实现。
机械优化设计大作业(长江大学)
机械优化设计大作业姓名:**班级:机械11005班序号:11目录第一题.........................................................................................1-4第二题........................................................................................4-5第三题........................................................................................5-7第四题........................................................................................8-10 第五题.......................................................................................10-11 心得体会...................................................................................11-13 草稿....................................................................... ....14-181.⎪⎩⎪⎨⎧≥=++≥++⋅++=0,20521532min 21321321321x x x x x x x x t s x x x f解法一:将可行域化为对应的函数的标准形式:-x 1-2x 2-3x 3≤-15s.t 2x 1+x 2+5x 3=20x 1,x 2≥0程序清单如下: f=[1,1,1]; A=[-1,-2,-3]; Aeq=[2,1,5]; b=[-15]; beq=[20]; lbnd=[0,0];[x,minf]=linprog(f,A,b,Aeq,beq,lbnd,[]) 程序运行结果整理: x 1=0.0000 x 2=2.1429 x 3=3.5714 minf=5.7143解法二:构造新的函数求解 由2x 1+x 2+5x 3=20可知x 3=3(20−x 2−2x 1)5所以f= x 1+x 2+x 3= x 1+x 2+3(20−x 2−2x 1)5=﹣15x 1+25x 2+4令F=5(f-4)=3x 1+4 x 2,则可行域可化为:-x 1-2x 2-3x 3≤-15 x 1-7x 2≤-15s.t 2x 1+x 2+5x 3=20 s.tx 1,x 2≥0 x 1,x 2≥0 所以欲求minf 即求minF 程序清单如下: f=[3,4]; A=[1,-7]; b=[-15]; lbnd=[0,0];[x,minF]=linprog(f,A,b,[],[],lbnd,[]) 程序运行结果整理: x 1=0.0000; x 2=2.1429 minF=8.5714 因此minf=F5+4=8.57145+4=5.7143解法三:将解法二的可行域转化x 1-7x 2≤-15 x 1-7x 2≤-15s.t - x 1≤0x 1,x 2≥0 - x 2≤0此时不等式的约束关系可表示为:1 -7 x 1 -15 -1 0 ≤ 0 0 -1 x2 0程序清单如下: f=[3,4];A=[1,-7;-1,0;0,-1]; b=[-15,0,0];[x,minF]=linprog(f,A,b) 程序运行结果整理: x 1=0.0000 x 2=2.1429 minF=8.5714 因此minf=F5+4=8.57145+4=5.7143注:Ⅰ.由以上三种方法的运行结果可知,三种方法均可行。
最优化方法大作业
学号《最优化方法》课程实践完成时间:2015年5月30日星期六选择题目:题目一使用优化软件,编写重要算法的程序1.第一大题:(1)学习最优流量工程问题,nonsmooth_MCFP.pdf(2)问题重述:Figure 1一个简单的网络拓扑和流量需求如Figure 1所示,网络有7 个节点,13 条弧,每条弧的容量是5 个单位. 此外有四个需求量均为4个单位的源-目的对(M=4),具体的源节点、目的节点信息如图所示. 这里为了简单,省去了未用到的弧,此外弧上的数字表示弧的编号。
(3)极小化MAU设定变量x,为531⨯的向量,其中(53)x即为变量z。
使用linprog 函数求解极小化问题得到x。
之前确定三个约束条件。
1、Ax b⨯的矩阵,b为131⨯的向量。
≤,其中A为13532、eq eq x b A =,其中eq A 为2853⨯的矩阵,eq b 为281⨯的向量。
3、x lb ≥,其中lb 为153⨯的向量 编程计算后得到结果如下:(4) 极小化FT 成本函数设定变量x ,为651⨯的向量,其中(53:65)x 即为变量l z 。
使用linprog 函数求解极小化问题得到x 。
之前确定三个约束条件。
1、Ax b ≤,其中A 为7865⨯的矩阵,b 为781⨯的向量。
2、eq eq x b A =,其中eq A 为2865⨯的矩阵,eq b 为281⨯的向量。
3、x lb ≥,其中lb 为165⨯的向量 编程计算后得到结果如下:2. 第二大题: 2.1. 习题5.6 2.1.1. 问题分析问题2112212()(101810)/241513q x x x x x x x =-++-+ 通过matlab 画出其等高线为:2.1.2. 最速下降法最速下降法中,取值:k k p g =-==()()k k k kk T k k T k g p g g p Gp g Ggα- x1x 2等高线-224681012(1)()k x k x k p α+=+2.1.3. 算法流程图如下图所示:2.1.4. 初始值(0,0)编程运行结构为:收敛过程曲线为:2.1.5. 初始值(-0.4,0)编程运行结构为:收敛过程曲线为:x1x 2等高线-2246810122.1.6. 初始值(10,0)编程运行结构为:收敛过程曲线为:x1x 2-2246810122.1.7. 初始值(11,0)编程运行结构为:收敛过程曲线为:x1x 2-2246810122.2. 习题5.7 2.2.1. 问题分析问题()94ln(7)f x x x =--497g x =-- 24(7)G x =- Matlab 画出在区间(7 10)的函数、一阶导数、二阶导数的变化曲线为x1x 2-22468101277.588.599.510707274767880828486xf函数变化曲线77.588.599.510-35-30-25-20-15-10-50510xg一阶导数g 变化曲线2.2.2. 牛顿法牛顿法中,取值:k k k G s g =- 1k k k s xx +=+其中,如果G 不是半正定,则采用修正牛顿法(+)k k k G I s g λ=-77.588.599.51050100150200250300350400xg二阶导数G 变化曲线2.2.3.算法流程图如下图所示:2.2.4.初始值7.40编程运行结构为:收敛过程曲线为:2.2.5. 初始值7.20编程运行结构为:收敛过程曲线为:7.397.47.417.427.437.447.457.4670.24570.2570.25570.2670.265xf2.2.6. 初始值7.01编程运行结构为:收敛过程曲线为:7.17.27.37.47.57.67.770.270.470.670.87171.271.471.6xf2.2.7. 初始值7.80编程运行结构为:收敛过程曲线为:6.856.9 6.9577.057.17.157.27.257.37.35727476788082xf2.2.8. 初始值7.88编程运行结构为:收敛过程曲线为:7.17.27.37.47.57.67.77.87.97070.57171.572xf2.2.9. 分析函数在区间(7,7.8888)内是凸函数,G 恒大于零,所以单纯牛顿法保证收敛。
最优化方法课程设计-最优化大作业-用优化算法求解函数最值问题
最优化方法大作业---------用优化算法求解函数最值问题摘要最优化(optimization) 是应用数学的重要研究领域.它是研究在给定约束之下如何寻求某些因素(的量),以使某一(或某些)指标达到最优的一些学科的总称。
最优化问题一般包括最小化问题和最大化问题,而最大化问题可以通过简单的转化使之成最最小化问题。
最小化问题分为两类,即约束最小化和无约束最小化问题。
在此报告中,前两个问题属于无约束最小化问题的求解,报告中分别使用了“牛顿法”和“共轭梯度法”。
后两个问题属于有约束最小化问题的求解,报告中分别用“外点法”和“内点法”求解。
虽然命名不一样,其实质都是构造“惩罚函数”或者“障碍函数”,通过拉格朗日乘子法将有约束问题转化为无约束问题进行求解。
再此报告中,“外点法”和“内点法”分别用了直接求导和调用“牛顿法”来求解无约束优化问题。
在此实验中,用“共轭梯度法”对“牛顿法”所解函数进行求解时出现错误,报告中另取一函数用“共轭梯度法”求解得到正确的结果。
此实验中所有的函数其理论值都是显见的,分析计算结果可知程序正确,所求结果误差处于可接受范围内。
报告中对所用到的四种方法在其使用以前都有理论说明,对“外点法”中惩罚函数和“内点法”中障碍函数的选择也有相应的说明,另外,对此次试验中的收获也在报告的三部分给出。
本报告中所用程序代码一律用MATLAB编写。
【关键字】函数最优化牛顿法共轭梯度法内点法外点法 MATLAB一,问题描述1,分别用共轭梯度发法和牛顿法来求解一下优化问题()()()()()441432243221102510min x x x x x x x x x f -+-+-++=2, 分别用外点法和内点发求解一下优化问题⎩⎨⎧≥-++01.min 212231x x t s x x二、问题求解1.1 用牛顿法求解()()()()()441432243221102510min x x x x x x x x x f -+-+-++=1.1.1问题分析:取步长为1而沿着牛顿方向迭代的方法称为牛顿法,在牛顿法中,初始点的取值随意,在以后的每次迭代中,()[]()k k k k x f x f x x ∇∇-=-+121,直到终止条件成立时停止。
机械优化设计大作业
一、问题描述1.1结构特点(1)体积小、重量轻、结构紧凑、传递功率大、承载能力高;(2传)动效率高,工作高;(3)传动比大。
1.2用途和使用条件某行星齿轮减速器主要用于石油钻采设备的减速,其高速轴转速为1300r/min;工作环境温度为-20°C〜60°C,可正、反两向运转。
按该减速器最小体积准则,确定行星减速器的主要参数。
二、分析传动比u=4・64,输入扭矩T=1175・4N・m,齿轮材料均选用38SiMnMo钢,表面淬火硬度HRC45〜55,行星轮个数为3。
要求传动比相对误差A u<0.02。
弹性影响系数Z E=189.8MPa i/2;载荷系数k=1.05;齿轮接触疲劳强度极限[°]H=1250MPa;齿轮弯曲疲劳强度极限[。
]F=1000MPa;齿轮的齿形系数Y Fa=2・97;应力校正系数Y Sa=1.52;小齿轮齿数z取值范围17--25;模数m取值范围2—6。
注:优化目标为太阳轮齿数、齿宽和模数,初始点[24,52,5]T三、数学建模建立数学模型见图1,即用数学语言来描述最优化问题,模型中的数学关系式反映了最优化问题所要达到的目标和各种约束条件。
3.1设计变量的确定影响行星齿轮减速器体积的独立参数为中心轮齿数、齿宽、模数及行星齿轮的个数,将他们列为设计变量,即:x=[xxxx]T=[zbmc]T[1]12341式中:Z]_太阳轮齿数;b—齿宽(mm);m一模数(mm);行星轮的个数。
通常情况下,行星轮个数根据机构类型以事先选定,由已知条件c=3。
这样,设计变量为:x=[xxx]T=[Z bm】T[i]12313.2目标函数的确定为了方便,行星齿轮减速器的重量可取太阳轮和3个行星轮体积之和来代替,即:V=n/4(d2+Cd2)b12式中:d「-太阳轮1的分度圆直径,mm;d2--行星轮2的分度圆直径,mm。
将d=mzd=mz,z=z(u—2)/2代入(3)式整理,目标函11,2221数则为:F(x)=0.19635m2z2b[4+(u-2)2c][1]式中U--减速器传动比;C--行星轮个数由已知条件c=3,u=4.64,因此目标函数可简化为:F(x)=4.891x2x2x3123.3约束条件的建立3.3.1限制齿宽系数b/m的范围5W b/m W17,得:g(x)=5x—xWO[1]132g(x)=x—17WO[1]223.3.2保证太阳轮z1不发生跟切,得:g(x)=17—xWO[1]313.3.3限制齿宽最小值,得:g(x)=10—xWO】i]423.3.4限制模数最小值,得:g(x)=2—xWO】i]533.3.5按齿面接触疲劳强度条件,有:g(x)=750937.3/(xxx1/2)—[o]W0〔i]6123H式中:[。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
最优化大作业-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII最优化方法大作业---------用优化算法求解函数最值问题摘要最优化(optimization) 是应用数学的重要研究领域.它是研究在给定约束之下如何寻求某些因素(的量),以使某一(或某些)指标达到最优的一些学科的总称。
最优化问题一般包括最小化问题和最大化问题,而最大化问题可以通过简单的转化使之成最最小化问题。
最小化问题分为两类,即约束最小化和无约束最小化问题。
在此报告中,前两个问题属于无约束最小化问题的求解,报告中分别使用了“牛顿法”和“共轭梯度法”。
后两个问题属于有约束最小化问题的求解,报告中分别用“外点法”和“内点法”求解。
虽然命名不一样,其实质都是构造“惩罚函数”或者“障碍函数”,通过拉格朗日乘子法将有约束问题转化为无约束问题进行求解。
再此报告中,“外点法”和“内点法”分别用了直接求导和调用“牛顿法”来求解无约束优化问题。
在此实验中,用“共轭梯度法”对“牛顿法”所解函数进行求解时出现错误,报告中另取一函数用“共轭梯度法”求解得到正确的结果。
此实验中所有的函数其理论值都是显见的,分析计算结果可知程序正确,所求结果误差处于可接受范围内。
报告中对所用到的四种方法在其使用以前都有理论说明,对“外点法”中惩罚函数和“内点法”中障碍函数的选择也有相应的说明,另外,对此次试验中的收获也在报告的三部分给出。
本报告中所用程序代码一律用MATLAB编写。
【关键字】函数最优化牛顿法共轭梯度法内点法外点法 MATLAB一,问题描述1,分别用共轭梯度发法和牛顿法来求解一下优化问题()()()()()441432243221102510min x x x x x x x x x f -+-+-++=2, 分别用外点法和内点发求解一下优化问题⎩⎨⎧≥-++01.min 212231x x t s x x二、问题求解1.1 用牛顿法求解()()()()()441432243221102510min x x x x x x x x x f -+-+-++=1.1.1问题分析:取步长为1而沿着牛顿方向迭代的方法称为牛顿法,在牛顿法中,初始点的取值随意,在以后的每次迭代中,()[]()k k k k x f x f x x ∇∇-=-+121,直到终止条件成立时停止。
1.1.2 问题求解注:本程序编程语言为MATLAB ,终止条件为()162110-≤∇x f ,初始取值为[10 10 10 10]M 文件(求解函数)如下:function s=newton1(f,c,eps) %c 是初值,eps 为允许误差值 if nargin==2eps=1.0e-16; elseif nargin<1 error('')% returnendsyms x1 x2 x3 x4x=[x1 x2 x3 x4].';grad = jacobian(f).';hesse = jacobian(grad);a=grad;b=hesse;i=1;gradk=subs(a,[x1 x2 x3 x4],[c(1) c(2) c(3) c(4)]); hessek=subs(b,[x1 x2 x3 x4],[c(1) c(2) c(3) c(4)]);pk=-1*(hessek\gradk);x=tihuan(c);while norm(gradk)>=epsx=x+pk;gradk=subs(a,[x1 x2 x3 x4],[x(1) x(2) x(3) x(4)]); hessek=subs(b,[x1 x2 x3 x4],[x(1) x(2) x(3) x(4)]); pk=-hessek\gradk;i=i+1;enddisp('the times of iteration is:')disp(i)disp('The grad is:')disp(gradk)disp('and the result is:')x=x.';disp(x)return“tihuan”子函数:function x=tihuan(x)x(1)=x(1);x(2)=x(2);x(3)=x(3);x(4)=x(4);end调用方式如下:syms x1 x2 x3 x4f=(x1+10*x2)^2+5*(x3-x4)^2+(x2-2*x3)^4+10*(x1-x4)^4;c=[10 10 10 10]';%初始值 newton1(f,c,eps);1.1.3 计算结果如下:由上述结果可知,当迭代次数达到47次时满足终止条件,此时x 为1.0e-005 * [-0.1111 0.0111 0.0095 0.0095], 显然,此题的理论解为[0 0 0 0],分析上述结果,与理论解的误差处于可接受范围之内。
求解完成。
1.2 用共轭梯度法求解函数()()()()()441432243221102510min x x x x x x x x x f -+-+-++=用共轭梯度法求解上述函数的程序代码如下:1.2.1问题分析:取()00x f p -∇=,当搜索到1+k x 时,共轭方向()2,...,1,0,11-=+-∇=++n k p x f p k k k k λ,此时,1+k p 与k p A 共轭,用k Ap 右乘上式得()k Tkk k k k k Ap p Ap x f Ap p λ+-∇=++11,由01=+k Tk Ap p 得()2,...,1,01-=∇=+n k Ap p Ap x f kTp kTk k λ,若不满足条件,进行下一次迭代。
1.1.2 问题求解注:程序所用语言为MATLAB ,精度为1610-=epssyms x1 x2 x3 x4 t0 t1f=(x1+10*x2)^2+5*(x3-x4)^2+(x2-2*x3)^4+10*(x1-x4)^4; c=[10;10;10;10]; grad1 = diff(f,x1); grad2=diff(f,x2); grad3 = diff(f,x3); grad4=diff(f,x4);grad=[grad1;grad2;grad3;grad4]; a=grad; i=1; n=40;gradk=subs(a,[x1 x2 x3 x4],[c(1) c(2) c(3) c(4)]);x=tihuan(c); p0=0;while norm(gradk)>=eps p0=-gradk; y=x;x=x+t0*p0; k=0;gradk=subs(a,[x1 x2 x3 x4],[x(1) x(2) x(3) x(4)]); w=solve(gradk(1)+gradk(2)+gradk(3)+gradk(4)); t0=real(w); t0=eval(t0); t0=t0(1); x=y+t0*p0;gradk=subs(a,[x1 x2 x3 x4],[x(1) x(2) x(3) x(4)]); while norm(gradk)>=eps if k+1~=ngradk2=subs(a,[x1 x2 x3 x4],[x(1) x(2) x(3) x(4)]); gradk1=subs(a,[x1 x2 x3 x4],[y(1) y(2) y(3) y(4)]); lamda=norm(gradk2).^2/norm(gradk1).^2; p0=-gradk2+lamda*p0; k=k+1; elsek=0;p0=-subs(a,[x1 x2 x3 x4],[x(1) x(2) x(3) x(4)]); endclear y; y=x; x=x+t1*p0;gradk=subs(f,[x1 x2 x3 x4],[x(1) x(2) x(3) x(4)]); m=solve(gradk);t1=real(m); t1=eval(t1(1));x=x+t1*p0;x=eval(x);clear m;clear t1;syms t1gradk=subs(a,[x1 x2 x3 x4],[x(1) x(2) x(3) x(4)]); enddisp(x.') return; enddisp(x.')此程序为一初步程序,假设初值为[10;10;10;10],则第一次运算得t0=0.0011,lamda=0.9291,迭代后的x=NaN 。
现用共轭梯度法求解另一函数 ()222125min x x x f +=对上述程序稍加改动来求解本题的代码如下: 注:程序所用语言为MATLAB ,精度为1610-=epsfunction s=gongegrad2(f,c,eps) %c 是初值,eps 为允许误差值 if nargin==2%eps=1.0e-16; elseif nargin<1 error('') return end ticsyms x1 x2 t0 t1 grad1 = diff(f,x1); grad2=diff(f,x2); grad=[grad1;grad2]; a=grad; i=1;n=40;gradk=subs(a,[x1 x2],[c(1) c(2)]); x=tihuan(c);p0=0;while norm(gradk)>=epsp0=-gradk;y=x;x=x+t0*p0;k=0;gradk=subs(f,[x1 x2],[x(1) x(2)]);w=solve(gradk);t0=real(w);t0=eval(t0);t0=t0(1);x=y+t0*p0;gradk=subs(a,[x1 x2],[x(1) x(2)]);while norm(gradk)>=epsif k+1~=ngradk2=subs(a,[x1 x2],[x(1) x(2)]);gradk1=subs(a,[x1 x2],[y(1) y(2)]);lamda=norm(gradk2)^2/norm(gradk1)^2;p0=-gradk2+lamda*p0;k=k+1;elsek=0;p0=-subs(a,[x1 x2],[x(1) x(2)]);endclear y; y=x;x=x+t1*p0;gradk=subs(f,[x1 x2],[x(1) x(2)]);m=solve(gradk);t1=real(m); t1=eval(t1(1));x=y+t1*p0;clear m;clear t1;syms t1gradk=subs(a,[x1 x2],[x(1) x(2)]);enddisp(sprintf('the last point we want is[%f %f]',x(1),x(2)));disp(sprintf('the times used to recursion is %f',k));disp(sprintf('the function value is %f',x(1)^2+25*x(2)^2)); tocreturn;enddisp(sprintf('the last point we want is[%f %f]',x(1),x(2)));disp(sprintf('the times used to recursion is %f',k));disp(sprintf('the function value is %f',x(1)^2+25*x(2)^2));toc “tihuan ”子函数为: function x=tihuan(x) [v,g]=size(x); for i=1:v x(i)=x(i); end程序调用方式为: clear all clcsyms x1 x2 t0 t1 f=x1^2+25*x2^2; c=[2;2];%初值 gongegrad2(f,c,eps) 程序结果如下:由上述结果知,用共轭梯度法对上述函数求解需要迭代三次得到最优解0,此时x 为[0 0];符合理论分析的结果,求解完成。