的最速下降算法為:Opt_Steepest_第1頁
的最速下降算法為:Opt_Steepest_第2頁
的最速下降算法為:Opt_Steepest_第3頁
的最速下降算法為:Opt_Steepest_第4頁
的最速下降算法為:Opt_Steepest_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、CENTRAL SOUTH UNIVERSITY MATLAB程序設(shè)計實踐題 目 MATLAB程序設(shè)計實踐學(xué)生姓名 學(xué) 號 0103100132 指導(dǎo)教師 學(xué) 院 材料科學(xué)與工程學(xué)院 專 業(yè) 完成時間 2013年3月24日 第1題算法說明:原理函數(shù)的負(fù)梯度表示如下:搜索步長可調(diào)整,通常記為(第k次迭代中的步長)。該算法利用一維的線性搜索方法,如二次逼近法,沿著負(fù)梯度方向不斷搜索函數(shù)的較小值,從而找出最優(yōu)解。步驟最速下降法的基本求解流程如下。1:迭代次數(shù)初始化為k=0,求出初始點x0的函數(shù)值f0=f(x0)。2:迭代次數(shù)加1,即k=k+1,用一維線性搜索方法確定沿負(fù)梯度方向-gk-1的步長k-1

2、,其中k-1=ArgMinf(xk-1-gk-1/|gk-1|)。3:沿著負(fù)梯度的方向?qū)ふ蚁乱粋€接近最小值的點,其中步長為k-1,得下一點的坐標(biāo)為:xk=xk-1-k-1gk-1/|gk-1|。4:如果xk=xk-1,且f(xk)f(xk-1),那么就認(rèn)為xk為所求的最小值點,并結(jié)束循環(huán);否則,跳到步驟2。流程圖:-g(x)=-f(x)給定,ek=0開始。:minf()=結(jié)束=ArgMinaf()k=k+1是否源程序代碼:%在MATLAB中編程實現(xiàn)的最速下降算法為:Opt_Steepest。功能:最速下降算法求無約束最優(yōu)化解。調(diào)用格式:xo,fo=Opt_Steepest(f,grad,x0,

3、TolX,TolFun,dist0,MaxIter)。其中,f為函數(shù)名;grad為梯度函數(shù);x0為搜索初始值;TolX為最優(yōu)值點間的誤差閥值;TolFun為函數(shù)的誤差閥值;dist0為初始步長;MaxIter為最大迭代次數(shù);xo為最優(yōu)化點值;fo為函數(shù)在點xo處的函數(shù)值。function xo,fo=Opt_Steepest(f,grad,x0,TolX,TolFun,dist0,MaxIter)%最速下降法求最優(yōu)化解%f為函數(shù)名;%grad為梯度函數(shù);%x0為搜索初始值;%TolX為最優(yōu)值點間的誤差閥值;%TolFun為函數(shù)的誤差閥值;%dist0為初始步長;%MaxIter為最大迭代次數(shù);

4、%xo為最優(yōu)化點值;%fo為函數(shù)在點xo處的函數(shù)值。 %判斷輸入的變量數(shù),設(shè)定一些變量為默認(rèn)值if nargin 7 MaxIter = 100; %最大迭代次數(shù)默認(rèn)為100endif nargin 6 dist0 = 10;endif nargin fx1+TolFun & fx1 fx1=kmax1 warning=warning+1; %無法確定最優(yōu)步長 else warning = 0; end if warning=2|(norm(x-x0)TolX&abs(fx-fx0)TolFun) break; end x0=x; fx0=fx;endxo=x;fo=fx;if k=MaxIt

