美文网首页
numpy线性代数

numpy线性代数

作者: AndyDennisRob | 来源:发表于2020-05-24 16:31 被阅读0次

    这两周学习numpy,确实感觉在一些数学问题上很方便.

    案例一,求解方阵的特征值和特征向量.

    \begin{bmatrix} 1 & 5 & 9 \\ 3 & 2 & 8 \\ 5 & 7 & 4 \end{bmatrix} \tag{1}

    求解代码如下:

    import numpy as np
    array = np.array([[1, 5, 9], [3, 2, 8], [5, 7, 4]])
    r1, r2 = np.linalg.eig(array)
    # 特征值
    print(r1)
    # 特征向量
    print(r2)
    

    运行结果:


    运行结果


    求解矩阵行列式

    """
    numpy 计算行列式子
    """
    import numpy as np
    
    # a = [[1, 5, 9],
    #      [3, 2, 8],
    #      [5, 7, 4]]
    a = [[1, 5],
         [2, 4]]
    a = np.array(a)
    # 行列式
    det = np.linalg.det(a)
    print(det)
    

    程序输出结果:


    结果

    补充一下二维和三维的行列式值。


    二维矩阵行列式
    三维矩阵行列式


    求解线性方程组

    \left\{ \begin{array}{l} x+y=10 \\ 2000x+1500y=18000 \end{array} \right.

    求解代码入下:

    import numpy as np
    A = np.array([[1, 1], [2000, 1500]])
    B = np.array([10, 18000])
    result = np.linalg.solve(A, B)
    print(result)
    

    运行结果:

    运行结果
    就是方程组的解为


    求向量的长度

    比如求向量 [3,4]的长度

    import numpy as np
    np.linalg.norm([3, 4])
    

    输出结果就是 5.0.


    奇异值分解

    对下列矩阵进行奇异值分解
    \begin{bmatrix} 5 & 6 & 9 \\ 3 & 8 & 4 \\ \end{bmatrix} \tag{2}
    代码如下:

    import numpy as np
    A = np.array([[5, 6, 9], [3, 8, 4]])
    p, sigma, q = np.linalg.svd(A)
    print(p)
    print(sigma)
    print(q)
    

    运行结果:

    奇异值分解
    这里呢, A等于三个矩阵的内积

    加入A是一个 m × n 的矩阵,那么p, sigma, q的维度分别是
    m × m, m × n, n × n 。



    角度和弧度转换

    import numpy as np
    # 结果90
    np.rad2deg(np.pi/2)
    # 结果1.5707963267948966
    np.deg2rad(90)
    

    相关文章

      网友评论

          本文标题:numpy线性代数

          本文链接:https://www.haomeiwen.com/subject/ojljahtx.html