差分方法實驗報告_第1頁
差分方法實驗報告_第2頁
差分方法實驗報告_第3頁
差分方法實驗報告_第4頁
差分方法實驗報告_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 實 驗 報 告課程名稱: 計算方法 院 系: 數(shù)學(xué)科學(xué)系 專業(yè)班級: 數(shù)應(yīng)1001 學(xué) 號: 1031110139 學(xué)生姓名: 姚海保 指導(dǎo)教師: 沈林 開課時間:2012至2013學(xué)年第一學(xué)期 一、學(xué)生撰寫要求按照實驗課程培養(yǎng)方案的要求,每門實驗課程中的每一個實驗項目完成后,每位參加實驗的學(xué)生均須在實驗教師規(guī)定的時間內(nèi)獨立完成一份實驗報告,不得抄襲,不得缺交。學(xué)生撰寫實驗報告時應(yīng)嚴格按照本實驗報告規(guī)定的內(nèi)容和要求填寫。字跡工整,文字簡練,數(shù)據(jù)齊全,圖表規(guī)范,計算正確,分析充分、具體、定量。二、教師評閱與裝訂要求1.實驗報告批改要深入細致,批改過程中要發(fā)現(xiàn)和糾正學(xué)生實驗報告中的問題,給出評語

2、和實驗報告成績,簽名并注明批改日期。實驗報告批改完成后,應(yīng)采用適當?shù)男问綄W(xué)生實驗報告中存在的問題及時反饋給學(xué)生。2.實驗報告成績用百分制評定,并給出成績評定的依據(jù)或評分標準(附于實驗報告成績登記表后)。對遲交實驗報告的學(xué)生要酌情扣分,對缺交和抄襲實驗報告的學(xué)生應(yīng)及時批評教育,并對該次實驗報告的分數(shù)以零分處理。對單獨設(shè)課的實驗課程,如學(xué)生抄襲或缺交實驗報告達該課程全學(xué)期實驗報告總次數(shù)三分之一以上,不得同意其參加本課程的考核。3.各實驗項目的實驗報告成績登記在實驗報告成績登記表中。本學(xué)期實驗項目全部完成后,給定實驗報告綜合成績。4.實驗報告綜合成績應(yīng)按課程教學(xué)大綱規(guī)定比例(一般為10-15%)計

3、入實驗課總評成績;實驗總評成績原則上應(yīng)包括考勤、實驗報告、考核(操作、理論)等多方面成績;5.實驗教師每學(xué)期負責(zé)對擬存檔的學(xué)生實驗報告按課程、學(xué)生收齊并裝訂,按如下順序裝訂成冊:實驗報告封面、實驗報告成績登記表、實驗報告成績評定依據(jù)、實驗報告(按教學(xué)進度表規(guī)定的實驗項目順序排序)。裝訂時統(tǒng)一靠左側(cè)按“兩釘三等分”原則裝訂。實驗名稱MATLAB基本操作實驗時間 2012年9月13日學(xué)生姓名姚海保實驗地點9#405數(shù)學(xué)實驗室1、 實驗所用軟件xp操作系統(tǒng)、Matlab實驗軟件2、實驗?zāi)康氖煜atlab編程環(huán)境,理解和掌握Matlab執(zhí)行命令的方式,會做一些簡單函數(shù)的圖像。通過用Matlab編程解

4、決數(shù)值分析問題,更深一步的體會計算方法這門課的重要性。3、實驗內(nèi)容(一)、Matlab操作界面1. 命令窗口(command window)2. 命令歷史窗口(command history)3. 工作空間管理窗口(workspace)4. 當前路徑窗口(current directory)(二)、具體練習(xí)1、簡單矩陣的輸入步驟。2、畫出衰減振蕩曲線及其它的包絡(luò)線。的取值范圍是。3、畫出所表示的三維曲面。的取值范圍是。4、復(fù)數(shù)矩陣的生成及運算.4、實驗方法、步驟1. 了解matlab的硬件和軟件必備環(huán)境;2. 啟動matlab;3. 熟悉標題欄,菜單欄,工具欄,元素選擇窗口,狀態(tài)欄,控制欄以及

