最优化方法练习题答案_第1页
最优化方法练习题答案_第2页
最优化方法练习题答案_第3页
最优化方法练习题答案_第4页
最优化方法练习题答案_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

练习题一1、建立优化模型应考虑哪些要素?答:决策变量、目标函数和约束条件。2、讨论优化模型最优解的存在性、迭代算法的收敛性及停止准那么。答:针对一般优化模型,讨论解的可行域,假设存在一点,对于均有那么称为优化模型最优解,最优解存在;迭代算法的收敛性是指迭代所得到的序列,满足,那么迭代法收敛;收敛的停止准那么有,,,,等等。练习题二1、某公司看中了例2.1中厂家所拥有的3种资源R1、R2、和R3,欲出价收购〔可能用于生产附加值更高的产品〕。如果你是该公司的决策者,对这3种资源的收购报价是多少?〔该问题称为例2.1的对偶问题〕。解:确定决策变量对3种资源报价作为本问题的决策变量。确定目标函数问题的目标很清楚——“收购价最小”。确定约束条件资源的报价至少应该高于原生产产品的利润,这样原厂家才可能卖。因此有如下线性规划问题:*2、研究线性规划的对偶理论和方法〔包括对偶规划模型形式、对偶理论和对偶单纯形法〕。答:略。3、用单纯形法求解以下线性规划问题:〔1〕;〔2〕解:〔1〕引入松弛变量x4,x5,x6cj→1-11000CB基bx1x2x3x4x5x60x421[1]-21000x532110100x64-101001cj-zj1-11000因检验数σ2<0,故确定x2为换入非基变量,以x2的系数列的正分量对应去除常数列,最小比值所在行对应的基变量x4作为换出的基变量。cj→1-11000CB基bx1x4x3x4x5x6-1x2211-21000x5110[3]-1100x64-101001cj-zj20-1100因检验数σ3<0,故确定x3为换入非基变量,以x3的系数列的正分量对应去除常数列,最小比值所在行对应的基变量x5作为换出的基变量。cj→1-11000CB基bx1x2x5x4x5x6-1x28/35/3101/32/301x31/31/301-1/31/300x611/3-4/3001/3-1/31cj-zj7/3032/31/30因检验数σj>0,说明已求得最优解:,去除添加的松弛变量,原问题的最优解为:。〔2〕根据题意选取x1,x4,x5,为基变量:cj→0-1100CB基bx1x2x3x4x50x121-21000x420[1]-2100x5501101cj-zj0-1100因检验数σ2<0最小,故确定x2为换入非基变量,以x2的系数列的正分量对应去除常数列,最小比值所在行对应的基变量x4作为换出的基变量。cj→0-1100CB基bx1x2x3x4x50x1610-320-1x2201-2100x5300[3]-11cj-zj00-110因检验数σ3<0最小,故确定x3为换入非基变量,以x1的系数列的正分量对应去除常数列,最小比值所在行对应的基变量x5作为换出的基变量。cj→0-1100CB基bx1x2x3x4x50x1910011-1x240101/32/31x31001-1/31/3cj-zj0002/31/3因检验数σj>0,说明已求得最优解:。4、分别用大法、两阶段法和Matlab软件求解以下线性规划问题:〔1〕;〔2〕解:〔1〕大M法根据题意约束条件1和2可以合并为1,引入松弛变量x3,x4,构造新问题。cj→41M0CB基bx1x2x3x4Mx33[3]1100x431201cj-zj4-3M1-M004x1111/31/300x420[5/3]-1/31cj-zj0-1/3M-4/304x13/5102/5-1/51x26/501-1/53/5cj-zj00M-7/51/5因检验数σj>0,说明已求得最优解:。Matlab调用代码:f=[4;1];A=[-9,-3;1,2];b=[-6;3];Aeq=[3,1];beq=3;lb=[0;0];[x,fval]=linprog(f,A,b,Aeq,beq,lb)输出结果:Optimizationterminated.x=0.60001.2000fval=3.6000〔2〕大M法引入松弛变量x4,x5,x6,x7构造新问题。单纯形表计算略;当所有非基变量为负数,人工变量=0.5,所以原问题无可行解。请同学们自己求解。Matlab调用代码:f=[-10;-15;-12];A=[5,3,1;-5,6,15;-2,-1,-1];b=[9;15;-5];lb=[0;0;0];x=linprog(f,A,b,[],[],lb)输出结果:原题无可行解。5、用内点法和Matlab软件求解以下线性规划问题:解:用内点法的过程自己书写,参考答案:最优解;最优值5Matlab调用代码:f=[2;1;1];Aeq=[1,2,2;2,1,0];beq=[6;5];lb=[0;0;0];[x,fval]=linprog(f,[],[],Aeq,beq,lb)输出结果:Optimizationterminated.x=1.33332.33330.0000fval=5.00006、用分支定界法求解以下问题:〔1〕;〔2〕解:〔1〕调用matlab编译程序bbmethodf=[-5;-8];G=[11;59];h=[6;45][x,y]=bbmethod(f,G,h,[],[],[0;0],[],[1;1],1)x=33y=-39最优解[33];最优值39〔2〕调用matlab编译程序bbmethodf=[-7;-9];G=[-13;71];h=[6;35][x,y]=bbmethod(f,G,h,[],[],[0;0],[],[1;0],1)x=50y=-35最优解[50];最优值357、用隐枚举法和Matlab软件求解以下问题:〔1〕;〔2〕解:隐枚举法:〔1〕将〔0,0,0〕〔0,0,1〕〔0,1,0〕〔1,0,0〕〔0,1,1〕〔1,0,1〕〔1,1,0〕〔1,1,1〕分别带入到约束条件中,可以得到:原问题的最优解是〔0,0,1〕,目标函数最优值2.〔2〕将〔0,0,0,0,0〕〔0,0,0,0,1〕〔0,0,0,1,0〕〔0,0,1,0,0〕….〔1,1,1,1,1〕分别带入到约束条件中,可以得到:原问题的最优解是〔1,1,0,0,0〕,目标函数最优值-5。Matlab软件求解:〔1〕调用代码:f=[4;3;2];%价值向量fA=[2,-5,3;-4,-1,-3;0,-1,-1];%不等式约束系数矩阵A,[]中的分号“;”%为行分隔符b=[4;-3;-1];%不等式约束右端常数向量b[x,fval]=bintprog(f,A,b,[],[]);%调用函数bintprog。注意两个空数组的占位作用。输出结果x=001fval=2〔2〕调用代码:f=[-3;-2;5;2;3];%价值向量fA=[1,1,1,2,1;7,0,3,-4,3;-11,6,0,-3,3];%不等式约束系数矩阵A,[]中的分号“;”%为行分隔符b=[4;8;-1];%不等式约束右端常数向量b[x,fval]=bintprog(f,A,b,[],[]);%调用函数bintprog。注意两个空数组的占位作用。输出结果x=11000fval=-5最优值5。8、某地区有A、B、C三个化肥厂,供给本地甲、乙、丙、丁四个产粮区。各化肥厂可供给化肥的数量和各产粮区对化肥的需要量,以及各厂到各区每吨化肥的运价如表2-28所示。试制定一个使总运费最少的化肥调拨方案。表2-SEQ表2-\*ARABIC28运价/产粮(元/吨)区化肥厂甲乙丙丁各厂供给量/万吨A158737A2491078A384293各区需要量/万吨6633解:设A、B、C三个化肥厂为A1、A2、A3,甲、乙、丙、丁四个产粮区为B1、B2、B3、B4;cij为由Ai运化肥至Bj的运价,单位是元/吨;xij为由Ai运往Bj的化肥数量〔i=1,2,3;j=1,2,3,4〕单位是吨;z表示总运费,单位为元,依题意问题的数学模型为:该题可以用单纯形法或matlab自带工具箱命令〔linprog〕求解。*9、求解以下不平衡运输问题〔各数据表中,方框内的数字为单位价格,框外右侧的一列数为各发点的供给量,框底下一行数是各收点的需求量〕:〔1〕51710要求收点3的需求必须正好满足。6468032515752050〔2〕51020要求收点1的需求必须由发点4供给。32410752159601551015解答略。10、一公司经理要分派4位推销员去4个地区推销某种商品。推销员各有不同的经验和能力,因而他们在不同地区能获得的利润不同,其获利估计值如表2-29所示。公司经理应怎样分派才使总利润最大?表2-SEQ表2-\*ARABIC29地区推销员1234135272837228342940335243233424322528解:用求极大值的“匈牙利法”求解。效率矩阵表示为:行约简M-C行约简M-CijM=40标号列约简所画〔〕0元素少于n〔n=4〕,未得到最优解,需要继续变换矩阵〔求能覆盖所有0元素的最少数直线集合〕:标号列约简√√√√√√未被直线覆盖的最小元素为cij=2,在未被直线覆盖处减去2,在直线交叉处加上2。标号标号∴得最优解:∴使总利润为最大的分配任务方案为:1→1,2→4,3→3,4→2此时总利润W=35+40+32+32=139练习题三1、用0.618法求解问题的间为。答:t=0.8115;最小值-0.0886.〔调用golds.m函数〕2、求无约束非线性规划问题min=的最优解解一:由极值存在的必要条件求出稳定点:,,,那么由得,,再用充分条件进行检验:,,,,,即为正定矩阵得极小点为,最优值为-1。解二:目标函数改写成min=易知最优解为〔1,0,0〕,最优值为-1。3、用最速下降法求解无约束非线性规划问题。其中,给定初始点。解一:目标函数的梯度令搜索方向再从出发,沿方向作一维寻优,令步长变量为,最优步长为,那么有故令可得求出点之后,与上类似地,进行第二次迭代:令令步长变量为,最优步长为,那么有故令可得此时所到达的精度此题最优解,解二:利用matlab程序求解首先建立目标函数及其梯度函数的M文件functionf=fun(x)f=x(1)-x(2)+2*x(1)*x(1)+2*x(1)*x(2)+x(2)*x(2);functiong=gfun(x)g=[1+4*x(1)+2*x(2),-1+2*x(1)+2*x(2)];调用grad.m文件x0=[0,0];[x,val,k]=grad('fun','gfun',x0)结果x=[-1.0000,1.5000]val=-1.2500k=33即迭代33次的到最优解x=[-1.0000,1.5000];最优值val=-1.2500。4、试用Newton法求解第3题。解一:计算目标函数的梯度和Hesse阵目标函数的梯度,其逆矩阵为计算。此题最优解,解二:除了第3题建立两个M文件外,还需建立Hesse矩阵的M文件利用matlab程序求解首先建立目标函数及其梯度函数的M文件functionf=fun(x)f=x(1)-x(2)+2*x(1)*x(1)+2*x(1)*x(2)+x(2)*x(2);functiong=gfun(x)g=[1+4*x(1)+2*x(2),-1+2*x(1)+2*x(2)];functionh=hess(x)g=[42;22];调用newton.m文件x0=[0,0];[x,val,k]=newton('fun','gfun','hess',x0)结果x=[-1.0000,1.5000]val=-1.2500k=15、用Fletcher—Reeves法求解问题其中,要求选取初始点。解一:,第一次迭代:令,即,第二次迭代:,,第三次迭代:……〔建议同学们自己做下去,注意判别〕解二:利用matlab程序求解首先建立目标函数及其梯度函数的M文件functionf=fun(x)f=x(1)^2+25*x(2)*x(2);functiong=gfun(x)g=[2*x(1),50*x(2)];调用frcg.m文件x0=[2,2]’;epsilon=1e-6;[x,val,k]=frcg('fun','gfun',x0,epsilon)结果x=1.0e-006*[0.2651,0.0088]val=7.2182e-014k=616、试用外点法〔二次罚函数方法〕求解非线性规划问题其中解:设计罚函数采用Matlab编程计算,结果x=[10];最优结果为1。〔调用waidianfa.m〕7、用内点法〔内点障碍罚函数法〕求解非线性规划问题:解:容易看出此问题最优解为x=[10];最优值为8.给出罚函数为令;从而当时,〔建议同学自己编程序计算〕8、用乘子法求解以下问题解:建立乘子法的增广目标函数:令:解上述关于x的二元一次方程组得到稳定点当乘子取2时,或发参数趋于无穷时,得到即最优解。〔建议同学自己编程序计算〕练习题四1、石油输送管道铺设最优方案的选择问题:考察网络图4-6,设A为出发地,F为目的地,B,C,D,E分别为四个必须建立油泵加压站的地区。图中的线段表示管道可铺设的位置,线段旁的数字表示铺设这些管线所需的费用。问如何铺设管道才能使总费用最小?图4-SEQ图4-\*ARABIC6解:第五阶段:E1—F4;E2—F3;第四阶段:D1—E1—F7;D2—E2—F5;D3—E1—F5;第三阶段:C1—D1—E1

