版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PAGEPAGE27(一)一維搜索方法1.1題目:1.2最優(yōu)解:1.3采用的算法及其算法的基本思想:首先采用進退法確定函數(shù)極值點所在的搜索區(qū)間[a,b],然后采用牛頓法求出極值。進退法的基本思想:按照一定的規(guī)則試算若干個點,比較其函數(shù)值的大小,直至找到函數(shù)值按“高-低-高”變化的單峰區(qū)間。黃金分割法的基本思想:通過不斷的縮短單峰區(qū)間的長度來搜索極小點的一種有效方法。按()縮小比較大小確定取舍區(qū)間。程序框圖:進退法和黃金分割法流程圖如下:圖1進退法流程圖圖2黃金分割法程序框圖具體程序如下:共3個M文件,文件名分別為:F.m;JINTUI.m;FGOLDEN.mF.m具體程序:%定義f(x)函數(shù)的表達式f(x)=t^2-10*t+36functiony=F(t)y=t^2-10*t+36;JINTUI.m具體程序:function[t,minF]=FGOLDEN(precision,a0,h)[a,b]=JINTUI(a0,h);A=a;B=b;n=1;while0.618^(n-1)>=precisionC=A+0.312*(B-A);D=A+0.618*(B-A);ifC<DifF(C)<F(D)B=D;elseA=C;endelseifF(C)<F(D)A=C;elseB=D;endendn=n+1;endt=A;minF=F(A);FGOLDEN.m具體程序如下:function[x1,x2]=JINTUI(a0,h)a=a0;b=a0+h;while1ifF(a)<F(b)h=-h;a=a+h;b=a-h;ifF(b)<F(b-h)&F(b)<F(a)break;endelsea=b;b=a+h;ifF(a)<F(b)&F(a)<F(a-h)break;endendendx1=a;x2=b;1.6輸出結果:2.1題目:2.2最優(yōu)解:2.3采用的算法及其算法的基本思想:首先采用進退法確定函數(shù)極值點所在的搜索區(qū)間[a,b],然后采用牛頓法求出極值。進退法的基本思想:按照一定的規(guī)則試算若干個點,比較其函數(shù)值的大小,直至找到函數(shù)值按“高-低-高”變化的單峰區(qū)間。黃金分割法的基本思想:通過不斷的縮短單峰區(qū)間的長度來搜索極小點的一種有效方法。按()縮小比較大小確定取舍區(qū)間。2.4程序框圖:進退法和黃金分割法流程圖如下:圖1進退法流程圖圖2黃金分割法程序框圖2.5具體程序如下:共3個M文件,文件名分別為:F12.m;JINTUI12.m;FGOLDEN12.mF12.m具體程序:%定義f(x)函數(shù)的表達式f(x)=t^4-5*t^3+4*t^2-6*t+60functiony12=F12(t)y12=t^4-5*(t^3)+4*(t^2)-6*t+60;JINTUI12.m具體程序如下:%用進退法找到合適的初始區(qū)間function[x1,x2]=JINTUI12(a0,h)a=a0;b=a0+h;while1ifF12(a)<F12(b)h=-h;a=a+h;b=a-h;ifF12(b)<F12(b-h)&F12(b)<F12(a)break;endelsea=b;b=a+h;ifF12(a)<F12(b)&F12(a)<F12(a-h)break;endendendx1=a;x2=b;FGOLDEN12具體程序如下:%定義黃金分割法函數(shù)模塊function[t,minF12]=FGOLDEN12(precision,a0,h)%初始區(qū)間[a,b],精度precision,為區(qū)間的多少分之一%a0為初始區(qū)間,h為步長[a,b]=JINTUI12(a0,h);A=a;B=b;n=1;while0.618^(n-1)>=precisionC=A+0.312*(B-A);D=A+0.618*(B-A);%以上黃金分割法賦值ifC<DifF12(C)<F12(D)B=D;elseA=C;end%判斷1,取區(qū)間AD,將D點值賦給B或是取區(qū)間CBelseifF12(C)<F12(D)A=C;elseB=D;endend%判斷2n=n+1;%循環(huán)加1endt=A;minF12=F12(A);2.6計算運行結果如下:3.1題目:3.2最優(yōu)解:3.3采用的算法及其算法的基本思想:首先采用進退法確定函數(shù)極值點所在的搜索區(qū)間[a,b],然后采用牛頓法求出極值。進退法的基本思想:按照一定的規(guī)則試算若干個點,比較其函數(shù)值的大小,直至找到函數(shù)值按“高-低-高”變化的單峰區(qū)間。黃金分割法的基本思想:通過不斷的縮短單峰區(qū)間的長度來搜索極小點的一種有效方法。按()縮小比較大小確定取舍區(qū)間。3.4程序框圖:進退法和黃金分割法流程圖如下:圖3.1進退法流程圖圖3.2黃金分割法程序框圖3.5具體程序如下:共3個M文件,文件名分別為:F13.m;JINTUI13.m;FGOLDEN13.mF13.m:%定義f(x)函數(shù)的表達式f(x)=(t+1)(t-2)^2functiony13=F13(t)y13=t^3-3*t^2+4;JINTUI13.m:%用進退法找到合適的初始區(qū)間function[x1,x2]=JINTUI13(a0,h)a=a0;b=a0+h;while1ifF13(a)<F13(b)h=-h;a=a+h;b=a-h;ifF13(b)<F13(b-h)&F13(b)<F13(a)break;endelsea=b;b=a+h;ifF13(a)<F13(b)&F13(a)<F13(a-h)break;endendendx1=a;x2=b;FGOLDEN13.m%定義黃金分割法函數(shù)模塊function[t,minF13]=FGOLDEN13(precision,a0,h)%初始區(qū)間[a,b],精度precision,為區(qū)間的多少分之一%a0為初始區(qū)間,h為步長[a,b]=JINTUI13(a0,h);A=a;B=b;n=1;while0.618^(n-1)>=precisionC=A+0.312*(B-A);D=A+0.618*(B-A);%以上黃金分割法賦值ifC<DifF13(C)<F13(D)B=D;elseA=C;end%判斷1,取區(qū)間AD,將D點值賦給B或是取區(qū)間CBelseifF13(C)<F13(D)A=C;elseB=D;endend%判斷2n=n+1;%循環(huán)加1endt=A;minF13=F13(2);3.6計算運行結果如下:二無約束優(yōu)化問題1.1題目:1.2最優(yōu)解:1.3采用的算法及其算法的基本思想:將f(x)在x(k)點作泰勒展開,取二次函數(shù)式Φ(x)作為近似函數(shù),以Φ(x)的極小值點作為f(x)的近似極小值點。求二次函數(shù)的極值1.4程序框圖:牛頓法程圖如下:程序:共一個main21.m文件:main21.m具體程序如下:clc;clearall;symsx1x2tpmaxnprecision;%定義變量f21=4*x1^2+x2^2-40*x1-12*x2+136;%定義函數(shù)fx1=diff(f21,x1);%對f求x1偏導求的一階導數(shù);diff(函數(shù),n),求的n階導數(shù)(n是具體整數(shù));%diff(函數(shù),變量名),求對的偏導數(shù);diff(函數(shù),變量名,n)fx2=diff(f21,x2);%對f求x2偏導p=0;g=1;disp('用梯度法求二元二次目標函數(shù)f(X)=4*x1^2+x2^2-40*x1-12*x2+136的最優(yōu)解');fori=1:5%fori=1:5if(p==0)%if(p==0)x1=input('Pleaseentertheinitialstartingpointx1:');x2=input('Pleaseentertheinitialstartingpointx2:');maxn=input('Pleaseenterthemaxmumnumberofinterationsmaxn:');precision=input('Pleaseentertheminimumofthesearchingdirectionprecision:');g=input('Outputtheresultofeachinteration,ifyouwantEnter1,ornot:');fora=1:maxn%fora=1:2:8,則每次取值為1,3,5,7.其中2是步長%但步長為1時可省略即原式為forn=1:1:100f0=subs(f21);%subs(函數(shù)名)將函數(shù)里的變量用已知量代換對f中的變量帶入已知量f1=subs(fx1);%subs(函數(shù)名)將函數(shù)里的變量用已知量代換對fx1中的變量帶入已知量f2=subs(fx2);%subs(函數(shù)名)將函數(shù)里的變量用已知量代換對fx2中的變量帶入已知量if(double(sqrt(f1^2+f2^2))<=precision)%計算梯度模值進行比較%以下為輸出函數(shù)disp('*************************************************************************');disp('Theresult:');disp('Thetotalnumberofinterationsa:');disp('Thevalueofextremumx1:');vpa(x1,5)%vpa函數(shù)來實現(xiàn)數(shù)值精確到小數(shù)點后某一位vpa會根據(jù)精度要求去掉末尾的數(shù)位%或者補0vpa(x1,7)%vpa的結果是符號數(shù)值,可以用于初等運算,不可用于關系運算以小數(shù)形式表示disp('Thevalueofextremumx2:');vpa(x2,5)disp('Thefunctionofextremumvalue:');vpa(f0)p=1;break;elseFF=F21(x1-t*f1,x2-t*f2);%最優(yōu)解為tFFt=diff(FF,t);tt=solve(FFt,'t');%solve命令主要是用來求解代數(shù)方程(即多項式)的解即求解滿足此中默認FFt=0;x1=x1-tt*f1;x2=x2-tt*f2;if(g==1)disp('Thenumberofinterationsa:');disp('Thevalueofx1:');x1=vpa(x1,5)%vpa函數(shù)來實現(xiàn)數(shù)值精確到小數(shù)點后某一位vpa會根據(jù)精度要求去掉末尾的數(shù)位或者補0vpa(x1,5)%vpa的結果是符號數(shù)值,可以用于初等運算,不可用于關系運算以小數(shù)形式表示disp('Thevalueofx2:');x2=vpa(x2,5);disp('Thevalueoffunctionf0:');f0=vpa(f0,5)disp('*************************************************************************');endend%對if進行結束end%對for進行結束if(p==0)disp('PLEASETRYAGAIN');end%if(p==0)end%if(p==0)頭一個end%fori=1:5計算輸出結果:2.1題目:2.2最優(yōu)解:2.3采用的算法及其算法的基本思想:將f(x)在x(k)點作泰勒展開,取二次函數(shù)式Φ(x)作為近似函數(shù),以Φ(x)的極小值點作為f(x)的近似極小值點。求二次函數(shù)的極值2.4程序框圖:(牛頓法程圖如下)2.5具體程序:Main22具體程序如下:%用牛頓法求目標函數(shù)f(x)=(x1^2+x2-11)^2+(x1+x2^2-7)^2的最優(yōu)解clc;symsx1x2precision;f=(x1^2+x2-11)^2+(x1+x2^2-7)^2;v=[x1x2];df=jacobian(f,v);df=df.';H=jacobian(df,v);disp('**********************************************************');disp('用牛頓法求目標函數(shù)f(x)=(x1^2+x2-11)^2+(x1+x2^2-7)^2的最優(yōu)解');disp('**********************************************************');disp('請輸入初始位置點以及精度要求');fprintf('\n');x1=input('選取的初始點坐標點x1:');x2=input('選取的初始點坐標點x2:');precision=input('計算所要求迭代精度為:');x0=[x1,x2]';g0=subs(df,v,x0);H0=subs(H,v,x0);H0=inv(H0);k=0;s=-H0*g0;while(subs(sqrt(s(1,1)^2+s(2,1)^2))>precision)s=-H0*g0;x0=x0+s;g0=subs(df,v,x0);H0=subs(H,v,x0);H0=inv(H0);k=k+1;enddisp('');disp('計算結果如下:');fprintf('迭代的總次數(shù):\nk=%d\n',k);fprintf('最優(yōu)點坐標:\nx1=%3.4f\n',x0(1));fprintf('最優(yōu)點坐標:\nx2=%3.4f\n',x0(2))f=subs(f,v,x0);fprintf('函數(shù)的極值:\nf=%3.4f\n',f);disp('*************************************************');disp('*************************************************');2.6計算和輸出結果:3.1題目:3.2最優(yōu)解:3.3采用的算法及其算法的基本思想:將f(x)在x(k)點作泰勒展開,取二次函數(shù)式Φ(x)作為近似函數(shù),以Φ(x)的極小值點作為f(x)的近似極小值點。求二次函數(shù)的極值3.4程序框圖:3.5程序:共一個M文件:main23.m:%用牛頓法求目標函數(shù)f(x)=(x1^2+10*x2)^2+5*(x3-x4^2)^2+(x2-2*x3)^2+10*(x1-x4)^4最優(yōu)解clc;symsx1x2x3x4precision;f=(x1^2+10*x2)^2+5*(x3-x4^2)^2+(x2-2*x3)^2+10*(x1-x4)^4;%目標函數(shù)v=[x1x2x3x4];%變量向量df=jacobian(f,v);%梯度df=df.';%非共軛轉置H=jacobian(df,v);%海森矩陣disp('************************************************************************');disp('用牛頓法求目標函數(shù)f(x)=(x1^2+10*x2)^2+5*(x3-x4^2)^2+(x2-2*x3)^2+10*(x1-x4)^4的最優(yōu)解');disp('***********************************************************************');disp('請輸入初始位置點以及精度要求');fprintf('\n');x1=input('選取的初始點坐標點x1:');x2=input('選取的初始點坐標點x2:');x3=input('選取的初始點坐標點x3:');x4=input('選取的初始點坐標點x4:');precision=input('計算所要求迭代精度要求:');x0=[x1,x2,x3,x4]';g0=subs(df,v,x0);H0=subs(H,v,x0);H0=inv(H0);%海森矩陣的逆k=0;s=-H0*g0;while(subs(sqrt(s(1,1)^2+s(2,1)^2)+s(3,1)^2+s(4,1)^2)>precision)s=-H0*g0;x0=x0+s;g0=subs(df,v,x0);%求梯度的值H0=subs(H,v,x0);%求海森矩陣的值H0=inv(H0);k=k+1;enddisp('');disp('計算結果如下:');fprintf('迭代的總次數(shù):\nk=%d\n',k);fprintf('最優(yōu)點坐標:\nx1=%3.4f\n',x0(1));fprintf('最優(yōu)點坐標:\nx2=%3.4f\n',x0(2));fprintf('最優(yōu)點坐標:\nx3=%3.4f\n',x0(3));fprintf('最優(yōu)點坐標:\nx4=%3.4f\n',x0(4));f=subs(f,v,x0);fprintf('函數(shù)的極值:\nf=%3.4f\n',f);disp('*************************************************');disp('*************************************************');3.6計算結果如下:三約束優(yōu)化問題1.1題目:1.2最優(yōu)解:1.3采用的算法及其算法的基本思想:采用的為外點法來進行計算。其基本思想:外點法是從可行域的外部構造一個點序列去逼近原約束問題的最優(yōu)解。構造函數(shù)進行計算。1.4程序框圖:1.5程序:共2個M文件,分別為:main31.m和fdd31.m.main31.m具體如下:%用外點法求多維有約束目標函數(shù)f(x)=(x1-2)^2+(x2-1)^2極值clc;k=0;M=1;c=10;symsx1x2precision1precision2a1av=[x1x2];%變量向量f=(x1-2)^2+(x2-1)^2;%目標函數(shù)g1=-x1^2-x2;g2=x1+x2-2;disp('****************************************************');disp('用外點法求多維有約束目標函數(shù)f(x)=(x1-2)^2+(x2-1)^2極值');disp('****************************************************');disp('請輸入初始位置點以及精度要求');fprintf('\n');a1=input('選取的初始點坐標點a1:');a2=input('選取的初始點坐標點a2:');precision1=input('計算所要求迭代精度要求precision1:');precision2=input('計算所要求迭代精度要求precision2:');X0=[a1,a2]';while(k<100)q=f+M*((g1)^2+(g2)^2);X1=fdd31(q,x1,x2,X0);norm=subs(sqrt((X1(1)-X0(1))^2+(X1(2)-X0(2))^2));ff0=subs(subs(q,v,X0));ff1=subs(subs(q,v,X1));if(norm<=precision1)&(abs((ff0-ff1)/ff0)<=precision2)break;endX0=X1;M=c*M;k=k+1;enddisp('');disp('計算結果如下:');fprintf('迭代的總次數(shù):\nk=%d\n',k);fprintf('最優(yōu)點坐標:\nx1=%3.4f\n',X0(1));fprintf('最優(yōu)點坐標:\nx2=%3.4f\n',X0(2));f=subs(f,v,X0);fprintf('函數(shù)的極值:\nf=%3.4f\n',f);disp('********************************************************************');disp('********************************************************************');fdd31.m具體如下:functionsc=fdd31(f,x1,x2,X0)symsv;v=[x1,x2];%變量向量df=jacobian(f,v);%梯度df=df.';G=jacobian(df,v);%海森矩陣eps=0.000001;%精度g1=subs(df,v,X0);G1=subs(G,v,X0);G1=inv(G1);%海森矩陣的逆k=0;s=-G1*g1;s1=subs(sqrt(s(1)^2+s(2)^2));%求初始梯度值while(s1>eps)s=-G1*g1;X0=X0+s;g1=subs(df,v,X0);%求梯度的值G1=subs(G,v,X0);%求海森矩陣的值G1=inv(G1);s1=subs(sqrt(s(1)^2+s(2)^2));k=k+1;end;sc=X0;1.6運算結果:2.1題目:2.2最優(yōu)解:2.3采用的算法及其算法的基本思想:采用的為外點法來進行計算。其基本思想:外點法是從可行域的外部構造一個點序列去逼近原約束問題的最優(yōu)解。構造函數(shù)進行計算。2.4程序框圖:1。.5程序:2.5程序共2個M文件,分別為:main32.m和fdd32.m.Main32.m具體程序:%用外點法求多維有約束目標函數(shù)第二大題第二小題f(x)=(x2^3*((x1-3)^2-9))/(27*sqrt(3))極值clc;k=0;M=1;c=8;symsx1x2precision1precision2a1av=[x1x2];%變量向量f=(x2^3*((x1-3)^2-9))/(27*sqrt(3));%目標函數(shù)g1=x2-x1/sqrt(3);g2=-x1+x2/sqrt(3);g3=x1+x2/sqrt(3)-6;g4=-x1;g5=-x2;h1=x1^2+x2^2+x3^2-25;h2=8*x1+14*x2+7*x3-56;disp('*******************************************************************');disp('用外點法求多維有約束目標函數(shù)f(x)=(x2^3*((x1-3)^2-9))/(27*sqrt(3))極值');disp('*******************************************************************');disp('請輸入初始位置點以及精度要求');fprintf('\n');a1=input('選取的初始點坐標點a1:');a2=input('選取的初始點坐標點a2:');precision1=input('計算所要求迭代精度要求precision1:');precision2=input('計算所要求迭代精度要求precision2:');X0=[a1,a2]';while(k<100)q=f+M*((g1)^2+(g2)^2+(g3)^2+(g4)^2+(g5)^2);X1=fdd32(q,x1,x2,X0);norm=subs(sqrt((X1(1)-X0(1))^2+(X1(2)-X0(2))^2));ff0=subs(subs(q,v,X0));ff1=subs(subs(q,v,X1));if(norm<=precision1)&(abs((ff0-ff1)/ff0)<=precision2)break;endX0=X1;M=c*M;k=k+1;enddisp('');disp('計算結果如下:');fprintf('迭代的總次數(shù):\nk=%d\n',k);fprintf('最優(yōu)點坐標:\nx1=%3.4f\n',X0(1));fprintf('最優(yōu)點坐標:\nx2=%3.4f\n',X0(2));f=subs(f,v,X0);fprintf('函數(shù)的極值:\nf=%3.4f\n',f);disp('********************************************************************');disp('********************************************************************');fdd32.m的程序具體為:functionsc=fdd32(f,x1,x2,X0)symsv;v=[x1,x2];%變量向量df=jacobian(f,v);%梯度df=df.';%非共軛轉置G=jacobian(df,v);%海森矩陣eps=0.000001;%精度g1=subs(df,v,X0);G1=subs(G,v,X0);G1=inv(G1);%海森矩陣的逆k=0;s=-G1*g1;s1=subs(sqrt(s(1)^2+s(2)^2));%求初始梯度值while(s1>eps)s=-G1*g1;X0=X0+s;g1=subs(df,v,X0);%求梯度的值G1=subs(G,v,X0);%求海森矩陣的值G1=inv(G1);s1=subs(sqrt(s(1)^2+s(2)^2));k=k+1;end;sc=X0;2.6運算結果如下:3.1題目:3.2最優(yōu)解:3.3采用的算法及其算法的基本思想:采用的為外點法來進行計算。其基本思想:外點法是從可行域的外部構造一個點序列去逼近原約束問題的最優(yōu)解。構造函數(shù)進行計算。3.4程序框圖:3.5程序共2個M文件,分別為:main33.m和fdd33.m.main33.m具體程序:%用外點法求多維有約束目標函數(shù)f(x)=1000-x1^2-2*x2^2-x3^2-x1*x2-x1*x3極值clc;k=0;M=1;c=8;symsx1x2x3precision1precision2a1av=[x1x2x3];f=1000-x1^2-2*x2^2-x3^2-x1*x2-x1*x3;g1=-x1;g2=-x2;g3=-x3;h1=x1^2+x2^2+x3^2-25;h2=8*x1+14*x2+7*x3-56;disp('********************************************************************');disp('用外點法求多維有約束目標函數(shù)f(x)=1000-x1^2-2*x2^2-x3^2-x1*x2-x1*x3極值');disp('********************************************************************');disp('請輸入初始位置點以及精度要求:');fprintf('\n'
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學年高中地理 第二章 區(qū)域生態(tài)環(huán)境建設 第1節(jié) 荒漠化的防治-以我國西北地區(qū)為例教學實錄 新人教版必修3
- 客服工作總結(集錦15篇)
- 2021學生讀弟子規(guī)心得體會
- JCT2550-2019泡沫混凝土自保溫砌塊
- 初中的我作文匯編5篇
- 2024年度智能倉儲系統(tǒng)施工委托合同3篇
- 鋼貿金融學知識之托盤業(yè)務
- 2024年版基礎設施建設項目土地征用協(xié)議示例版B版
- 公司個人原因辭職報告合集6篇
- 2024-2025年高中化學 專題1 第2單元 第3課時 電解池的工作原理及應用教學實錄 蘇教版選修4
- 揚州育才小學2023-2024六年級數(shù)學上冊期末復習試卷(一)及答案
- 函數(shù)的單調性說課課件-2023-2024學年高一上學期數(shù)學人教A版(2019)必修第一冊
- 浙江省溫州市2022-2023學年五年級上學期語文期末試卷(含答案)3
- 軟件系統(tǒng)實施與質量保障方案
- UV激光切割機市場需求分析報告
- 裝修工程竣工驗收報告模板模板
- 籃球館受傷免責協(xié)議
- 神經生物學復習知識點
- 高一班主任上學期工作總結
- 信息經濟學重點難點
- 2023-2024學年貴州省貴陽市南明區(qū)四年級數(shù)學第一學期期末含答案
評論
0/150
提交評論