求解熱傳導方程matlab

2022-05-31 09:42:10 字數 1661 閱讀 7190

這是非穩態一維熱傳導的方法,也叫古典顯格式。

如果是做數學建模,就別用了,這種方法計算量比較大,算的很慢,而且收斂不好。

但是如果實在沒辦法也能湊合用。

該改的地方我都用???代替了。

給個詳細解釋

1 function rechuandao() %

23 llist =???

4 n = 1000; %空間點數

5 m = 10000

;6 alfa = ??? % 導熱 / (密度*比熱)

7 lambda = 0.4; %穩定條件

8 %************

9 zone=llist(1)/n;%空間步長

10 z=0:zone:llist(1);%空間點座標陣列

11 z=z'

;%矩陣轉置

1213 n = lambda * (llist(1)/n)^2 / alfa(1

);14

15 tm = m * n; %總時間

1617 t=0:n:tm; %時間點座標陣列

18 t=t'

; %矩陣轉置

1920 %計算初值和邊值

21 t=zeros(n+1,m+1); %賦溫度矩陣初值

22 ti=init_fun(z); %各空間點處的初始條件

23 to=border_funo(t); %內邊界條件

24 te=border_fune(t); %外邊界條件

25 t(:,1)=ti; %(初始條件 溫度都為37)

26 t(1,:)=to; %(邊界條件x=0處溫度為)

27 t(n+1,:)=te; %(邊界條件x=l 處溫度為)

2829 %用差分法求出溫度t與桿長l、時間t的關係

30for k=1:m %時間點數

31 n=2;32

while n<=n %空間點數

33 t(n,k+1)=lambda*(t(n+1,k)+t(n-1,k))+(-2*lambda+1)*t(n,k);

34 n=n+1;35

end36

end37 %設定立體網格

38for i=1:m+1

39 x(:,i)=z;

40end

41for j=1:n+1

42 y(j,:)=t;

43end

44mesh(x,y,t);

45 view([1 -1

1]);

46 xlabel('長度'

);47 ylabel('時間'

);48 zlabel('溫度'

);49 csvwrite('

csv.csv

',t)

5051 function y=init_fun(z)%初值條件

52 y=???

53return

5455 function y=border_funo(t)%z=0的邊界條件

56 y=???

57return

5859 function y=border_fune(t)%z=l的邊界條件

60 y=???

61return

62 %

數值計算求解動態熱傳導方程

和求解靜態熱傳導方程不同的是,動態代表溫度會隨時間而變化,這就要用到之前學的幾個初值函式,先來複習一下這幾個初值函式 function lhs,rhs ost theta,timestep,m,b,c,sol lhs m theta timestep b 1 rhs m 1 theta timest...

Matlab 非線性熱傳導(拋物方程)問題

函式檔案1 real fun.m 1 function f real fun x0,t0 2 精確解 3 f 4 x0 1 x0 sin t0 函式檔案2 f.m 1 function f f n,u,u,t,h1,h2 2 非線性方程組 3 h1是x的步長,h2是t的步長 4 u表示迭代節點,上一...

matlab求解振動方程

看了一篇柱塞幫浦離散化動力學建模的文章,感覺還挺有意思,於是嘗試做一下 二 matlab下的動力學方程總結 斜盤式軸向柱塞幫浦是一類常見的柱塞幫浦,本文以 型斜盤式軸向柱塞幫浦為研究物件,研究幫浦內機械振動的傳遞問題。由於該幫浦傳動軸與缸體之間為過盈配合,且柱塞滑靴元件位於缸體的柱塞腔內,因此,將傳...