—F12;C2—D2—E2—F10;C3—D2—E2—F8;C4—D3—E1—F9;第二阶段:B1—C2—D2—E2—F13;B2—C3—D2—E2—F15;第一阶段:A—B1—C2—D2—E2—F17;最优解:A—B1—C2—D2—E2—F最优值:172、用动态规划方法求解非线性规划解:,最优值为9。3、用动态规划方法求解非线性规划解:用顺序算法阶段:分成两个阶段,且阶段1、2分别对应。决策变量:状态变量:分别为第j阶段第一、第二约束条件可供分配的右段数值。由于,可解的,最优值为702.92。4、设四个城市之间的公路网如图4-7。两点连线旁的数字表示两地间的距离。使用迭代法求各地到城市4的最短路线及相应的最短距离。图4-SEQ图4-\*ARABIC7城市公路网解:城市1到城市4路线——1-3-4距离10;城市2到城市4路线——2-4距离8;城市3到城市4路线——3-4距离4。5、某公司打算在3个不同的地区设置4个销售点,根据市场部门估计,在不同地区设置不同数量的销售点每月可得到的利润如表4-19所示。试问在各地区如何设置销售点可使每月总利润最大。表4-SEQ表4-\*ARABIC19解:将问题分为3个阶段,k=1,2,3;决策变量xk表示分配给第k个地区的销售点数;状态变量为sk表示分配给第k个至第3个地区的销售点总数;状态转移方程:sk+1=sk-xk,其中s1=4;允许决策集合:Dk〔sk〕={xk|0≤xk≤sk}阶段指标函数:gk〔xk〕表示xk个销售点分配给第k个地区所获得的利润;最优指标函数fk〔sk〕表示将数量为sk的销售点分配给第k个至第3个地区所得到的最大利润,动态规划根本方程为:k=3时,k=2时,k=1时,,最优解为:x1*=2,x2*=1,x3*=1,f1(4)=47,即在第1个地区设置2个销售点,第2个地区设置1个销售点,第3个地区设置1个销售点,每月可获利润47。6、设某厂方案全年生产某种产品A。其四个季度的订货量分别为600公斤,700公斤,500公斤和1200公斤。生产产品A的生产费用与产品的平方成正比,系数为0.005。厂内有仓库可存放产品,存储费为每公斤每季度1元。求最正确的生产安排使年总本钱最小。解:四个季度为四个阶段,采用阶段编号与季度顺序一致。设sk为第k季初的库存量,那么边界条件为s1=s5=0设xk为第k季的生产量,设yk为第k季的订货量;sk,xk,yk都取实数,状态转移方程为sk+1=sk+xk-yk仍采用反向递推,但注意阶段编号是正向的目标函数为:第一步:(第四季度)总效果f4(s4,x4)=0.005x42+s4由边界条件有:s5=s4+x4–y4=0,解得:x4*=1200–s4将x4*代入f4(s4,x4)得:f4*(s4)=0.005(1200–s4)2+s4=7200–11s4+0.005s42第二步:(第三、四季度)总效果f3(s3,x3)=0.005x32+s3+f4*(s4)将s4=s3+x3–500代入f3(s3,x3)得:第三步:(第二、三、四季度)总效果f2(s2,x2)=0.005x22+s2+f3*(s3)将s3=s2+x2700代入f2(s2,x2)得:第四步:(第一、二、三、四季度)总效果f1(s1,x1)=0.005x12+s1+f2*(s2)将s2=s1+x1–600=x1–600代入f1(s1,x1)得:由此回溯:得最优生产–库存方案x1*=600,s2*=0;x2*=700,s3*=0;x3*=800,s4*=300;x4*=900。7、某种机器可在上下两种不同的负荷下进行生产。设机器在高负荷下生产的产量函数为g=8u1,其中u1为投入生产的机器数量,年完好率a=0.7;在低负荷下生产的产量函数为h=5y,其中y为投入生产的机器数量,年完好率为b=0.9。假定开始生产时完好机器的数量s1=1000。试问每年如何安排机器在高、低负荷下的生产,使在5年内生产的产品总产量最高。解:构造这个问题的动态规划模型:设阶段序数k表示年度。状态变量sk为第k年度初拥有的完好机器数量,同时也是第k−1年度末时的完好机器数量。决策变量uk为第k年度中分配高负荷下生产的机器数量,于是sk−uk为该年度中分配在低负荷下生产的机器数量。这里sk和uk均取连续变量,它们的非整数值可以这样理解,如sk=0.6,就表示一台机器在k年度中正常工作时间只占6/10;uk=0.3,就表示一台机器在该年度只有3/10的时间能在高负荷下工作。状态转移方程为:k段允许决策集合为:设为第k年度的产量,那么故指标函数为:令最优值函数fk(sk)表示由资源量sk出发,从第k年开始到第5年结束时所生产的产品的总产量最大值。因而有逆推关系式:从第5年度开始,向前逆推计算。当k=5时,有:因f5是u5的线性单调增函数,故得最大解u5*,相应的有:当k=4时,有:故得最大解,u4*=s4,相应的有依此类推,可求得因s1=1000,故:计算结果说明:最优策略为即前两年应把年初全部完好机器投入低负荷生产,后三年应把年初全部完好机器投入高负荷生产。这样所得的产量最高,其最高产量为23700台。在得到整个问题的最优指标函数值和最优策略后,还需反过来确定每年年初的状态,即从始端向终端递推计算出每年年初完好机器数。s1=1000台,于是可得:8、有一辆最大货运量为10t的卡车,用以装载3种货物,每种货物的单位重量及相应单位价值如表4-20所示。应如何装载可使总价值最大?表4-SEQ表4-\*ARABIC20货物编号i123单位重量〔t〕345单位价值ci456解:利用动态规划的逆序解法求此问题。状态转移方程为:该题是三阶段决策过程,故可假想存在第四个阶段,而,于是动态规划的根本方程为:计算最终结果为,最大价值为13。9、设有A,B,C三部机器串联生产某种产品,由于工艺技术问题,产品常出现次品。统计结果说明,机器A,B,C产生次品的概率分别为pA=30%,PB=40%,PC=20%,而产品必须经过三部机器顺序加工才能完成。为了降低产品的次品率,决定拨款5万元进行技术改造,以便最大限度地提高产品的成品率指标。现提出如下四种改良方案:方案1:不拨款,机器保持原状;方案2:加装监视设备,每部机器需款1万元;方案3:加装设备,每部机器需款2万元;方案4:同时加装监视及控制设备,每部机器需款3万元;采用各方案后,各部机器的次品率如表4-21。表4-SEQ表4-\*ARABIC21ABC不拨款30%40%20%拨款1万元20%30%10%拨款2万元10%20%10%拨款3万元5%10%6%问如何配置拨款才能使串联系统的可靠性最大?解:为三台机器分配改造拨款,设拨款顺序为A,B,C,阶段序号反向编号为k,即第一阶段计算给机器C拨款的效果。设sk为第k阶段剩余款,那么边界条件为s3=5;设xk为第k阶段的拨款额;状态转移方程为sk-1=sk-xk;目标函数为maxR=(1-PA)(1-PB)(1-PC)仍采用反向递推第一阶段:对机器C拨款的效果R1(s1,x1)=d1(s1,x1)R0(s0,x0)=d1(s1,x1)x1s10123x1*R1(s1,x1*)00.800.810.80.910.920.80.90.91,20.930.80.90.90.9430.9440.80.90.90.9430.9450.80.90.90.9430.94第二阶段:对机器B,C拨款的效果由于机器A最多只需3万元,故s22递推公式:R2(s2,x2)=d2(s2,x2)R1(s1,x1*)例:R2(3,2)=d2(3,2)R1(1,1)=(1-0.2)0.9=0.72得第二阶段最优决策表x1s1x1*R1(s1,x1*)000.8110.921,20.9330.94430.94530.94x2s20123x2*R2(s2,x2*)20.540.630.6420.6430.5640.630.720.722,30.7240.5640.6580.720.8130.8150.5640.6580.7520.8130.81第三阶段:对机器A,B,C拨款的效果边界条件:s3=5递推公式:R3(s3,x3)=d3(s3,x3)R2(s2,x2*)例:R3(5,3)=d3(5,3)R2(2,2)=(1-0.05)0.64=0.608得第三阶段最优决策表x2s2x2*R2(s2,x2*)220.6432,30.72430.81530.81s3x30123x3*R3(s3,x3*)50.5670.6480.6480.6081,20.648回溯:有多组最优解。I:x3=1,x2=3,x1=1,R3=0.80.90.9=0.648II:x3=2,x2=2,x1=1,R3=0.90.80.9=0.648III:x3=2,x2=3,x1=0,R3=0.90.90.8=0.648练习题五1、考察多目标规划问题其中,试画出个目标函数的图形,并求出,这里是的最优解集。解:2、用线性加权法中的法求解下述多目标规划问题。解:最优解为;最优解为;利用法得线性方程组:解得唯一加权系数原多目标规划加权后解得加权后的最优解为:,最优值为-1.23123、用线性加权求和法求解下述多目标规划问题,取。解:将问题转化为一个新的单目标规划问题。约束条件同上,该问题转化为线性规划问题,可用单纯形法求解,也可用Matlab命令求解〔求解过程略〕。解得加权后的最优解为:,最优值为-1.4。4、用平方和加权法求解多目标规划问题:其中,,。解:不难看出两个目标函数下界均为0,得平方和加权法后的新目标规划问题:利用matlab程序求解首先建立目标函数及其梯度函数的M文件functionf=fun(x)f=1/3*x(1)^2+2/3*x(2)*x(2);[x,fval]=fmincon(‘f’,[00],[1-1;11],[4;8],[],[],[00])解得最优解为:,最优值为0。5、用极小极大法和Matlab软件求解下述多目标规划问题。解:取评价函数为,再求Matlab软件求解:编制M文件functionf=mnmax(x)f(1)=(x(1)-3)^2+x(2)^2;f(2)=x(1)^2+(x(2)-2)^2设初值x0=[0;0];调用函数[x,fval]=fminimax(@mnmax,x0,[11],[2])结果:x=1.30000.7000fval=3.38003.3800可得;对应从而为原问题的解。附习题中用过的Matlab程序1、bbmethodfunction[x,y]=bbmethod(f,G,h,Geq,heq,lb,ub,x,id,options)%整数线性规划分支定界法,可求解纯整数规划和混合整数规划。%y=minf’*xs.t.G*x<=hGeq*x=heqx为全整数或混合整数列向量%用法%[x,y]=bbmethod(f,G,h,Geq,heq,lb,ub,x,id,options)%参数说明%lb:解的下界列向量〔Default:-int〕%ub:解的上界列向量〔Default:int〕%x:迭代初值列向量%id:整数变量指标列向量,1-整数,0-实数〔Default:1〕globalupperoptcx0AbAeqbeqIDoptions;ifnargin<10,options=optimset({});options.Display='off';options.LargeScale='off';endifnargin<9,id=ones(size(f));endifnargin<8,x=[];endifnargin<7|isempty(ub),ub=inf*ones(size(f));endifnargin<6|isempty(lb),lb=zeros(size(f));endifnargin<5,heq=[];endifnargin<4,Geq=[];endupper=inf;c=f;A=G;b=h;Aeq=Geq;beq=heq;x0=x;ID=id;ftemp=IntLP(lb(:),ub(:));x=opt;y=upper;%下面是子函数functionftemp=IntLP(vlb,vub)globalupperoptcx0AbAeqbeqIDoptions;[x,ftemp,how]=linprog(c,A,b,Aeq,beq,vlb,vub,x0,options);ifhow<=0return;end;ifftemp-upper>0.00005%inordertoavoiderrorreturn;end;ifmax(abs(x.*ID-round(x.*ID)))<0.00005ifupper-ftemp>0.00005%inordertoavoiderroropt=x';upper=ftemp;return;elseopt=[opt;x'];return;end;end;notintx=find(abs(x-round(x))>=0.00005);%inordertoavoiderrorintx=fix(x);tempvlb=vlb;tempvub=vub;ifvub(notintx(1,1),1)>=intx(notintx(1,1),1)+1;tempvlb(notintx(1,1),1)=intx(notintx(1,1),1)+1;ftemp=IntLP(tempvlb,vub);end;ifvlb(notintx(1,1),1)<=intx(notintx(1,1),1)tempvub(notintx(1,1),1)=intx(notintx(1,1),1);ftemp=IntLP(vlb,tempvub);end;2、golds.mfunction[s,phis,k,G,E]=golds(phi,a,b,delta,epsilon)%功能:0.618法精确线搜索%输入:phi是目标函数,a,b是搜索区间的两个端点%delta,epsilon分别是自变量和函数值的容许误差%输出:s,phis分别是近似极小点和极小值,G是nx4矩阵,%其第k行分别是a,p,q,b的第k次迭代值[ak,pk,qk,bk],%E=[ds,dphi],分别是s和phis的误差限.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%t=(sqrt(5)-1)/2;h=b-a;phia=feval(phi,a);phib=feval(phi,b);p=a+(1-t)*h;q=a+t*h;phip=feval(phi,p);phiq=feval(phi,q);k=1;G(k,:)=[a,p,q,b];while(abs(phib-phia)>epsilon)|(h>delta)if(phip<phiq)b=q;phib=phiq;q=p;phiq=phip;h=b-a;p=a+(1-t)*h;phip=feval(phi,p);elsea=p;phia=phip;p=q;phip=phiq;h=b-a;q=a+t*h;phiq=feval(phi,q);endk=k+1;G(k,:)=[a,p,q,b];endds=abs(b-a);dphi=abs(phib-phia);if(phip<=phiq)s=p;phis=phip;elses=q;phis=phiq;endE=[ds,dphi];3、grad.mfunction[x,val,k]=grad(fun,gfun,x0)%功能:用最速下降法求解无约束问题:minf(x)%输入:x0是初始点,fun,gfun分别是目标函数和梯度%输出:x,val分别是近似最优点和最优值,k是迭代次数.maxk=5000;%最大迭代次数rho=0.5;sigma=0.4;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;endm=m+1;endx0=x0+rho^mk*d;k=k+1;endx=x0;val=feval(fun,x0);4、newton.mfunction[x,val,k]=newton(fun,gfun,Hess,x0)%功能:用尼牛顿法求解无约束问题:minf(x)%输入:x0是初始点,fun,gfun,Hess分别是求%目标函数,梯度,Hesse阵的函数%输出:x,val分别是近似最优点和最优值,k是迭代次数.maxk=100;%给出最大迭代次数sigma=0.4;k=0;epsilon=1e-5;while(k<maxk)gk=feval(gfun,x0);%计算梯度Gk=feval(Hess,x0);%计算Hesse阵dk=-Gk\gk';%解方程组Gk*dk=-gk,计算搜索方向if(norm(gk)<epsilon),break;end%检验终止准那么x0=x0+dk';k=k+1;endx=x0;val=feval(fun,x);5、frcg.mfunction[x,val,k]=frcg(fun,gfun,x0)%功能:用FR共轭梯度法求解无约束问题:minf(x)%输入:x0是初始点,fun,gfun分别是目标函数和梯度%输出:x,val分别是近似最优点和最优值,k是迭代次数.maxk=5000;%最大迭代次数rho=0.6;sigma=0.4;k=0;epsilon=1e-6;n=length(x0);while(k<maxk)g=feval(gfun,x0);%计算梯度itern=k-(n+1)*floor(k/(n+1));itern=itern+1;%计算搜索方向if(itern==1)d=-g;elsebeta=(g'*g)/(g0'*g0)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论