You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中构造2×2块反对角对称稀疏矩阵?

构造块对称稀疏矩阵并使用eigsh求解特征值

我们需要基于稠密矩阵A构造形如[[0, A], [A^T, 0]]的对称块稀疏矩阵,再利用scipy的稀疏线性代数工具求解特征值与特征向量,以下是完整代码示例:

步骤1:导入依赖库

import numpy as np
import scipy.sparse as sp
from scipy.sparse.linalg import eigsh

步骤2:生成示例稠密矩阵

# 生成100x100的随机稠密矩阵A
A = np.random.rand(100, 100)

步骤3:构造对称块稀疏矩阵

利用scipy.sparse.bmat拼接稀疏块矩阵,零块用None表示,自动转为稀疏格式:

# 拼接块矩阵,输出为CSR格式的稀疏矩阵
block_sparse_matrix = sp.bmat([
    [None, sp.csr_matrix(A)],
    [sp.csr_matrix(A.T), None]
], format='csr')

注:CSR格式是稀疏矩阵的常用存储格式,适合后续的特征值计算操作

步骤4:用eigsh求解特征值与特征向量

由于构造的矩阵是对称的,使用eigsh可以高效求解指定数量的特征值(示例中取最大的5个):

# 求解模最大的5个特征值及其对应特征向量
eigenvalues, eigenvectors = eigsh(block_sparse_matrix, k=5, which='LM')

# 打印结果
print("特征值:", eigenvalues)
print("特征向量形状:", eigenvectors.shape)

额外验证(可选)

可以验证构造的矩阵是否对称:

is_symmetric = np.allclose(block_sparse_matrix.toarray(), block_sparse_matrix.T.toarray())
print("矩阵是否对称:", is_symmetric)

内容的提问来源于stack exchange,提问作者Guy Fly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 17:33:27