5、er fprintf(Just best in %d iterations,MaxIter);end例子流程圖:開始建立目標(biāo)函數(shù),目標(biāo)函數(shù)梯度函數(shù)。定義x0搜索初始值、TolX最優(yōu)值點間的誤差閥值、TolFun函數(shù)的誤差閥值、dist0初始步長、MaxIter最大迭代次數(shù)。代入function函數(shù)Opt_Steepest,得到xo最優(yōu)化點值、fo函數(shù)在點xo處的函數(shù)值。%ex1204.m用最速下降法求最優(yōu)化解f1004=inline(x(1)*(x(1)-5-x(2)+x(2)*(x(2)-4),x); %目標(biāo)函數(shù)grad=inline(2*x(1)-5-x(2),-x(1)+2*x(2)-4

6、,x); %目標(biāo)函數(shù)的梯度函數(shù)x0=1 4;TolX=1e-4;TolFun=1e-9;MaxIter=100;dist0=1;xo,fo=Opt_Steepest(f1004,grad,x0,TolX,TolFun,dist0,MaxIter)結(jié)果:第2題(1)小題簡支梁載荷情況如圖所示。求其彎矩、轉(zhuǎn)角和撓度。已知L2m, q=1000N/m, =900Nm, E=200*N/m, I=2*。解題思路:首先對簡支梁進行受力分析,受力分析圖(如下圖2-1)所示:圖2-1從材料力學(xué)的知識可知道,由彎矩求轉(zhuǎn)角要經(jīng)過一次不定積分,而由轉(zhuǎn)角求撓度又要經(jīng)過一次不定積分,通常這是很麻煩而且容易出錯的,而在

7、MATLAB中,可用cumsum函數(shù)或cumtrapz函數(shù)作近似的不定積分,只要x取得足夠密,其結(jié)果將相當(dāng)準(zhǔn)確,而程序非常簡單。由平衡方程可求出支撐反力和: 故各段彎矩方程為: 對M/EI作積分,得轉(zhuǎn)角一次積分,得到撓度Y,每次積分都要出現(xiàn)一個待定積分常數(shù):此處設(shè)。此處設(shè)。兩個待定積分常數(shù)和可由邊界條件Y(0)=0及Y(L)=0確定:于是可得:代入,即可求得各段彎矩,轉(zhuǎn)角,撓度。源程序:L=2;q=1000;M0=900;E=200e9;I=2e-6; %輸入已知參數(shù)Nb=(q*L2/8+M0)/L;Na=q*L/2-Nb; %求支反力x=linspace(0,L,101);dx=L/100;

8、 %linspace是線性空間向量M1=Na*x(1:51)-q*x(1:51).2/2; %分三段用數(shù)組列出M數(shù)組M2=Nb*(L-x(52:76)-M0;M3=Nb*(L-x(77:101);M=M1,M2,M3; %寫出完整的M數(shù)組A0=cumtrapz(M)*dx/(E*I); %由M積分求轉(zhuǎn)角AY0=cumtrapz(A0)*dx; %由轉(zhuǎn)角積分求撓度YC=0,1;L,1-Y0(1);-Y0(101); %由邊界條件求積分常數(shù)Ca=C(1),Cy=C(2),A=A0+Ca;Y=Y0+Ca*x+Cy; %A為轉(zhuǎn)角,Y為撓度,求出轉(zhuǎn)角和撓度的完整數(shù)值subplot(3,1,1),plot

9、(x,M),grid %繪制彎矩圖形subplot(3,1,2),plot(x,A),grid %繪制轉(zhuǎn)角圖形subplot(3,1,3),plot(x,Y),grid %繪制撓度圖形運行結(jié)果:開始流程圖輸入已知參數(shù)L,q,M0,E,I求支反力Nb,Na使x=linspace(0,L,101),dx=L/100,劃分x為空間線性向量分三段用數(shù)組列出M數(shù)組,寫出完整的M數(shù)組M=M1,M2,M3由M積分求轉(zhuǎn)角A,由轉(zhuǎn)角積分求撓度Y (用cumtrapz積分),由邊界條件求積分常數(shù)求出轉(zhuǎn)角和撓度的完整數(shù)值A(chǔ)=A0+Ca;Y=Y0+Ca*x+Cy;分別繪制彎矩,轉(zhuǎn)角,撓度的圖形輸出積分常數(shù)Ca,Cy用

10、subplot分別繪制彎矩,轉(zhuǎn)角,撓度的圖形并輸出結(jié)束第3題流程圖:x=0:15:90; x0=0:15:75; y1=0 0.2588 0.5000 0.7071 0.8660 0.9659 1.0000; y2=0 0.2679 0.5774 1.0000 1.7320 3.7320; x3=0:90;x4=0:75;開始使用函數(shù)spline(x,y,x0) 得到結(jié)果使用函數(shù)polyfit(x,y,5)得到結(jié)果p,構(gòu)建函數(shù);并繪制函數(shù)曲線。得到結(jié)果畫圖比較源程序代碼:x=0:15:90;x0=0:15:75;y1=0 0.2588 0.5000 0.7071 0.8660 0.9659 1

11、.0000; y2=0 0.2679 0.5774 1.0000 1.7320 3.7320; x3=0:90 ;x4=0:75;y11=spline(x,y1,x3) %三次樣條插值y12=spline(x0,y2,x4) p1=polyfit(x,y1,5); %五次多項式擬合p2=polyfit(x0,y2,5);p11=polyval(p1,x3);p12=polyval(p2,x4); plot(x3,y11,-*,x4,y12,-o,x3,p11,-r,x4,p12,-y)結(jié)果 y11 = Columns 1 through 10 0 0.0175 0.0349 0.0524 0.

12、0698 0.0872 0.1045 0.1219 0.1392 0.1564 Columns 11 through 20 0.1737 0.1908 0.2079 0.2249 0.2419 0.2588 0.2756 0.2923 0.3090 0.3255 Columns 21 through 30 0.3420 0.3583 0.3746 0.3907 0.4067 0.4226 0.4384 0.4540 0.4695 0.4848 Columns 31 through 40 0.5000 0.5150 0.5299 0.5446 0.5592 0.5736 0.5878 0.601

13、8 0.6157 0.6293 Columns 41 through 50 0.6428 0.6561 0.6691 0.6820 0.6947 0.7071 0.7193 0.7313 0.7431 0.7547 Columns 51 through 60 0.7660 0.7771 0.7880 0.7986 0.8090 0.8191 0.8290 0.8387 0.8480 0.8571 Columns 61 through 70 0.8660 0.8746 0.8829 0.8910 0.8987 0.9062 0.9135 0.9204 0.9271 0.9335 Columns

14、71 through 80 0.9396 0.9454 0.9510 0.9563 0.9612 0.9659 0.9703 0.9744 0.9782 0.9817 Columns 81 through 90 0.9849 0.9878 0.9904 0.9927 0.9946 0.9963 0.9977 0.9987 0.9995 0.9999 Column 91 1.0000y12 = Columns 1 through 10 0 0.0184 0.0365 0.0545 0.0724 0.0902 0.1079 0.1255 0.1431 0.1607 Columns 11 throu

15、gh 20 0.1784 0.1961 0.2138 0.2317 0.2497 0.2679 0.2863 0.3048 0.3236 0.3427 Columns 21 through 30 0.3620 0.3817 0.4017 0.4221 0.4429 0.4641 0.4858 0.5079 0.5305 0.5537 Columns 31 through 40 0.5774 0.6017 0.6266 0.6520 0.6780 0.7046 0.7317 0.7593 0.7876 0.8163 Columns 41 through 50 0.8456 0.8754 0.90

16、58 0.9367 0.9681 1.0000 1.0325 1.0658 1.1003 1.1364 Columns 51 through 60 1.1743 1.2145 1.2572 1.3028 1.3516 1.4041 1.4604 1.5211 1.5863 1.6565 Columns 61 through 70 1.7320 1.8131 1.9002 1.9936 2.0937 2.2008 2.3152 2.4374 2.5675 2.7060 Columns 71 through 762.8532 3.0095 3.1752 3.3506 3.5361 3.7320結(jié)論

17、A正弦值算法通過比較,兩種方法得到的結(jié)果近似相等。B正切值算法通過比較知,角度較小時五次多項式算得的值較大,角度增大則兩種方法得到的結(jié)果近似相等。(2)流程圖: 使用函數(shù)f=interp1(x,y,xi,cubic)x=1 4 9 16 25 36 49 64 81 100; y=1:10;得到結(jié)果f開始 結(jié)束源程序代碼:x=1 4 9 16 25 36 49 64 81 100;y=1 2 3 4 5 6 7 8 9 10;xi=1:100;f=interp1(x,y,xi,cubic)結(jié)果f = Columns 1 through 10 1.0000 1.3729 1.7125 2.000

18、0 2.2405 2.4551 2.6494 2.8292 3.0000 3.1636 Columns 11 through 20 3.3186 3.4661 3.6069 3.7422 3.8729 4.0000 4.1237 4.2435 4.3599 4.4730 Columns 21 through 30 4.5832 4.6907 4.7958 4.8988 5.0000 5.0993 5.1966 5.2921 5.3857 5.4777 Columns 31 through 40 5.5681 5.6570 5.7446 5.8309 5.9160 6.0000 6.0829 6.1647 6.2454 6.3249 Columns 41 through 50 6.4035 6.4810 6.5577 6.6334 6.7082 6.7823 6.8556 6.9281 7.0000 7.0712 Columns 51 through 60 7.1416 7.2113 7.2804 7.3487 7.4164 7.4835 7.5500 7.6159 7.6812 7.7459 Columns 61 through 70 7.8102 7.8739 7.9372 8.0000 8.0623 8.1242 8.1855

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論