数据存储在文件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所示。
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!