• Numpy库进阶教程(一)求解线性方程组


    前言

    Numpy是一个很强大的python科学计算库。为了机器学习的须要。想深入研究一下Numpy库的使用方法。用这个系列的博客。记录下我的学习过程。


    系列:
    Numpy库进阶教程(二)
    正在持续更新

    计算逆矩阵

    numpy.linalg模块包括线性代数的函数。能够用来求矩阵的逆,求解线性方程组、求特征值及求解行列式。
    mat函数能够用来构造一个矩阵,传进去一个专用字符串,矩阵的行与行之间用分号隔开,行内的元素用空格隔开。

    import numpy as np
    
    A = np.mat("0 1 2;1 0 3;4 -3 8")
    print "A
    ", A

    如今我们使用inv函数计算逆矩阵

    inverse = np.linalg.inv(A)
    print "inverse of A
    ", inverse

    我们检查一下两矩阵相乘的结果

    print "Check
    ", A * inverse

    须要说明的是这里的 A * inverse是两个矩阵中相应元素逐个相乘。这就要求了两矩阵的行和列相等。

    求解线性方程组

    创建矩阵A和数组b:

    
    A = np.mat("1 -2 1;0 2 -8;-4 5 9")
    print "A
    ", A
    
    b = np.array([0, 8, -9])
    print "b
    ", b

    这里能够直接调用linalg中的solve函数求解

    x = np.linalg.solve(A, b)
    print "Solution", x

    使用dot函数检查解的正确性:

    print "Check
    ", np.dot(A , x)

    这里的dot函数是两个矩阵相乘,而非矩阵内元素逐个相乘

  • 相关阅读:
    POI做报表
    (一) DB2的备份和恢复:准备
    西天取经为节约成本该裁掉哪位?
    python中configpraser模块
    python中subprocess模块
    python中os模块
    python中random模块
    python中time模块和datetime模块
    python中序列化json模块和pickle模块
    迭代器生成器函数的递归调用与二分法
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8375771.html
Copyright © 2020-2023  润新知