5、系統(tǒng)布局區(qū);4. 學(xué)習(xí)一些簡單函數(shù)圖形的繪制及命令的編寫。5、實驗數(shù)據(jù)記錄與分析 1、簡單矩陣的輸入步驟。(1)在鍵盤上輸入下列內(nèi)容A = 1,4,7; 2,5,8; 3,6,9 (2)按【Enter】鍵,指令被執(zhí)行。(3)在指令執(zhí)行后,MATLAB指令窗中將顯示以下結(jié)果:A = 1 4 7 2 5 8 3 6 92、畫出衰減振蕩曲線及其它的包絡(luò)線。的取值范圍是。t=0:pi/50:4*pi;y0=exp(-t/3);y=exp(-t/3).*sin(3*t);plot(t,y,'-r',t,y0,':b',t,-y0,':b')grid 3、畫

6、出所表示的三維曲面。的取值范圍是。clear;x=-8:0.5:8;y=x'X=ones(size(y)*x;Y=y*ones(size(x);R=sqrt(X.2+Y.2)+eps;%<5>Z=sin(R)./R;%<6>surf(X,Y,Z);%colormap(cool) %xlabel('x'),ylabel('y'),zlabel('z')4、復(fù)數(shù)矩陣的生成及運算A=1,3;2,4-5,8;6,9*iB=1+5i,2+6i;3+8*i,4+9*i C=A*B A = 1.0000 - 5.0000i 3.

7、0000 - 8.0000i 2.0000 - 6.0000i 4.0000 - 9.0000iB =1.0000 + 5.0000i 2.0000 + 6.0000i 3.0000 + 8.0000i 4.0000 + 9.0000iC =1.0e+002 * 0.9900 1.1600 - 0.0900i 1.1600 + 0.0900i 1.37006、實驗結(jié)論通過本次實驗,我熟悉了Matlab編程,掌握了基本的matlab編程命令,并熟悉了一些作圖方法,讓我對這款軟件充滿了興趣。指導(dǎo)教師評語和成績評定 指導(dǎo)教師簽字: 年 月 日實驗名稱插值算法實驗時間2012年9月27日學(xué)生姓名姚海保

8、實驗地點9#405數(shù)學(xué)實驗室1、實驗所用軟件WINxp操作系統(tǒng)、Matlab2、實驗?zāi)康脑O(shè)計一個程序,通過鍵盤指令輸入?yún)?shù),可以實現(xiàn)Taylor插值方法、線性插值方法、拋物插值方法以及一般情形的Lagrange插值方法的程序。使學(xué)生掌握插值算法的基本理論,并提高學(xué)生在程序設(shè)計中發(fā)現(xiàn)問題、分析問題和解決問題的能力。3、實驗內(nèi)容1).已知函數(shù)在上具有二階連續(xù)導(dǎo)數(shù),且滿足條件.求線性插值多項式和函數(shù)值,并估計其誤差.2). 求函數(shù)e在上線性插值多項式,并估計其誤差3). 給出節(jié)點數(shù)據(jù),作三次拉格朗日插值多項式計算,并估計其誤差.4、實驗方法、步驟1).解 輸入程序>> X=1,3;Y=1

