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

下載本文檔

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

文檔簡介

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

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

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

4、可以實(shí)現(xiàn)很多計(jì)算,雖然說 MATLAB自帶的函數(shù)在大多數(shù)情況下已經(jīng)夠用,但是總會有某些時(shí)候你覺得自 己編寫的程序運(yùn)用起來更加靈活,而且在一些具體問題的時(shí)候,這個(gè)優(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í)工作問題都可以很方便地解決了。二. 上機(jī)實(shí)習(xí)題目1.第2章第1題已知函數(shù)在下列各點(diǎn)的值為Xif(Xi)試用4次牛頓插值多項(xiàng)式Pj(x)及三次樣條函數(shù)S(

5、x)(自然邊界條件)對數(shù)據(jù)進(jìn)行插值。用圖給出(xj.yjXi = 0.2 +0.08 i,i = 0,1 JI JO, P4(x)及 S(x)。2.第3章第2題由實(shí)驗(yàn)給岀數(shù)據(jù)表Xy試用3次,4次多項(xiàng)式的曲線擬合,再根據(jù)數(shù)據(jù)曲線形狀,求另外一個(gè)函數(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)求解。比較計(jì)算結(jié)果。三. 題目實(shí)現(xiàn)過程下面開始進(jìn)行計(jì)算1.牛頓插值以及三次樣條插值(第一個(gè)實(shí)驗(yàn)題)此題要求利用給定點(diǎn),及給定點(diǎn)的函數(shù)值進(jìn)行牛頓插值以及三次樣條插 值。a牛頓插值要實(shí)現(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三次樣條插值要實(shí)現(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)的兩個(gè)數(shù)組后,首先進(jìn)行4次牛頓插值,下面是運(yùn)行截圖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首先得到的是三次樣條插值后的多項(xiàng)式系數(shù)矩陣,然后利用polyval ()函數(shù) 計(jì)算在對應(yīng)點(diǎn)的值,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次擬合后的多項(xiàng)式與原來的圖形比較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次擬合截圖通過進(jìn)行4次擬合,我們會感覺不同,從圖像上可以看出(不同次數(shù)的擬合 在圖像上用不同的顏色標(biāo)示出來以便觀察,其中3次擬合是藍(lán)色,4次的是紅色)以上都是用多項(xiàng)式進(jìn)行擬合,下面代碼用一個(gè)線性函數(shù)來進(jìn)行擬合 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廠=丨回丨乂在進(jìn)行解決這個(gè)題目時(shí)候用的擬合函數(shù)是MATLAB自帶的擬合函數(shù) polyfit (),這里是多項(xiàng)式擬合。polyfit ()函數(shù)得到的是一個(gè)矩陣,然后運(yùn) 用另一個(gè)MATLAB自帶的函數(shù)polyvalO來進(jìn)行計(jì)算給定點(diǎn)的函數(shù)值。 到這里這一題完成。3.髙斯消去法解線性方程組對于這道題目,要求用高斯消去法解兩個(gè)線性方程組,所以利用MATLAB 的M-file編寫一個(gè)文件便可以解決兩個(gè)小題。

16、而髙斯消去法的核心是逐漸利用消去法是原來的系數(shù)矩陣變成一個(gè)上三 角矩陣。然后一個(gè)迭代便可以解出方程的每一個(gè)解。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這個(gè)程序要求

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

19、= 1; 1; 1; pl78 2_GAUSS(A. b) 可以解由方程:A =00 0b =det (A) is cond(A) is ans =到這里這一大題已經(jīng)完全解決,下面進(jìn)入下一題。a 雜古卜八矢伴津匸cni? 77 這一題考查的2迭代法的使用,雅克比迭代法與SOR方法,在這道題中用。a. 雅克比迭代法的計(jì)算公式,x(0) = (xf),x$), .,xF)T,nxfk+D = (bi_aijX$)/aii, j=l jHi、i = l,2,.n;k = 0,1,.表示迭代次數(shù)b. 超松弛迭代法的計(jì)算公式(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矩陣,然后才能進(jìn)行下面的工作,而要 實(shí)現(xiàn)這個(gè)功能需要以下的函數(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. 雅克比迭代法實(shí)現(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迭代法實(shí)現(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,的時(shí)候 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,的時(shí)候 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,的時(shí)候 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論