[問題] 創造矩陣的問題..已回收

看板MATLAB作者 (Let's go cubbies)時間14年前 (2010/02/24 12:36), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
想請問一下版上的前輩. 我現在有 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)
文章代碼(AID): #1BXApceg (MATLAB)