版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、實驗一用超松弛迭代法求解接地(jid)金屬槽內(nèi)電位分布實驗(shyn)內(nèi)容:試用超松弛迭代法求解接地金屬(jnsh)槽內(nèi)電位的分布。已知:,給定邊值如圖所示。給定初值:誤差范圍:計算迭代次數(shù),分布。一.實驗(shyn)思路由邊界條件用泊松方程的五點差分格式(g shi)求得中央點的點位。再以所得點及邊界再次利用泊松方程的五點差分格式求出另四個點,依照此方法求出其余點的電位分布。用最佳收斂因子的經(jīng)驗公式(gngsh)計算收斂因子。利用超松弛迭代法進行差分方程的求解,當遇到邊界是采用邊界值或者邊界差分格式。直到所有節(jié)點電位滿足誤差條件。二實驗設(shè)計原理:有限差分法有限差分法(Finite Diffe
2、rential Method)是基于差分原理的一種數(shù)值計算法。其基本思想:將場域離散為許多小網(wǎng)格,應用差分原理,將求解連續(xù)函數(shù)的泊松方程的問題換為求解網(wǎng)格節(jié)點上的差分方程組的問題。編程時將邊值編入到程序中,這樣可以省略輸入,從而直接輸入迭代因子進行求解,可以減少編程的難度。迭代時所用公式是和書上一樣,為aij=bij+w/4*(bi+1j+bij+1+aij-1+ai-1j-4*bij);其中(qzhng)a代表k+1,而b代表k。啟動輸出開始菜單(邊值都已經(jīng)給定)輸入迭代因子w迭代次數(shù)n=0n+ 開始循環(huán)迭代函數(shù)判斷相鄰二次差值是否小于給定值輸出n,電位aij終止三、程序運行界面(jimin
3、)及結(jié)果四源程序代碼(di m)#include#include#includeusing namespace std;classoverrei /over-relaxation iterative methodprivate:intm,n;doublex,e;double *p,*q;public:int k;overrei(int m0,int n0,double e0)inti;e=e0;k=0;m=m0;n=n0;p=new double *m;for(i=0;im;i+)pi=new doublen;q=new double *m;/迭代(di di)因子求解for(i=0;im;i
4、+)qi=new doublen;if(m=n)x=2/(1+sin(3.141592654/(m-1);elsex=2-3.141592654*sqrt(2)*sqrt(1/(m-1)*(m-1)+1/(n-1)*(n-1);cout最佳收斂(shulin)因子:xendl;void Initialization(); /賦邊界條件void Cal(); /計算(j sun)void Diedai(); /迭代函數(shù)void Show(); /輸出部分;void overrei:Initialization() /賦邊界條件inti,j; for(i=0;im;i+) /邊界條件for(j=0
5、;jn;j+)if(i=0)pij=100; qij=100;elsepij=0;qij=0;cout初始(ch sh)點位:endl;Show();void overrei:Cal() /計算(j sun)inti,j;int c=1;while(1) c=1;for(i=0;im;i+)for(j=0;je|(qij-pij)e) /相鄰兩次迭代(di di)誤差是否小于1e-5c=0;break;if(c=0) break;if(c=1 & k!=0) break;Diedai();void overrei:Diedai() /迭代函數(shù)inti,j;double y=x/4;if(k%2
6、)for(i=1;im-1;i+)for(j=1;jn-1;j+)qij=pij+y*(qi-1j+qij-1+pi+1j+pij+1-4*pij);elsefor(i=1;im-1;i+)for(j=1;jn-1;j+)pij=qij+y*(pi-1j+pij-1+qi+1j+qij+1-4*qij);k+;void overrei:Show() /輸出(shch)部分inti,j;for(i=0;im;i+)for(j=0;jn;j+)coutsetw(12)setprecision(6)fixedqijends;coutendl;int main()cout *endl;cout 超松弛
7、迭代法求解接地(jid)金屬槽內(nèi)電位的分布endl;cout *endl;overrei A(5,5,1e-5);A.Initialization();A.Cal();cout電位(din wi)分布:endl;A.Show();cout迭代次數(shù):A.kendl;return 0;實驗(shyn)二按對稱(duchn)場差分格式求解電位的分布一.實驗(shyn)思路只計算一半的區(qū)域,對另一半進行對稱性計算,減小計算量。選取(xunq)二維數(shù)組,同樣是兩個數(shù)組a4141、b4141,分別用于表示(biosh)迭代前后的取值。由此對第20列進行(jnxng)特殊處理。即第21列是和第20列相等的,
8、因為在第21列上標注了/x=0,即要求每次迭后都要求u1i20=u1i19,其余則同前。當計算出了前21列的電位值時,根據(jù)對稱性可得到右半邊的電位值,即要求u1i40-j=u1ij;,直接賦值。四周的電位值依舊保持不變,不能夠參與迭代。并且中間對稱列上的電位值為零,故也不參與迭代。由題意可知,只有第1列到第20列參與迭代。在進行精度計算時,用數(shù)組b的值與相應數(shù)組a里的值進行比較,沒迭代一次都要進行比較。如果在誤差允許的范圍內(nèi),則繼續(xù)迭代;當超過誤差標準的時候則停止迭代。依舊按照比較得到最少收斂次數(shù)的方法在程序中計算出最佳收斂因子。然后對對稱列右邊的點進行對稱賦值。最后輸出輸出最佳迭代因子、迭代
9、的次數(shù)和迭代后各相應點的電位值。二.源程序代碼#include#include#includevoidmain()doubleu14141,u24141;intflag=10000,i,j,e,n;doublea,d;/a最佳加速收斂因子for(j=0;j41;j+)u10j=100;u140j=0;for(i=1;i40;i+)u1i0=0;u1i40=0;for(i=1;i40;i+)/內(nèi)部點賦初值for(j=1;j21;j+)u1ij=2.5*(j-1);cout迭代前左半?yún)^(qū)域各電位點上的初始值:endl;for(i=0;i41;i+)for(j=0;j21;j+)coutu1ij;/輸
10、出迭代初值coutendl;coutendln;for(d=1;d2;d+=0.01)/取迭代次數(shù)最少的加速收斂因子n=0;for(j=0;j41;j+)u10j=100;u140j=0;for(i=1;i40;i+)u1i0=0;u1i40=0;for(i=1;i40;i+)for(j=1;j21;j+)u1ij=2.5*(j-1);do/迭代x次for(i=0;i41;i+)for(j=0;j22;j+)u2ij=u1ij;for(i=1;i40;i+)for(j=1;j20;j+)u1ij=u2ij+(d/4)*(u2i+1j+u2ij+1+u1i-1j+u1ij-1-4*u2ij);u
11、1i20=u1i19;for(i=1;i40;i+)/判斷精度for(j=1;j1e-5)e=1;break;elsee=0;if(e=1)break;n+;/迭代次數(shù)while(e);if(nflag)flag=n;a=d;for(i=1;i40;i+)/對其對稱點賦值for(j=1;j21;j+)u1i40-j=u1ij;cout迭代后各節(jié)點上最終電位近似值:endl;for(i=0;i41;i+)for(j=0;j41;j+)coutsetiosflags(ios:fixed)setprecision(5)setw(8)u1ij;/對齊輸出coutendl;coutendlendl;co
12、ut收斂因子:aendl;coutendl;cout迭代次數(shù):flagendl;coutendl; 三.程序運行界面(jimin)及結(jié)果附錄(fl):程序(chngx)一:#include#includevoid main()double m55,n55;int N=0,b=1;inti,j;double e=0.00001;double a=2/(1+sin(3.1415926/4);for(i=0;i=4;i+)for(j=0;j=0;j-)for(i=0;i=4;i+)coutmij=mijt;coutendl;while(b=1)b=0;N=N+1;for(i=1;i=3;i+)for
13、(j=1;j=3;j+)mij=mij+a*(mi-1j+mij-1+mi+1j+mij+1-4*mij)/4;for(i=1;i=3;i+)for(j=1;j=e)b=1;nij=mij;for(j=4;j=0;j-)for(i=0;i=4;i+)coutmij=mijt;coutendl;cuntN=Nendl;程序(chngx)二:#include#include#includeusing namespace std;classoverrei /over-relaxation iterative methodprivate:intm,n;doublex,e;double *p,*q;pu
14、blic:int k;overrei(int m0,int n0,double e0)inti;e=e0;k=0;m=m0;n=n0;p=new double *m;for(i=0;im;i+)pi=new doublen;q=new double *m;/迭代因子(ynz)求解for(i=0;im;i+)qi=new doublen;if(m=n)x=2/(1+sin(3.141592653/(m-1);elsex=2-3.141592653*sqrt(2)*sqrt(1/(m-1)*(m-1)+1/(n-1)*(n-1);cout最佳收斂(shulin)因子:xendl;void Init
15、ialization(); /賦邊界條件void Cal(); /計算(j sun)void Diedai(); /迭代(di di)函數(shù)void Show(); /輸出部分;void overrei:Initialization()inti,j; /邊界條件for(i=0;im;i+)for(j=0;jn;j+)if(i=0)pij=100; qij=100;elsepij=0;qij=0;cout初始點位:endl;Show();voidoverrei:Cal()inti,j;int c=1;while(1) c=1;for(i=0;im;i+)for(j=0;je|(qij-pij)e)
16、c=0;break;if(c=0) break;if(c=1 & k!=0) break;Diedai();voidoverrei:Diedai()inti,j;double y=x/4;if(k%2)for(i=1;im-1;i+)for(j=1;jn-1;j+)qij=pij+y*(qi-1j+qij-1+pi+1j+pij+1-4*pij);elsefor(i=1;im-1;i+)for(j=1;jn-1;j+)pij=qij+y*(pi-1j+pij-1+qi+1j+qij+1-4*qij);k+;voidoverrei:Show()inti,j;for(i=0;im;i+)for(j
17、=0;jn;j+)coutsetw(12)setprecision(6)fixedqijends;coutendl;int main()cout *endl;cout 超松弛(sn ch)迭代法求解接地金屬槽內(nèi)電位的分布endl;cout *endl;overrei A(5,5,1e-6);A.Initialization();A.Cal();cout電位(din wi)分布:endl;A.Show();cout迭代(di di)次數(shù):A.kendl;return 0;程序三#include#includeinti,j,N=0;/N為迭代次數(shù)doubleu155;/定義電位doubleu255
18、;doublee=0.00001;/誤差范圍doublea=1.5;/加速收斂因子intfinish();/迭代結(jié)束函數(shù)intNresult();/求解迭代次數(shù)voidprint();voidmain()if(i=4)for(j=0;j5;j+)u1ij=100;/邊界值elseu1ij=0;N=Nresult();print();voidprint()cout迭代次數(shù)為:Nendl;for(j=0;j5;j+)coutu24jt;coutendl;for(j=0;j5;j+)coutu23jt;coutendl;for(j=0;j5;j+)coutu22jt;coutendl;for(j=0
19、;j5;j+)coutu21jt;coutendl;for(j=0;j5;j+)coutu20jt;coutendl;intfinish()doubleb;b=u2ij-u1ij;if(-eb)&(be)return1;elsereturn0;intNresult()doN+;for(i=1;i4;i+)for(j=1;j4;j+)u1ij=u2ij;for(j=1;j4;j+) u21j=u11j+a/4*(u20j+u21j-1+u12j+u11j+1-4*u11j);u1ij=u2ij;for(j=1;j4;j+) u22j=u12j+a/4*(u21j+u22j-1+u13j+u12j
20、+1-4*u12j);u1ij=u2ij;for(j=1;j4;j+) u23j=u13j+a/4*(u22j+u23j-1+u14j+u13j+1-4*u13j);u1ij=u2ij;while(finish()=0);returnN; 程序(chngx)四#include#include#includeusingnamespacestd;classcscddprivate:intm,n;doublex,e;double*p,*q;public:intk;cscdd(intm0,intn0,doublee0)inti;e=e0;k=0;m=m0;n=n0;p=newdouble*m;for(
21、i=0;im;i+)pi=newdoublen;q=newdouble*m;for(i=0;im;i+)qi=newdoublen;if(m=n) x=2/(1+sin(3.141592654/(m-1);elsex=2-3.141592654*sqrt(2)*sqrt(1/(m-1)*(m-1)+1/(n-1)*(n-1);cout最佳(zu ji)收斂因子:xendl;voidbjtj();/賦邊界條件voidjishuan();/計算(j sun)voidDiedai();/迭代函數(shù)voidsuchu();/輸出部分;voidcscdd:bjtj()/賦邊界條件inti,j;for(i=0;im;i+)/邊界條件for(j=0;jn;j+)if(i=0)pij=100;qij=100;elsepij=0;qij=0;cout初始點位:endl;suchu();voidcscdd:jishuan()/計算inti,j;intc=1;while(1)c=1;for(i=0;im;i+) for(j=0;je|(qij-pij)e)/相鄰兩次
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《電磁學電磁場》課件
- 《奧美品牌管理價值》課件
- 2024屆山西省大同市云州區(qū)高三上學期期末考試歷史試題(解析版)
- 單位管理制度集合大全人力資源管理十篇
- 單位管理制度集粹匯編【職員管理】十篇
- 單位管理制度匯編大合集【職員管理篇】
- 單位管理制度合并匯編【人力資源管理篇】
- 單位管理制度范例匯編人力資源管理篇
- 單位管理制度呈現(xiàn)匯編員工管理篇
- 單位管理制度呈現(xiàn)大全人力資源管理篇十篇
- 2022年部編版四年級道德與法治上冊全冊教案
- 廠房(鋼結(jié)構(gòu)框架)工程施工組織設(shè)計施工組織設(shè)計DOC
- 人教版新目標九年級英語全冊教案
- 幼兒園教學課件——我是哥哥姐姐
- 國內(nèi)異形盾構(gòu)機分析課件
- 喚醒孩子內(nèi)驅(qū)力家校共育家庭教育PPT課件(帶內(nèi)容)
- 合成氣精脫硫催化劑的研究報告
- 滾裝客船貨物的積載綁扎系固分解課件
- 中控樓裝飾裝修方案
- 學校及周邊環(huán)境集中整治工作臺帳
- 江蘇省城市設(shè)計編制導則
評論
0/150
提交評論