數據存儲在文件AIRFOIL.MAT中。
它擁有4253對(x,y)網格點的坐標。
它還擁有一個包含12289對索引(i,j)的數組,指定網格點之間的毗連。
號令輸入窗口鍵入:
load airfoil
有限元網格。
起首,把x和y按2^(-32)縮放,使它們進入【0,1】規模。
然后形當作稀少鄰接矩陣并使其正定性。
號令窗口鍵入:
% Scaling x and y
x = pow2(x,-32);
y = pow2(y,-32);
% Forming the sparse adjacency matrix and making it positive definite
n = max(max(i),max(j));
A = sparse(i,j,-1,n,n);
A = A + A';
d = abs(sum(A)) + 1;
A = A + diag(sparse(d));
% Plotting the finite element mesh
gplot(A,[x y])
按”Enter“鍵。
得圖1所示。
可視化稀少模式。
SPY用于可視化稀少模式,SPY(A)繪制矩陣A的稀少模式。
號令行窗口鍵入:
spy(A)
title('The adjacency matrix.')
按”Enter“鍵。
得圖2所示。
對稱從頭排序-反標的目的Cuthill McKee
SYMRCM利用逆標的目的Cuthill-McKee手藝從頭排序鄰接矩陣。
r=SYMRCM(A)返回一個置換標的目的量r,使得A(r,r)傾標的目的于其對角線元素比A更接近對角線。
這是一個很好的LU或Cholesky分化來自“長,細”問題的矩陣的預排序。
它同時合用于對稱和非對稱A。
號令行鍵入:
r = symrcm(A);
spy(A(r,r))
title('Reverse Cuthill-McKee')
按”Enter“鍵。
得圖3所示。
對稱重排序-COLPERM。
利用j=COLPERM(A)返回一個擺列標的目的量,該標的目的量以非零計數的非遞減挨次從頭擺列稀少矩陣A的列。
這有時可以作為LU分化的預排序:LU(a(:,j))。
號令行鍵入:
j = colperm(A);
spy(A(j,j))
title('Column count reordering')
按”Enter“鍵。
得圖4所示。
對稱重排序符號。
給出了對稱近似最小度置換。
p=symmd(S),對于對稱正界說的矩陣a,返回置換標的目的量p,使得S(p,p)趨勢于具有比S更稀少的Cholesky因子。
有時symmd也合用于對稱不定矩陣。
號令行鍵入:
m = symamd(A);
spy(A(m,m))
title('Approximate minimum degree')
按”Enter“鍵。
得圖5所示。
END0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!