还剩4页未读,继续阅读
文本内容:
羂膀膂莆羈腿莅薂袄膈蒇蒅螀膇膇蚀蚆膆艿蒃羅膅莁蚈袁芅蒄蒁螇芄膃蚇蚃芃芅蒀肁节蒈螅羇芁薀薈袃芀芀螃蝿袇莂薆蚅袆蒄螂羄羅膄薄袀羄芆螀螆羃荿薃蚂羃薁莆肁羂芁蚁羆羁莃蒄袂羀蒅虿螈罿膅蒂蚄肈芇蚈羃肇荿蒀衿肇蒂蚆袅肆芁葿螁肅莄螄蚇肄蒆薇羆肃膆螂袂肂芈薅螈膁莀螁蚄膁蒃薄羂膀膂莆羈腿莅薂袄膈蒇蒅螀膇膇蚀蚆膆艿蒃羅膅莁蚈袁芅蒄蒁螇芄膃蚇蚃芃芅蒀肁节蒈螅羇芁薀薈袃芀芀螃蝿袇莂薆蚅袆蒄螂羄羅膄薄袀羄芆螀螆羃荿薃蚂羃薁莆肁羂芁蚁羆羁莃蒄袂羀蒅虿螈罿膅蒂蚄肈芇蚈羃肇荿蒀衿肇蒂蚆袅肆芁葿螁肅莄螄蚇肄蒆薇羆肃膆螂袂肂芈薅螈膁莀螁蚄膁蒃薄羂膀膂莆羈腿莅薂袄膈蒇蒅螀膇膇蚀蚆膆艿蒃羅膅莁蚈袁芅蒄蒁螇芄膃蚇蚃芃芅蒀肁节蒈螅羇芁薀薈袃芀芀螃蝿袇莂薆蚅袆蒄螂羄羅膄薄袀羄芆螀螆羃荿薃蚂羃薁莆肁羂芁蚁羆羁莃蒄袂羀蒅虿螈罿膅蒂蚄肈芇蚈羃肇荿蒀衿肇蒂蚆袅肆芁葿螁肅莄螄蚇肄蒆薇羆肃膆螂袂肂芈薅螈膁莀螁蚄膁蒃薄羂膀膂莆羈腿莅薂袄膈蒇蒅螀膇膇蚀蚆膆艿蒃羅膅莁蚈袁芅蒄蒁螇芄膃蚇蚃芃芅第九章偏微分方程式PartialDifferentialEquations本章探討基本偏微分方程式HeatEquationW__eEquationLapla__sEquation的數值解.在本章中包含__tlab的m-file
1.heateq.m
2.lapla__q.m將須要的m-file之檔案夾加入搜尋路徑中pathc:\__tlabr11\work\numericalpath註:如果你有安裝__tlabNotebook要執行下列input__lls綠色指令敘述之前必須先執行上面的__ll–[path…]藍色的內容是__tlab[output__lls]
1.heateq.m–利用finitedifferen__的模式解uxxxt=utxtwithu0t=u1t=0ux0=sinπxuxt+k=σux+ht+1-2σuxt+σux-htσ=k/h2h=1/nk=1/mand1-2σ≧0顯示heateq.m的內容typeheateq.mfunction[rserr]=heateqnmxt%usefinitedifferen__tosolveheatequation%byformulauxt+k=sig__ux+ht+1-2sig__uxt%+sig__ux-ht%sig__=k/h^2h=x/nk=t/mand1-2sig__=
0.%rsrepresentsthecomputingvalueuxt%errrepresentstheerrorwithexactsolutionh=x/n;k=t/m;u=zeros1n+1;u1=0;un+1=0;v=zeros1n+1;v1=0;vn+1=0;er=zeros1n+1;er1=0;ern+1=0;rs=[];err=[];fori=2:nxh=i-1*h*pi;ui=sinxh;endforj=2:m+1fori=2:nvi=ui-1+ui+1/2;%generatenextuxt+kendrs=[rs;v];th=j-1*k;fori=2:nxh=i-1*h*pi;eri=exp-pi^2*th*sinxh-vi;enderr=[err;er];fori=2:nui=vi;endend%forj%return例題1:針對初值ux0=sinπx取n=10m=20計算uxt在區域
[01]*[
00.1]之數值解其真實解為uxt=e^-π2tsinπx利用上面的函數得到節點的近似解與誤差n=10;m=20;x=1;t=
0.1;[uxterr]=heateqnmxt;我們準備把uxt圖形畫出來clf;[xxtt]=meshgrid0:
0.1:10:
0.005:
0.1;u=exp-pi^2*tt.*sinpi*xx;surfxxttu;xlabelx-axis;ylabelt-axis;zlabelu-axis;針對某個固定t=tj值我們把曲線uxtj與上面利用heateq.m得到近似值uxtxtj的點畫出來tj=
0.05;x=0:
0.1:1;ut=exp-pi^2*tj*sinpi*x;plotxutxuxt10:r*圖形顯示執行結果還不錯
2.lapla__q.m–利用finitedifferen__5-pointformula的模式解uxxxy+uyyxy+fxy*uxy=gxyonaregionRwithuxy=qxyontheboundaryofR.5-pointformula公式如下:–ui+1j–uj-1j–uij+1–uij-1+4-h2fijuij=-h2gij;並且利用Gauss-Seideliteration計算uijuk+1ij=1/4-h2fijuki+1j+uk+1j-1j+ukij+1–uk+1ij-1-h2gij顯示heateq.m的內容typelapla__q.mfunction[ruerr]=lapla__qxabyabnxnyi__x%usefinitedifferen__tosolveLapla__sequation%by5-pointformulaanduseGauss-Seideliteration%tocomputeuxy.%rsrepresentsthecomputingvalueuxy%errrepresentstheerrorwithexactsolutionh=xab2-xab1/nx;u=zerosnx+1ny+1;forj=1:ny+1y=yab1+j-1*h;u1j=bndyxab1y;%x-boundaryunx+1j=bndyxab2y;endfori=1:nx+1x=xab1+i-1*h;ui1=bndyxyab1;%y-boundaryuiny+1=bndyxyab2;endforj=2:nyy=yab1+j-1*h;%generateinitialguessfori=2:nxx=xab1+i-1*h;uij=ustartxy;endend%callGauss-Seideltogeneratenewuxyru=seidelxab1yab1nxnyhi__xu;%computeerrorforj=1:ny+1y=yab1+j-1*h;fori=1:nx+1x=xab1+i-1*h;errij=absruij-trueSolxy;endend%functionr=fxyr=-25;%functionr=gxyr=0;%functionr=bndyxyr=trueSolxy;%functionr=ustartxyr=1;%functionr=trueSolxyr=cosh5*x+cosh5*y/2*cosh5;%functionru=seidelaxaynmhi__xu%seidelreturnsnewuxyafteri__xiterations%fork=1:i__xforj=2:my=ay+j-1*h;fori=2:nx=ax+i-1*h;v=ui+1j+ui-1j+uij+1+uij-1;uij=v-h*h*gxy/4-h*h*fxy;endendendru=u;例題2:針對下面的橢圓型邊界值問題我們利用上述的lapla__q.m來計算數值解▽2uxy–25uxy=0insideRunitsquareuxy=qxyonthebounaryofRqxy=cosh5x+cosh5y/2cosh5此為真實解我們在xy軸各取9個點8個區間.xab=
[01];yab=xab;%unitsquarenx=8;ny=8;i__x=20;[uxyerr]=lapla__qxabyabnxnyi__xuxy=Columns1through
70.
01350.
01480.
01950.
02920.
04810.
08360.
15010.
01480.
01710.
02230.
03240.
05140.
08710.
15370.
01950.
02230.
02780.
03810.
05730.
09300.
15950.
02920.
03240.
03810.
04850.
06770.
10340.
16990.
04810.
05140.
05730.
06770.
08700.
12270.1__
20.
08360.
08710.
09300.
10340.
12270.
15850.
22500.
15010.
15370.
15950.
16990.1__
20.
22500.
29150.
27440.
27780.
28320.
29340.
31260.
34830.
41500.
50670.
50810.
51270.
52250.
54130.
57680.6433Columns8through
90.
27440.
50670.
27780.
50810.
28320.
51270.
29340.
52250.
31260.
54130.
34830.
57680.
41500.
64330.
53870.
76770.
76771.0000err=Columns1through
7000000000.
00090.
00150.
00180.
00200.
00220.
002300.
00150.
00240.
00290.
00320.
00340.
003500.
00180.
00290.
00360.
00390.
00410.
004100.
00200.
00320.
00390.
00430.
00460.
004500.
00220.
00340.
00410.
00460.
00490.
004800.
00230.
00350.
00410.
00450.
00480.
004900.
00200.
00290.
00330.
00360.
00390.00400000000Columns8through
9000.
002000.
002900.
003300.
003600.
003900.
004000.0034000執行結果與課本上的資料大致相同取h=1/8大約正確到小數點第二位.我們準備把uxy圖形畫出來clf;[xy]=meshgrid0:
0.125:10:
0.125:1;[xxyy]=meshgrid0:
0.1:10:
0.1:1;uu=cosh5*xx+cosh5*yy./2*cosh5;surfxxyyuu;xlabelx-axis;ylabely-axis;zlabelu-axis;holdon;plot3xyuxy.__rkerSize15;holdoff羅蒇蚈袄膁莃蚇羆羄艿螆蚆腿膅莃螈羂肁莂袀膈蒀莁蚀羀莆莀螂芆节荿袅聿膈莈羇袁蒆莈蚇肇莂蒇蝿袀芈蒆袁肅膄蒅薁袈肀蒄螃膄葿蒃袅羆莅蒂羈膂芁蒂蚇羅膇蒁螀膀肃薀袂羃莂蕿薂膈芈薈蚄羁芄薇袆芇膀薆罿聿蒈薆蚈袂莄薅螁肈芀薄袃袁膆蚃薃肆肂蚂蚅衿莁蚁螇肄莇蚁罿袇芃蚀虿膃腿虿螁羅蒇蚈袄膁莃蚇羆羄艿螆蚆腿膅莃螈羂肁莂袀膈蒀莁蚀羀莆莀螂芆节荿袅聿膈莈羇袁蒆莈蚇肇莂蒇蝿袀芈蒆袁肅膄蒅薁袈肀蒄螃膄葿蒃袅羆莅蒂羈膂芁蒂蚇羅膇蒁螀膀肃薀袂羃莂蕿薂膈芈薈蚄羁芄薇袆芇膀薆罿聿蒈薆蚈袂莄薅螁肈芀薄袃袁膆蚃薃肆肂蚂蚅衿莁蚁螇肄莇蚁罿袇芃蚀虿膃腿虿螁羅蒇蚈袄膁莃蚇羆羄艿螆蚆腿膅莃螈羂肁莂袀膈蒀莁蚀羀莆莀螂芆节荿袅聿膈莈羇袁蒆莈蚇肇莂蒇蝿袀芈蒆袁肅膄蒅薁袈肀蒄螃膄葿蒃袅羆莅蒂羈膂芁蒂蚇羅膇蒁螀膀肃薀袂羃莂蕿薂膈芈薈蚄羁芄薇袆芇膀薆罿聿蒈薆蚈袂莄薅螁肈芀薄袃袁膆蚃薃肆肂蚂蚅衿莁蚁螇肄莇蚁罿袇芃蚀虿膃腿虿螁羅蒇蚈袄膁莃蚇羆羄艿螆蚆腿膅莃螈羂肁莂袀膈蒀莁蚀羀莆莀螂芆节荿袅聿膈莈chapter9page6。