参考链接:https://cloud.tencent.com/developer/article/1594842

另外参考了张宇的考研视频。

一、行列式的定义与性质

1. 几何法定义

二阶行列式的值为平时四边形的面积。

     

 面积表示如下:

 

 三阶行列式表示的是平行六面体的体积。

依次类推:n阶行列式表示的就是n个n维向量为邻边的n维图形的体积。

可以把行列式看作一个算式。

2. 逆序法定义

有以下相关点:

(1)展开后有n!个项;

(2)每项取自不同行、不同列n个元素的乘积;

(3)行下标顺序排列后,每项前乘以

称作j1 j2 … jn的逆序数。

逆序数的概念:平时我们说的1 2叫做顺序,4 3就叫做逆序(也就是大的数在前,小的数在后)。

如t(6 4 1 2 3 5)的逆序数就是8。

3. 展开法定义

 行列式等于它的任一行(列)的各元素与其对应的代数余子式乘积之和。

python的numpy库提供了用于进行行列式计算的库函数,使用起来很方便。

代码实现如下:

  1. 1 # encoding: utf-8
  2. 2
  3. 3 import os
  4. 4 import numpy as np
  5. 5 from numpy.linalg import det
  6. 6
  7. 7
  8. 8 def test_2d_linalg():
  9. 9 D2 = np.arange(4).reshape(2, 2)
  10. 10 val = det(D2)
  11. 11 print (D2)
  12. 12 print (val)
  13. 13
  14. 14
  15. 15 def test_3d_linalg():
  16. 16 D3 = np.arange(9).reshape(3, 3)
  17. 17 val = det(D3)
  18. 18 print (D3)
  19. 19 print (val)
  20. 20
  21. 21
  22. 22 def test_multiD_linalg():
  23. 23 data = [[1, 2, 3, 4, 5], [2, 2, 2, 1, 1], [3, 1, 2, 4, 5], [1, 1, 1, 2, 2], [4, 3, 1, 5, 0]]
  24. 24 d5 = np.array(data)
  25. 25 print (d5)
  26. 26 print (det(d5))
  27. 27
  28. 28
  29. 29 if __name__ == "__main__":
  30. 30
  31. 31 test_2d_linalg()
  32. 32
  33. 33 test_3d_linalg()
  34. 34
  35. 35 test_multiD_linalg()

View Code

输出结果:

  1. 1 [[0 1]
  2. 2 [2 3]]
  3. 3 -2.0
  4. 4 [[0 1 2]
  5. 5 [3 4 5]
  6. 6 [6 7 8]]
  7. 7 0.0
  8. 8 [[1 2 3 4 5]
  9. 9 [2 2 2 1 1]
  10. 10 [3 1 2 4 5]
  11. 11 [1 1 1 2 2]
  12. 12 [4 3 1 5 0]]
  13. 13 26.99999999999999

总结:对如何用工具或代码生成数学公式还不了解,导致这篇博客写得很僵硬。

版权声明:本文为mrlayfolk原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/mrlayfolk/p/12688364.html