1 条题解

  • 0
    @ 2026-3-26 15:56:45

    NUMPY090 题解:奇异值分解

    题目

    对矩阵进行奇异值分解(SVD),输出奇异值。

    解题思路

    1. 读取矩阵
    2. 使用 np.linalg.svd\texttt{np.linalg.svd} 进行分解
    3. 提取奇异值

    代码

    import numpy as np
    
    m, n = map(int, input().split())
    Z = np.array([list(map(float, input().split())) for _ in range(m)])
    U, S, V = np.linalg.svd(Z, full_matrices=False)
    print(S)
    

    代码详解

    奇异值分解:A=U×S×VTA = U \times S \times V^T

    其中 SS 是奇异值数组。

    运行示例

    输入:

    2 3
    1.0 0.0 0.0
    0.0 2.0 0.0
    

    分析:

    • 这是一个对角矩阵
    • 奇异值就是主对角线元素的平方根
    • 22=2\sqrt{2^2} = 212=1\sqrt{1^2} = 1

    输出:

    [2. 1.]
    

    核心知识点

    1. np.linalg.svd\texttt{np.linalg.svd} —— 奇异值分解
    • 1

    信息

    ID
    407
    时间
    1000ms
    内存
    256MiB
    难度
    (无)
    标签
    (无)
    递交数
    0
    已通过
    0
    上传者