這是非穩態一維熱傳導的方法,也叫古典顯格式。
如果是做數學建模,就別用了,這種方法計算量比較大,算的很慢,而且收斂不好。
但是如果實在沒辦法也能湊合用。
該改的地方我都用???代替了。
給個詳細解釋
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下的動力學方程總結 斜盤式軸向柱塞幫浦是一類常見的柱塞幫浦,本文以 型斜盤式軸向柱塞幫浦為研究物件,研究幫浦內機械振動的傳遞問題。由於該幫浦傳動軸與缸體之間為過盈配合,且柱塞滑靴元件位於缸體的柱塞腔內,因此,將傳...