matlab中如何表示“稀疏矩阵的图形“

这个例子显示了一个美国航天局翼型的有限元网格,包括两个拖曳襟翼 。
需要这些哦
电脑
matlab软件
方式/
1数据存储在文件AIRFOIL.MAT中 。
它拥有4253对(x,y)网格点的坐标 。
它还拥有一个包含12289对索引(i,j)的数组,指定网格点之间的毗连 。

号令输入窗口键入:
load airfoil

2有限元网格 。

起首,把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])

3按”Enter“键 。
得图1所示 。

matlab中如何表示“稀疏矩阵的图形“

文章插图

4可视化稀少模式 。
SPY用于可视化稀少模式,SPY(A)绘制矩阵A的稀少模式 。
号令行窗口键入:
spy(A)
title('The adjacency matrix.')

5按”Enter“键 。
得图2所示 。
matlab中如何表示“稀疏矩阵的图形“

文章插图

6对称从头排序-反标的目的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')

7按”Enter“键 。
得图3所示 。
matlab中如何表示“稀疏矩阵的图形“

文章插图

8对称重排序-COLPERM 。
利用j=COLPERM(A)返回一个摆列标的目的量,该标的目的量以非零计数的非递减挨次从头摆列稀少矩阵A的列 。
【matlab中如何表示“稀疏矩阵的图形“】这有时可以作为LU分化的预排序:LU(a(:,j)) 。

号令行键入:
j = colperm(A);
spy(A(j,j))
title('Column count reordering')

9按”Enter“键 。
得图4所示 。
matlab中如何表示“稀疏矩阵的图形“

文章插图

10对称重排序符号 。
给出了对称近似最小度置换 。
p=symmd(S),对于对称正界说的矩阵a,返回置换标的目的量p,使得S(p,p)趋势于具有比S更稀少的Cholesky因子 。
有时symmd也合用于对称不定矩阵 。

号令行键入:
m = symamd(A);
spy(A(m,m))
title('Approximate minimum degree')

11按”Enter“键 。
得图5所示 。
matlab中如何表示“稀疏矩阵的图形“

文章插图

原作者:matlab教程举报
以上内容就是matlab中如何表示“稀疏矩阵的图形“的内容啦,希望对你有所帮助哦!

推荐阅读