MATLAB實習(xí)報告-1_第1頁
MATLAB實習(xí)報告-1_第2頁
MATLAB實習(xí)報告-1_第3頁
MATLAB實習(xí)報告-1_第4頁
MATLAB實習(xí)報告-1_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實習(xí)報告班級姓名*學(xué)號指導(dǎo)老師:*日期:2011/11/24目錄MATLAB 簡介3上機實習(xí)題目31. 第2章第1題32. 第3章第2題33. 第5章第2題34. 第4章第1題4三. 題目實現(xiàn)過程41. 牛頓插值以及三次樣條插值(第一個實驗題)4a. 牛頓插值4b. 三次樣條插值4c. 牛頓插值截圖5d. 三次樣條插值截圖62. 3次,4次多項式的曲線擬合7a. 先輸入表格中對應(yīng)的數(shù)據(jù)7次擬合7c. 3次擬合截圖8d. 4次擬合9e. 4次擬合截圖93. 高斯消去法解線性方程組10a. 高斯消去法源代碼10b. 第一個小題11c. 第二個小題124. 雅克比迭代法與SOR方法13a. 雅克比迭

2、代法的計算公式13b. 超松弛迭代法的計算公式13c. 得到希爾矩陣13d. 得到b矩陣13e. 雅克比迭代法實現(xiàn)的函數(shù)13迭代法實現(xiàn)的函數(shù)14g. 對于雅克比迭代法,通過執(zhí)行以下代碼15h. 對于SOR迭代法,執(zhí)行相對應(yīng)代碼15四. 心得與感想18一. MATLAB 簡介MATLAB是一個軟件,用來進行科學(xué)計算。在實際生活或者在科學(xué)研究中, 大量的計算有時候是不可避免的,在這個時候,我們可以選擇很多種方式來 解決我們的問題。但是選擇一個好的軟件對于我們來說有時候卻是非常困難 的,尤其是現(xiàn)在各種軟件層出不窮,當(dāng)然里面有好的,可是有大多數(shù)的軟件 卻是魚目混珠,在里面濫竽充數(shù)。如果我們不避開這些,

3、那么我們可能面臨 的是用很大的工作量來完成一個極其簡單的問題,或者說在付岀了時間與精 力之后卻完不成問題。所以必須選擇一個好的計算軟件來解決問題。MATLAB 就是這樣一個軟件,在你能夠熟悉并且流暢運用它之后,那它將是一把能夠 解決很多問題的鑰匙。MATLAB是Matrix Laboratory,即矩陣實驗室的縮寫。它是一個有Math Work公司(由Mol er, Little, Bangert在1984年在加利福利亞成立)開發(fā)的 軟件包。用來實現(xiàn)數(shù)值計算或者符號操作。另外MATLAB還擁有M-file這一功能,在這里面你可以編寫自己的程序(當(dāng) 然這個程序不是windows程序),在這里你就

