有限差分法MATLAB程式

2021-08-19 04:55:13 字數 1648 閱讀 9843

設有乙個長直接地金屬矩形槽,長a=40,寬b=20,其側壁與底面電位均為零,頂蓋電位為100v(相對值),求槽內電位分布。

利用高斯迭代求解**如下(相鄰兩次迭代值最大允許誤差為0.001):

a=zeros(21,41);

a(1,:)=100;

b=zeros(19,39);

c=eye(19,39);

count=1;

d=0;

while(count==1)

m=0;

for i=2:1:20

for j=2:1:40

b(i-1,j-1)=a(i,j);

a(i,j)=0.25*(a(i-1,j)+a(i+1,j)+a(i,j-1)+a(i,j+1));

c(i-1,j-1)=abs(a(i,j)-b(i-1,j-1));

if(c(i-1,j-1)<0.001)

for k=1:1:19

for n=1:1:39

if(c(k,n)<0.00001)

m=m+1;

else

m=0;

break;

endend

if(m==0)

break;

endif(m==741)

count=0;

endend

endif(count==0)

break;

endend

if(count==0)

break;

endend

d=d+1;

endd

a

利用超鬆弛法程式如下:

d=zeros(1,10);

h=0;

for e=1:0.1:1.9

a=zeros(21,41);

a(1,:)=100;

b=zeros(19,39);

c=eye(19,39);

count=1;

g=0;

while(count==1)

m=0;

for i=2:1:20

for j=2:1:40

b(i-1,j-1)=a(i,j);

a(i,j)=a(i,j)+e*0.25*(a(i-1,j)+a(i+1,j)+a(i,j-1)+a(i,j+1)-4*a(i,j));

c(i-1,j-1)=abs(a(i,j)-b(i-1,j-1));

if(c(i-1,j-1)<0.001)

for k=1:1:19

for n=1:1:39

if(c(k,n)<0.001)

m=m+1;

else

m=0;

break;

endend

if(m==0)

break;

endif(m==741)

count=0;

endend

endif(count==0)

break;

endend

if(count==0)

break;

endend

g=g+1;

endh=h+1;

ed(1,h)=g;

endd

有限元法 有限差分法 有限體積法

有限元法也叫有限單元法 finite element method,fem 是隨著電子計算機的發展而迅速發展起來的一種彈性力學問題的數值求解方法。五十年代初,它首先應用於連續體力學領域 飛機結構靜 動態特性分析中,用以求得結構的變形 應力 固有頻率以及振型。由於這種方法的有效性,有限單元法的應用已從...

有限元法,有限差分法和有限體積法的區別

原文 有限差分方法 fdm 是計算機數值模擬最早採用的方法,至今仍被廣泛運用。該方法將 求解域劃分為差分網格,用有限個網格節點代替連續的求解域。有限差分法以taylor級 數展開等方法,把控制方程中的導數用網格節點上的函式值的差商代替進行離散,從而 建立以網格節點上的值為未知數的代數方程組。該方法是...

有限元法,有限差分法和有限體積法的區別

有限差分方法 fdm 是計算機數值模擬最早採用的方法,至今仍被廣泛運用。該方法將求解域劃分為差分網格,用有限個網格節點代替連續的求解域。有限差分法以taylor級數展開等方法,把控制方程中的導數用網格節點上的函式值的差商代替進行離散,從而建立以網格節點上的值為未知數的代數方程組。該方法是一種直接將微...