9、,2; l01= poly(X(2)/( X(1)- X(2), l11= poly(X(1)/( X(2)- X(1), l0=poly2sym (l01),l1=poly2sym (l11), P = l01* Y(1)+ l11* Y(2), L=poly2sym (P),x=1.5; Y = polyval(P,x)運行后輸出基函數(shù)l0和l1及其插值多項式的系數(shù)向量P(略)、插值多項式L和插值Y為l0 = l1 = L = Y =-1/2*x+3/2 1/2*x-1/2 1/2*x+1/2 1.2500輸入程序>> M=5;R1=M*abs(x-X(1)* (x-X(2)/

10、2運行后輸出誤差限為 R1 = 1.87502).解 輸入程序>> X=0,1; Y =exp(-X) , l01= poly(X(2)/( X(1)- X(2), l11= poly(X(1)/( X(2)- X(1), l0=poly2sym (l01),l1=poly2sym (l11), P = l01* Y(1)+ l11* Y(2), L=poly2sym (P),運行后輸出基函數(shù)l0和l1及其插值多項式的系數(shù)向量P和插值多項式L為l0 = l1 = P =-x+1 x -0.6321 1.0000L =-1423408956596761/225179981368524

11、8*x+1 輸入程序>> M=1;x=0:0.001:1; R1=M*max(abs(x-X(1).*(x-X(2)./2運行后輸出誤差限為 R1 = 0.1250.3).解 輸入程序>> X=-2,0,1,2; Y =17,1,2,17;p1=poly(X(1); p2=poly(X(2);p3=poly(X(3); p4=poly(X(4); l01= conv ( conv (p2, p3), p4)/( X(1)- X(2)* ( X(1)- X(3) * ( X(1)- X(4), l11= conv ( conv (p1, p3), p4)/( X(2)-

12、X(1)* ( X(2)- X(3) * ( X(2)- X(4),l21= conv ( conv (p1, p2), p4)/( X(3)- X(1)* ( X(3)- X(2) * ( X(3)- X(4),l31= conv ( conv (p1, p2), p3)/( X(4)- X(1)* ( X(4)- X(2) * ( X(4)- X(3),l0=poly2sym (l01),l1=poly2sym (l11),l2=poly2sym (l21), l3=poly2sym (l31),P = l01* Y(1)+ l11* Y(2) + l21* Y(3) + l31* Y(4

13、),運行后輸出基函數(shù)l0,l1,l2和l3及其插值多項式的系數(shù)向量P(略)為l0 =-1/24*x3+1/8*x2-1/12*x,l1 =1/4*x3-1/4*x2-x+1l2 =-1/3*x3+4/3*x,l3 =1/8*x3+1/8*x2-1/4*x輸入程序>> L=poly2sym (P),x=0.6; Y = polyval(P,x)運行后輸出插值多項式和插值為L = Y =x3+4*x2-4*x+1 0.2560.輸入程序>> syms M; x=0.6; R3=M*abs(x-X(1)*(x-X(2) *(x-X(3) *(x-X(4)/24運行后輸出誤差限

14、為R3 =91/2500*M即 R3 , .5、實驗數(shù)據(jù)記錄與分析1)運行后輸出基函數(shù)l0和l1及其插值多項式的系數(shù)向量P(略)、插值多項式L和插值Y為l0 = l1 = L = Y =-1/2*x+3/2 1/2*x-1/2 1/2*x+1/2 1.2500運行后輸出誤差限為 R1 = 1.87502)運行后輸出基函數(shù)l0和l1及其插值多項式的系數(shù)向量P和插值多項式L為l0 = l1 = P =-x+1 x -0.6321 1.0000L =-1423408956596761/2251799813685248*x+1 運行后輸出誤差限為 R1 = 0.1250.3)運行后輸出基函數(shù)l0,l1

15、,l2和l3及其插值多項式的系數(shù)向量P(略)為l0 =-1/24*x3+1/8*x2-1/12*x,l1 =1/4*x3-1/4*x2-x+1l2 =-1/3*x3+4/3*x,l3 =1/8*x3+1/8*x2-1/4*x輸入程序>> L=poly2sym (P),x=0.6; Y = polyval(P,x)運行后輸出插值多項式和插值為L = Y =x3+4*x2-4*x+1 0.2560.輸入程序>> syms M; x=0.6; R3=M*abs(x-X(1)*(x-X(2) *(x-X(3) *(x-X(4)/24運行后輸出誤差限為R3 =91/2500*M即

16、 R3 , .6、實驗結(jié)論通過本次實驗,運用了matlab進行Taylor插值、線性插值、拋物插值以及一般情形的Lagrange插值的簡單程序,掌握了插值算法的基本理論,我在本次實驗中獲得了巨大的收獲,對數(shù)值分析這門課程有了更深刻的理解。指導(dǎo)教師評語和成績評定 指導(dǎo)教師簽字: 年 月 日實驗名稱數(shù)值積分與數(shù)值微分實驗時間2012年10月25日學(xué)生姓名姚海保實驗地點9#405數(shù)學(xué)實驗室1、實驗所用軟件WIN7操作系統(tǒng)、Matlab2、實驗?zāi)康?.掌握復(fù)合梯形法求積分、復(fù)合辛普生法方法求積分公式的程序設(shè)計2.掌握Romberg積分的用法。3.掌握高斯公式的程序設(shè)計3、實驗內(nèi)容(1)辛普森公式計算e

17、d,取個等距節(jié)點,并將計算結(jié)果與精確值比較,然后再取計算,觀察對誤差的影響.(2估計用辛普森公式計算定積分ed時的誤差,?。?編寫復(fù)合辛普森(Simpson)數(shù)值積分的MATLAB主程序4、實驗方法、步驟1. 了解matlab的硬件和軟件必備環(huán)境;2. 啟動matlab; 3.學(xué)習(xí)一些簡單的matlab編程。 4.了解各種求積分的方法的原理。5.編寫程序。5、實驗數(shù)據(jù)記錄與分析(1)辛普森公式計算ed,取個等距節(jié)點,并將計算結(jié)果與精確值比較,然后再取計算,觀察對誤差的影響.解 由,得.根據(jù)辛普森(Simpson)公式編寫并輸入下面的程序>> a=0;b=1;m=10000; h=(

18、b-a)/(2*m); x=a:h:b; y=exp(-x.2)./2)./(sqrt(2*pi);z1=y(1)+y(2*m+1); z2=2*sum(y(2:2:2*m); z3=4*sum(y(3:2:2*m);z=(z1+z2+z3)*h/3, syms t,f=exp(-t2)/2)/(sqrt(2*pi);intf=int(f,t,a,b), Fs=double(intf); Juewucha=abs(z-Fs)運行后屏幕顯示用辛普森公式(9.11)計算定積分的近似值z和精確值intf及其絕對誤差Juewucha(取個等距節(jié)點).(2估計用辛普森公式計算定積分ed時的誤差,取根據(jù)估

19、計誤差公式,先輸入求的程序>>syms x,y=exp(sin(x); yx4=diff(y,x,4)運行后輸出被積函數(shù)的四階導(dǎo)函數(shù). 然后在輸入誤差估計程序>>h=pi/40; x=0:0.00001:pi/2; yx4=sin(x).*exp(sin(x)-4*cos(x).2.*exp(sin(x)+3*sin(x).2.*exp(sin(x)-6*sin(x).*cos(x).2.*exp(sin(x)+cos(x).4.*exp(sin(x);juyx4= abs(yx4); RS=(h4)*(pi/2)*max(juyx4)/180運行后屏幕顯示誤差估計值R

20、S = 3.610450295892220e-006(3)寫復(fù)合辛普森(Simpson)數(shù)值積分的MATLAB主程序function y=comsimpson(fun,a,b,n) z1=feval (fun,a)+ feval (fun,b);m=n/2;h=(b-a)/(2*m); x=a;z2=0; z3=0; x2=0; x3=0;for k=2:2:2*m x2=x+k*h; z2= z2+2*feval (fun,x2); endfor k=3:2:2*m x3=x+k*h; z3= z3+4*feval (fun,x3); endy=(z1+z2+z3)*h/3;6、實驗結(jié)論 通

21、過本次實驗果,了解各種求積分的方法的原理。但在試驗中還存在一些問題如:對matlab一些操作命令執(zhí)行不大完整,容易出錯等。所以在以后的學(xué)習(xí)中要努力學(xué)習(xí)并在學(xué)習(xí)生活中運用,以達到實踐與理論相結(jié)合。指導(dǎo)教師評語和成績評定 指導(dǎo)教師簽字: 年 月 日實驗名稱常微分方程差分方法實驗時間2012年11月8日學(xué)生姓名姚海保實驗地點9#405數(shù)學(xué)實驗室1、實驗所用軟件WIN7操作系統(tǒng)、Matlab2、實驗?zāi)康?.編寫程序?qū)崿F(xiàn)Euler求解方法及改進Euler求解方法2.掌握龍格-庫塔方法的用法3.掌握方程組和高階方程的程序?qū)崿F(xiàn)3、實驗內(nèi)容(1)用歐拉方法求初值問題的數(shù)值解,分別取,并計算誤差,畫出精確解和數(shù)

22、值解的圖形(2)用改進的歐拉方法梯形格式求解區(qū)間上的初值問題,取步長,精度為,并與精確解作比較,在同一個坐標系中畫出圖形(3)用二階龍格庫塔方法求初值問題的數(shù)值解,取,并計算與精確解的誤差,畫出精確解和數(shù)值解的圖形.4、實驗方法、步驟1. 了解matlab的硬件和軟件必備環(huán)境;2. 啟動matlab; 3.學(xué)習(xí)一些簡單的matlab編程。 4.了解常微分方程差分方法的原理。5.編寫程序?qū)崿F(xiàn)求解常微分方程。5、實驗數(shù)據(jù)記錄與分析(1)微分方程組為分別取步長編寫并保存名為Eulerli1.m的MATLAB計算和畫圖的主程序如下function P=Eulerli1(x0,y0,b,h)n=(b-x

23、0)/h; X=zeros(n,1); Y=zeros(n,1); k=1; X(k)=x0; Y(k)=y0; for k=1:nX(k+1)=X(k)+h; Y(k+1)=Y(k)+h*(X(k)-Y(k); k=k+1;endy=X-1+2*exp(-X); plot(X,Y,'mp',X,y,'b-')gridxlabel('自變量 X'), ylabel('因變量 Y')title('用向前歐拉公式求dy/dx=x-y,y(0)=1在0,1上的數(shù)值解和精確解y=x-1+2 exp(-x)') legend

24、('h=0.075時,dy/dx=x-y,y(0)=1在0,1上的數(shù)值解','精確解y=x-1+2 exp(-x)')jwY=y-Y;xwY=jwY./y;k1=1:n;k=0,k1; P=k',X,Y,y,jwY,xwY;在MATLAB工作窗口輸入下面的程序>>x0=0;y0=1;b=1;h=0.0750;P=Eulerli1(x0,y0,b,h)在MATLAB工作窗口輸入下面的程序>>h1=0.0075; P1=Eulerli1(x0,y0,b,h1)legend('h1=0.0075時,dy/dx=x-y,y(0)=

25、1在0,1上的數(shù)值解','精確解y=x-1+2 exp(-x)')(2)方程為求解區(qū)間取步長,精度為輸入程序>> x0=0;y0=1; b=2; tol=0.1; h=0.05;X,Yt,n,Pt=odtixing1(funfcn,x0,b,y0,h,tol)hold onS1=8/3*X-29/9+38/9*exp(-3*X); plot(X,S1,'b-'), hold offlegend('h=0.05,用梯形公式計算dy/dx=8x-3y-7,y(0)=1在0,2上的數(shù)值解','dy/dx=8x-3y-7,y(

26、0)=1在0,2上的精確解')juwYt=S1-Yt; xiwYt=juwYt./Yt; Lt=Pt,S1,juwYt,xiwYt運行后屏幕顯示取精度為,分別用梯形公式和向前歐拉公式求解此初值問題在區(qū)間上的自變量X處數(shù)值解Yi(i=t,q)和精確解S1,步長H, Yi的相對誤差xiwYi和絕對誤差juwYi (略) 及其數(shù)值解和精確解的圖形.(3)微分方程組為取,二階龍格庫塔方法的MATLAB主程序:function k,X,Y,fxy,wch,wucha,P=RK2(funfcn,fun,x0,b,C,y0,h)x=x0; y=y0;p=128; n=fix(b-x0)/h); fx

27、y=zeros(p,1);wucha=zeros(p,1); wch=zeros(p,1); X=zeros(p,1); Y=zeros(p,length(y); k=1; X(k)=x; Y(k,:)=y'% 繪圖.clc,x,h,y %計算 %fxy=fxy(:);for k=2:n+1 x=x+h;a2=C(3);b21=C(4);c1=C(1);c2=C(2);x1=x+a2*h;k1=feval(funfcn,x,y);y1=y+b21*h*k1;k2=feval(funfcn,x1,y1);fxy(k)=feval(fun,x);y=y+h*(c1*k1+c2*k2);X(

28、k)=x;Y(k,:)=y;k=k+1;plot(X,Y,'mh',X,fxy,'bo')grid,xlabel('自變量 X'),ylabel('因變量 Y')legend('用二階龍格-庫塔方法計算dy/dx=f(x,y),y(x0)=y0在x0,b上的數(shù)值解','y/dx=f(x,y),y(x0)=y0的精確解y=f(x)')end%計算誤差.for k=2:n+1wucha(k)=norm(Y(k-1)-Y(k); wch(k)=norm(fxy(k)-Y(k);endX=X(1:k);Y=

29、Y(1:k,:);fxy=fxy(1:k,:);n=1:k; wucha=wucha(1:k,:);wch=wch(1:k,:); P=n',X,Y,fxy,wch,wucha;再在MATLAB工作窗口輸入下面的程序>> x0=0;b=2;C=1/4,3/4,2/3,2/3;y0=0;h=1/4;k,X,Y,fxy,wch,wucha,P=RK2(funfcn,fun,x0,b,C,y0,h)6、實驗結(jié)論 通過本次試驗,基本掌握了編程實現(xiàn)Euler求解方法及改進Euler求解方法,龍格-庫塔方法的用法和方程組,高階方程的程序?qū)崿F(xiàn)。指導(dǎo)教師評語和成績評定 指導(dǎo)教師簽字: 年

30、月 日實驗名稱方程求根的迭代法實驗時間2012年11月29日學(xué)生姓名姚海保實驗地點9#405數(shù)學(xué)實驗室1、實驗所用軟件WIN7操作系統(tǒng)、Matlab2、實驗?zāi)康?.掌握二分法與牛頓法的基本原理及應(yīng)用2.掌握牛頓法、弦截法的程序設(shè)計并用具體例子加以實現(xiàn)3、實驗內(nèi)容(1)編寫二分法的主程序。(2)編寫牛頓切線法的MATLAB主程序(3)用牛頓切線法求方程在的近似根,要求精度.4、實驗方法、步驟1. 了解matlab的硬件和軟件必備環(huán)境;2. 啟動matlab; 3.學(xué)習(xí)一些簡單的matlab編程。 4.了解二分法與牛頓法的的基本原理及應(yīng)用。 5.了解牛頓法,弦截法的程序設(shè)計。6.編寫程序。5、實驗

31、數(shù)據(jù)記錄與分析(1)編寫程序如下:function k,x,wuca,yx=erfen(a,b,abtol)a(1)=a; b(1)=b; ya=fun(a(1); yb=fun(b(1); %程序中調(diào)用的fun.m 為函數(shù) if ya* yb>0, disp('注意:ya*yb>0,請重新調(diào)整區(qū)間端點a和b.'), returnendmax1=-1+ceil(log(b-a)- log(abtol)/ log(2); % ceil是向 方向取整for k=1: max1+1a;ya=fun(a); b;yb=fun(b); x=(a+b)/2; yx=fun(x)

32、; wuca=abs(b-a)/2; k=k-1;k,a,b,x,wuca,ya,yb,yxif yx=0a=x; b=x;elseif yb*yx>0b=x;yb=yx;elsea=x; ya=yx;endif b-a< abtol , return, endendk=max1; x; wuca; yx=fun(x);(2)編程如下:function k,xk,yk,piancha,xdpiancha=newtonqx(x0,tol,ftol,gxmax)x(1)=x0; for i=1: gxmax x(i+1)=x(i)-fnq(x(i)/(dfnq(x(i)+eps); p

33、iancha=abs(x(i+1)-x(i); xdpiancha= piancha/( abs(x(i+1)+eps); i=i+1;xk=x(i);yk=fnq(x(i); (i-1) xk yk piancha xdpianchaif (abs(yk)<ftol)&(piancha<tol)|(xdpiancha< tol) k=i-1; xk=x(i);(i-1) xk yk piancha xdpiancha return;endend if i>gxmax disp('請注意:迭代次數(shù)超過給定的最大值gxmax。') k=i-1; x

34、k=x(i);(i-1) xk yk piancha xdpiancha return;end (i-1),xk,yk,piancha,xdpiancha'(3)方程:在MATLAB工作窗口輸入程序>> k,xk,yk,piancha,xdpiancha=newtonqx(-0.4,0.001, 0.001,100)運行后輸出初始值的迭代結(jié)果.同理在MATLAB工作窗口輸入程序>> k,xk,yk,piancha,xdpiancha=newtonqx(0.9,0.001, 0.001,100)運行后輸出初始值x0=0.9的迭代結(jié)果.6、實驗結(jié)論通過本次試驗 掌握

35、了二分法與牛頓法的基本原理及應(yīng)用和牛頓法 弦截法的程序設(shè)計并能運用熟練舉出例子等。指導(dǎo)教師評語和成績評定 指導(dǎo)教師簽字: 年 月 日實驗名稱線性方程組的迭代法實驗時間2012年12月13日學(xué)生姓名姚海保實驗地點9#405數(shù)學(xué)實驗室1、實驗所用軟件WIN7操作系統(tǒng)、Matlab2、實驗?zāi)康脑O(shè)計程序?qū)崿F(xiàn)雅可比迭代法,高斯-賽德爾迭代法等算法。掌握方程求根的基本理論。并用實例在計算機上計算。3、實驗內(nèi)容(1)編寫用雅可比迭代解線性方程組的MATLAB主程序(2)編寫用高斯-塞德爾迭代定義解線性方程組的MATLAB主程序(3)用高斯-塞德爾迭代定義的MATLAB主程序解下列線性方程組,取初始值,要求當

36、時,迭代終止.4、實驗方法、步驟1. 了解matlab的硬件和軟件必備環(huán)境;2. 啟動matlab; 3.學(xué)習(xí)一些簡單的matlab編程。 4.了解雅可比迭代法,高斯-賽德爾迭代法等算法的原理。 5.了解雅可比迭代法,高斯-賽德爾迭代法等算法的程序設(shè)計。6.編寫程序。5、實驗數(shù)據(jù)記錄與分析(1)編寫程序如下function X=jacdd(A,b,X0,P,wucha,max1)n m=size(A); for j=1:ma(j)=sum(abs(A(:,j)-2*(abs(A(j,j);endfor i=1:nif a(i)>=0disp('請注意:系數(shù)矩陣A不是嚴格對角占優(yōu)的

37、,此雅可比迭代不一定收斂')returnendendif a(i)<0disp('請注意:系數(shù)矩陣A是嚴格對角占優(yōu)的,此方程組有唯一解,且雅可比迭代收斂 ')endfor k=1:max1k for j=1:mX(j)=(b(j)-A(j,1:j-1,j+1:m)*X0(1: j-1,j+1:m)/A(j,j);endX,djwcX=norm(X'-X0,P); xdwcX=djwcX/(norm(X',P)+eps); X0=X'X1=Ab;if (djwcX<wucha)&(xdwcX<wucha) disp(

38、9;請注意:雅可比迭代收斂,此方程組的精確解jX和近似解X如下:')returnendendif (djwcX>wucha)&(xdwcX>wucha)disp('請注意:雅可比迭代次數(shù)已經(jīng)超過最大迭代次數(shù)max1 ')enda,X=X;jX=X1',(2)編寫程序如下function X=gsdddy(A,b,X0,P,wucha,max1)D=diag(diag(A);U=-triu(A,1);L=-tril(A,-1); dD=det(D);if dD=0disp('請注意:因為對角矩陣D奇異,所以此方程組無解.')el

39、sedisp('請注意:因為對角矩陣D非奇異,所以此方程組有解.')iD=inv(D-L); B2=iD*U;f2=iD*b;jX=Ab; X=X0; n m=size(A);for k=1:max1X1= B2*X+f2; djwcX=norm(X1-X,P);xdwcX=djwcX/(norm(X,P)+eps);if (djwcX<wucha)|(xdwcX<wucha) return else k,X1',k=k+1;X=X1;endendif (djwcX<wucha)|(xdwcX<wucha) disp('請注意:高斯-塞德

40、爾迭代收斂,此A的分解矩陣D,U,L和方程組的精確解jX和近似解X如下: ') elsedisp('請注意:高斯-塞德爾迭代的結(jié)果沒有達到給定的精度,并且迭代次數(shù)已經(jīng)超過最大迭代次數(shù)max1,方程組的精確解jX和迭代向量X如下: ')X=X'jX=jX'endendX=X'D,U,L,jX=jX'(3)在MATLAB工作窗口輸入程序>> A=3 4 -5 7;2 -8 3 -2;4 51 -13 16;7 -2 21 3;b=5;2;-1;21;X0=0 0 0 0'X=gsdddy(A,b,X0,inf,0.001,

41、100)運行后輸出結(jié)果請注意:因為對角矩陣D非奇異,所以此方程組有解.請注意:高斯-塞德爾迭代的記過沒有達到給定的精度,并且迭代次數(shù)已經(jīng)超過最大迭代次數(shù)max1,方程組的精確解jX和迭代向量X如下: jX = 0.1821 -0.2571 0.7286 1.3036X = 1.0e+142 * 0.2883 0.1062 0.3622 -3.13746、實驗結(jié)論通過本次試驗,設(shè)計程序?qū)崿F(xiàn)了雅可比迭代法,高斯-賽德爾迭代法等算法。基本掌握方程求根的基本理論。并用實例在計算機上計算。實驗的結(jié)果與預(yù)期中的基本一樣,基本達到了實驗要求。指導(dǎo)教師評語和成績評定 指導(dǎo)教師簽字: 年 月 日實驗名稱線性方程

42、組的直接法實驗時間2012年12月20日學(xué)生姓名姚海保實驗地點9#405數(shù)學(xué)實驗室1、實驗所用軟件WIN7操作系統(tǒng)、Matlab2、實驗?zāi)康?.熟悉Gauss列主元消去法,編出實用程序。2.認識選主元技術(shù)的重要性。4.編制程序,用Gauss列主元消去法求解線性方程組。5.編制程序,用平方根法求解線性方程組三角方程組3、實驗內(nèi)容(1)編寫用列主元消元法解線性方程組的MATLAB程序(2)用列主元消元法解線性方程組的MATLAB程序解方程組.(3)編寫解上三角形線性方程組的MATLAB程序(4)用解上三角形線性方程組的MATLAB程序解方程組.4、實驗方法、步驟1. 了解matlab的硬件和軟件必備環(huán)境;2. 啟動matlab; 3.學(xué)習(xí)一些簡單的matlab編程。 4.了解Gauss列主元消去法的原理。5.編寫程序。5、實驗數(shù)據(jù)記錄與分析(

溫馨提示

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

評論

0/150

提交評論