4、可以實現(xiàn)很多計算,雖然說 MATLAB自帶的函數(shù)在大多數(shù)情況下已經(jīng)夠用,但是總會有某些時候你覺得自 己編寫的程序運用起來更加靈活,而且在一些具體問題的時候,這個優(yōu)勢將 會是一大突破,可以讓我們很輕松解決很多問題。除了自己編寫外,MATLAB 自帶的很多優(yōu)秀的程序,如plot(繪圖)函數(shù),cond(求矩陣條件數(shù))函數(shù), 關(guān)于矩陣的一些相關(guān)函數(shù),都是相當(dāng)經(jīng)典的。總乙熟悉使用MATLAB可以讓我們的工作變得很簡單,經(jīng)過這次的學(xué)習(xí), 我們以后的很多學(xué)習(xí)工作問題都可以很方便地解決了。二. 上機實習(xí)題目1.第2章第1題已知函數(shù)在下列各點的值為Xif(Xi)試用4次牛頓插值多項式Pj(x)及三次樣條函數(shù)S(

5、x)(自然邊界條件)對數(shù)據(jù)進行插值。用圖給出(xj.yjXi = 0.2 +0.08 i,i = 0,1 JI JO, P4(x)及 S(x)。2.第3章第2題由實驗給岀數(shù)據(jù)表Xy試用3次,4次多項式的曲線擬合,再根據(jù)數(shù)據(jù)曲線形狀,求另外一個函數(shù)的 擬合曲線,用圖示數(shù)據(jù)曲線及相應(yīng)的三種擬合曲線。3.第5章第2題用列主元髙斯消去法解線性方程組Ax = b03.016.031.99 -xT1.274.16-1.23X2=1.0.987 -4.819.34 .x3.丄3.006.031.99 T1.2746-1.23x2=1.0.990-4.819.34 .x3.1.分別輸岀A, b, det(A)

6、,解向量x, (1)中A的條件數(shù)。分析比較(1).(2)。 4第4章第1題給出線性方程組Hnx = b,其中系數(shù)矩陣Hn為希爾伯特矩陣:Hn=(hij)EKnXn iij =i + j-1匕 j = 1,2,n o假設(shè)=(1J,1)T e Rnxn,b= Hnx若取n = 6,8,10,分別用雅克比迭 代法及SOR迭代法(3 = 1,1.25,1.5)求解。比較計算結(jié)果。三. 題目實現(xiàn)過程下面開始進行計算1.牛頓插值以及三次樣條插值(第一個實驗題)此題要求利用給定點,及給定點的函數(shù)值進行牛頓插值以及三次樣條插 值。a牛頓插值要實現(xiàn)牛頓插值,要用到以下代碼% 調(diào)用格式:yi=Lagran_(x,

7、y,xi)% x,y數(shù)組形式的數(shù)據(jù)襄function fi=Lagran_(x,f,xi)fi=zeros(size(xi); npl=length(f);for i=l:nplz=ones(size(xi); for j=l:nplif i=j,z二z. *(xi-x(j)/(x(i)-x(j):end endfi=fi+z*f (i);endb三次樣條插值要實現(xiàn)三次樣條插值,要用到以下代碼 function S=csfit(X,Y,dxO,dxn) N=length(X)-l;H=diff(X);D二diff(Y)./H;A=H(2:N-1);B=2*(H(1:N-1)+H(2:N);C=

8、H(2:N);U=6*diff(D);B 二B -H(l)/2;U(1)=U(1)-3*(D(1);B(N-1)二 B(N-l)-H(N)/2;U(N-1)=U (N-l)-3*(-D(N); for k=2:N-ltemp=A(kl)/B(kl);B (k)=B (k)-temp*C(kl);U(k)=U(k)-temp*U(k-l);endM(N)=U(N-1)/B(N-1);for k=N-2:-l:lM(k+l) = (U (k) -C (k) *M(k+2) /B (k);endM(1)=3*(D(1) -dxO) /H(l) -M (2) /2;M(N+1)=3*(dxn-D(N)

9、/H(N)-M(N)/2;for k=0:N-lS (k+1,1) = (M (k+2) -M (k+1)/(6*H (k+1); S(k+l,2)=M(k+l)/2;S (k+1,3) =D (k+1)-H (k+1)* (2*M(k+l)+M (k+2) )/6; S(k+l,4)=Y(k+l);endc. 牛頓插值截圖在輸入對應(yīng)的兩個數(shù)組后,首先進行4次牛頓插值,下面是運行截圖CwtM Diwtory* XS3 Ct0MFM -2011-11 5 ryglsnmai1-1V583)11-11 S3 sueDytCltwX32dsbl arrayflIN4wM UIVx!f5rayx2t*

10、ladtublayx111a4C540dsbl “til 10 Z2osirc 汗6-y, XCl =0.1M000.56221.24030.3&00然后根據(jù)結(jié)果繪圖d 三次樣條插值截圖 5 = It. y. (J, O9 -3.-2. flowD(Lamo1.1101T收I-I.UWZ0.9200O.UTS0-310023.Y?6TJ-1.4730.6400C*ra4 Dirtttoty X& a & O0 -az *.1 Latf McdrM2011.11-57Dgaem3)11.11-5 3Mo2011-11-5 8*CommtodKaaaByt zClanX24wMriyfaKdcub

11、l?MIVX40dujb】arxiyxla4Mtl4iryX?3rryx33dcbl*icriyxadsblirray7a4cubl4atrayar 22 ! r urine Vytr首先得到的是三次樣條插值后的多項式系數(shù)矩陣,然后利用polyval ()函數(shù) 計算在對應(yīng)點的值,CtfW4 DircctotyCZTLAergb XS3 C E aAiriit 4.1 Latf MdrM0011-117?hWU3)iMi.5 aifrMSdymxvrift3)11-11-5 9 -CemmMd VMiado-r S5 =2.SWS20呦0CLdfiDO1.1161-0.4K?l-I.4W:0.9

12、200 3.35W0.1BT5-I.WT10.31002$. WM-4. Wia阮(U;:人 11 -Xii. y2 - polyval (S(Jr s!3 - x3:(L01:sr I2 -X(2; yj = r-)lyx-alis(3i, xD -XO; P1C4 今Mo” Heba. 先輸入表格中對應(yīng)的數(shù)據(jù),0 0 ; 0 3 辛 3zCwtY fcw.nAermwt 二 J 旳gg DihxiotyCgnAB!2b X反1 CtrhK1 LfMTS)11-11-57hWU3)11-11-592011-11-6 8CemmMd MUov 1 = (0 M 0.2 0.5 (U 0.9 1

13、1; y (1 841 0.50.61 l.dl 7.02 2.46J. plsd ” 然后首先通過調(diào)用plot()函數(shù),繪圖次擬合 通過以下代碼 X si = polyfit(x, y, 3); temp = 0:1; y_temp = zeros(size(temp); y_temp = polyval (si, temp); hold on; plot(temp, ytemp)c. 3次擬合截圖可以得到下面的截圖,這是看到3次擬合后的多項式與原來的圖形比較d. 4次擬合通過下面代碼 XX =0 yy = s2 = polyfit(x, y, 4); y_temp = polyval (s

14、2, temp); hold on; plot(temp, y temp, * r1)e. 4次擬合截圖通過進行4次擬合,我們會感覺不同,從圖像上可以看出(不同次數(shù)的擬合 在圖像上用不同的顏色標(biāo)示出來以便觀察,其中3次擬合是藍色,4次的是紅色)以上都是用多項式進行擬合,下面代碼用一個線性函數(shù)來進行擬合 xmean = mean(x); ymean = mean(y); sumx2 = (x - xmean) * (x - xmean); sumxy = (y 一 ymean) * (y 一 ymean); A = sumxy / sumx2; B = ymean - A * xmean; tc

15、nnp = 0: : 1 ; y_temp = A * temp + B; plot(temp, y temp, 1greerf) 的到下圖其中綠的線是這次擬合的結(jié)果,很明顯,誤差很大H Figure廠=丨回丨乂在進行解決這個題目時候用的擬合函數(shù)是MATLAB自帶的擬合函數(shù) polyfit (),這里是多項式擬合。polyfit ()函數(shù)得到的是一個矩陣,然后運 用另一個MATLAB自帶的函數(shù)polyvalO來進行計算給定點的函數(shù)值。 到這里這一題完成。3.髙斯消去法解線性方程組對于這道題目,要求用高斯消去法解兩個線性方程組,所以利用MATLAB 的M-file編寫一個文件便可以解決兩個小題。

16、而髙斯消去法的核心是逐漸利用消去法是原來的系數(shù)矩陣變成一個上三 角矩陣。然后一個迭代便可以解出方程的每一個解。a. 高斯消去法源代碼function X = pl78_2_GAUSS(A, b)n, m: = size (A);X = zeros (n, 1);temp = zeros (11 m);temp b = 0;i = 1;for j = 1: (m - 1)if (A(i, j) 0)for k = (i + 1):nif (A(k, j) 0)temp = A(k, :) + A(i, :) * (A(k, j) / A(i, j); temp_b = b(k) + b(i) *

17、 (-A(k, j) / A(i, j); A(k, :) = temp; b(k) = temp b;endendendi = i + 1;end;Abdisp(det(A) isx = det(A);disp(x);disp(rcond(A) is );x = cond (A);disp(x);X(n) = b(n) / A(n, n):for i = (n - 1):一1:1tempb = 0;for j = (i + 1):ntemp b = temp b + A(i, j) * X(j);endX(i) = (b(i) - temp_b) / A(i, i);endend這個程序要求

18、輸入兩個參數(shù),一個是系數(shù)矩陣,另外一個是矩陣b。從 程序中我們可以看岀程序首先初始化一個解向量,全部以0為元素。然后通 過循環(huán)來進行系數(shù)矩陣的上三角化,在這個過程中,需要判斷每一個系數(shù)矩 陣的行向量的第一元素是否為0,若是0的話,則需要進行換行操作,或者跳 過此次循環(huán),直接進入下一次循環(huán)(因為有可能是這一行已經(jīng)達到要求,不 需要再進行操作。)b. 第一個小題通過以下過程: A =;:; b = 1; 1; 1; pl78_2_GAUSS(A, b)可以解也方程:00 0b =det (A) is cond(A) is+003ans =+003 *c. 第二個小題通過以下過程: A =;; b

19、= 1; 1; 1; pl78 2_GAUSS(A. b) 可以解由方程:A =00 0b =det (A) is cond(A) is ans =到這里這一大題已經(jīng)完全解決,下面進入下一題。a 雜古卜八矢伴津匸cni? 77 這一題考查的2迭代法的使用,雅克比迭代法與SOR方法,在這道題中用。a. 雅克比迭代法的計算公式,x(0) = (xf),x$), .,xF)T,nxfk+D = (bi_aijX$)/aii, j=l jHi、i = l,2,.n;k = 0,1,.表示迭代次數(shù)b. 超松弛迭代法的計算公式(x(o)=(y,xy),,xo)llxik+1)= x$)+ w (bj -

20、Sj=i aijXk) - 2j=i ai,i = l,2,.n;k= 0,1,.表示迭代次數(shù)、3為松弛因子首先要通過程序獲得希爾矩陣與b矩陣,然后才能進行下面的工作,而要 實現(xiàn)這個功能需要以下的函數(shù):c. 得到希爾矩陣function Hn = GET Hn(n)Hn = zeros (n):for i = l:nfor j = l:nHn(i, j) = 1 / (i + j - 1);endendendd. 得到b矩陣function b = GET b(n)Hn temp = GET Hn (n);b = zeros (n, 1);for i = l:nfor j 二 l:nb (i)

21、 = b (i) + Hn temp(i, j);endendende. 雅克比迭代法實現(xiàn)的函數(shù)function X = p211 l_JJ(n)Hn = GET_Hn(n);b = GET b(n);temp = 0;X0 = zeros (1, n);X_old = zeros(1,X_new = zeros (1, disp(rNow Jacobi disp(rStart withn);n);method!);the vector that(0, 0, 0)T);for k = 1:nX old = X_new;temp = 0;for j = l:nif(j i)temp = temp

22、 + Hn(i, j) * X_old(j): endendX_new(i) = (b (i) - temp) / Hn(i, i): endendX = X_new;endf. SOR迭代法實現(xiàn)的函數(shù)function X = p211 1_S0R(nr w)Hn = GET_Hn(n);b = GET_b(n);tempO1 = 0;temp02 = 0;X0 = zeros (1, n);X_old = zeros (1, n);X_new = zeros (1, n):dispCNow Successive Over Relaxtion method! 1): disp(rStart w

23、ith the vector that (0, 0, 0,); for i = 1 :nfor k = l:nX_old = Xnew;tempO1 = 0;temp02 = 0;for j = 1:nif(j i)temp02 = temp02 + Hn(i, j) * X old(j): endendendX new(i) = w * (b(i) - tempO 1 - temp02) / Hn(i, i) + X old (i): endX = X_ new;Endg. 對于雅克比迭代法,通過執(zhí)行以下代碼 p211_l_JJ(6) p211_l_JJ(8) p211 1 JJ(1O)可以

24、分班得到:Now Jacobi method!Start with the vector that (0, 0, 0,.)T ans 二Now Jacobi method!(0, 0, 0,(0, 0, 0,廠TStart with the vector that ans =Now Jacobi method!Start with the vector thatans =Columns 1 through 9Column 10h. 對于SOR迭代法,執(zhí)行相對應(yīng)代碼n=6, 3=1,的時候 p211 1 S0R(6, 1)Now Successive Over Relaxtion method!

25、Start with the vector that (0, 0, 0, .) T ans = p211 1 _S0R(6,Now Successive Over Relaxtion method!Start with the vector that (0, 0, 0f )“Tans = p211 1 S0R(6,Now Successive Over Relaxtion method!Start with the vector that (0, 0, 0, .) Tans =與n=8, =1,的時候 p211 1 SOR(8, 1)Now Successive Over Relaxtion

26、method!Start with the vector that (0, 0, 0, .) Tans = p211 1 _S()R(8,Now Successive Over Relaxtion method!Start with the vector that (0, 0, 0,)Tans = p211 1_SOR(&Now Successive Over Relaxtion method!Start with the vector that (0, 0, 0, .)*Tans =與n=10, 3=1,的時候 p211_l_SOR(10, 1)Now Successive Over Relaxt

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論