zoukankan      html  css  js  c++  java
  • python之numpy矩阵库的使用(续)

     

    本文是对我原先写的python常用序列list、tuples及矩阵库numpy的使用中的numpy矩阵库的使用的补充。结合我个人现在对线性代数的复习进度来不断更博。

    • Section 1:行列式的计算

    我们知道,线代中,行列式是相当重要的一部分,因为行列式通常决定了一个矩阵的逆是否存在以及方程是否有解等,因此,掌握行列式的计算相当重要,结合numpy矩阵库,对我们所学进行拓展,并且在学习的过程中还能掌握numpy的使用,可谓一举两得。

    在原先的博客中,已经提及了numpy中如何创建矩阵、如何求解矩阵的逆以及numpy中一些矩阵的操作运算等。在这一节主要讲解行列式的计算函数det。

    在numpy中,带有一个计算行列式值的计算函数,det。它存在于linalg类下,可以通过点操作符来调用。以下面这道行列式值的求解为例:

    ex1:

    可以看到,我通过手算的值为-5,下面使用numpy库来计算,代码如下:

     1 import numpy as np
     2 import numpy.linalg as lg
     3 
     4 A = np.array([[3, 2, -4], [4, 1, -2],
     5              [5, 2, -3]])
     6 print A
     7 
     8 det_A = lg.det(A)
     9 print "The value of det A is :"
    10 print det_A
    View Code

    得到的输出结果为:

    可以看到与我所算的结果一样。

    需要注意的是,numpy矩阵库所带的det函数无法计算元素为字符的矩阵,如下列行列式的值就无法计算:

     在求解线性方程中,矩阵秩的求解非常重要,它是方程组是否有解的充分必要条件。在numpy中使用线性代数包中的matrix_rank进行求解矩阵的秩,其使用方法如下所示:

    1 import numpy as np
    2 import numpy.linalg as lg
    3 A = np.array([[1, 0, 0, 0], [-2, 3, 0, 0],
    4              [0, -4, 5, 0], [0, 0, -6, 7]])
    5 print "The matrix_rank of A: "
    6 print lg.matrix_rank(A)
    View Code

    以下面这道题为例,手算的结果为3:

    使用上述代码,求得的结果为:

  • 相关阅读:
    [git 学习篇] git commit原理 --实践体会
    [git 学习篇]工作区和暂存区
    [git 学习篇] git文件版本回退再学习
    [git 学习篇]版本回退
    [git 学习篇] 修改文件
    [git 学习篇] 提交文件
    [git 学习篇] --创建git创库
    [测试框架学习] 测试框架的结构包含
    [python测试框架] http接口测试框架
    向SharePoint页面添加后台代码
  • 原文地址:https://www.cnblogs.com/sgatbl/p/8809115.html
Copyright © 2011-2022 走看看