[問題] 創造矩陣的問題..已回收
想請問一下版上的前輩.
我現在有 i 個方程式長成下面這樣.
Aw*Φ1+Ap*Φ2+Ae*Φ3=0
Aw*Φ2+Ap*Φ3+Ae*Φ4=0
Aw*Φ3+Ap*Φ4+Ae*Φ5=0
Aw*Φ4+Ap*Φ5+Ae*Φ6=0
.
.
.
Aw* Φi-1 + Ap* Φi + Ae* Φi+1 =0
用矩陣解法是 A * Φ = B ; Φ=inv(A)* B
Ap Ae 0 0 0 | Φ2
Aw Ap Ae 0 0 | Φ3
0 Aw Ap Ae 0 | Φ4
0 0 Aw Ap 0 | Φ5
0 . |* . = B
. . | .
. . | .
. .Ae | .
0 Aw Ap | Φi
Aw,Ap,Ae 都是常數.
B的話有邊界值 B1 和 Bi, B2~ Bi=0
所以數學上應該是可以解出Φ值的.
想請問一下版上有經驗的前輩..這樣的矩陣應該要怎麼寫呢..?
謝謝回答.
________________________________________________________________________
自問自答...
不過我用了個蠢方法.
因為只有台筆電在身邊..
這樣搞當deltaX=0.001的時候..
Matlab 就直接擋給我看了...>"<~~
1000x1000的矩陣好像太大了...@@~
不知道版上的前輩有沒有更好的方法呢...??
clc
clear all
close all
deltaX=0.01;
X=[0:deltaX:1];
n=(1-0)/deltaX;
N=n+1;
rho=1;
u=1;
Gamma=1/50;
L=1;
% FDS Convection - CDS Diffusion
% For AP
for i=1:N
for j=1:N
App1(i,j)=-rho*u+(2*Gamma/deltaX);
Ap1=diag(diag(App1));
end
end
% For Aw & Ae
for i=1:N-1
for j=1:N-1
Aww1(i,j)=-Gamma/(deltaX);
Aw1=diag(diag(Aww1),-1);
Aee1(i,j)=rho*u-Gamma/deltaX;
Ae1=diag(diag(Aee1),1);
end
end
% For B1 Matrix
for i=2:N-1
B1(1,1)=0;
B1(i,1)=0;
B1(N,1)=1;
end
A1=Aw1+Ap1+Ae1; Ainv1=inv(A1); Phi1=Ainv1*B1;
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 130.191.146.79
※ 編輯: Jerryamd 來自: 130.191.146.197 (02/25 10:29)