加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

python 线性代数:行列式求解

(2016-07-17 12:16:35)
标签:

python基础

python基础教程

python学习

分类: Python学习

行列式是线性代数里最重要的概念之一,今天我们使用Python的numpy和sympy包计算几个三阶行列式。下面的计算过程用excel存放矩阵的数据,而用excel里面的datanitro插件来运行Python代码,所以你可能要熟悉一下datanitro这个插件

 

  1. 熟悉了这个插件以后,我们看看我们要解决的这四个矩阵:这些练习题来自《线性代数,同济大学第五版第一张课后题》。

  2. http://s4/mw690/006du1Yszy73gIJ4T3Z83&690线性代数:行列式求解" TITLE="python 线性代数:行列式求解" />

  3. 这接着我们将这些矩阵录入到excel当中。

  4. http://s5/mw690/006du1Yszy73gIKeDv694&690线性代数:行列式求解" TITLE="python 线性代数:行列式求解" />

  5. 接着我们把代码写到1.1.py文件中。

  6. http://s7/mw690/006du1Yszy73gIKRgsm56&690线性代数:行列式求解" TITLE="python 线性代数:行列式求解" />

  7. 接着,我们在excel的datanitro插件中,引入1.1.py文件,然后run一下就可以看到计算结果:

  8. http://s13/mw690/006du1Yszy73gILqH1i1c&690线性代数:行列式求解" TITLE="python 线性代数:行列式求解" />

  9. 以上是大概的流程,接下来具体讲解一下代码的意义。

  10. 引入需要的两个模块

  11. http://s4/mw690/006du1Yszy73gILWNMLb3&690线性代数:行列式求解" TITLE="python 线性代数:行列式求解" />

  12. 先看看第一题,这是计算第一个矩阵的行列式:

    a,CellRange是datanitro的内置对象,表示excel里面的一个单元格区域,通过它我们可以将这个区域内的值读取出来,存放到lst这个列表里,也就是Python中的list对象;接着用numpy模块的reshap方法,将list转换为3x3的矩阵,然后用刀了det方法计算行列式,最后结果为-4

  13. http://s12/mw690/006du1Yszy73gIMtDwD9b&690线性代数:行列式求解" TITLE="python 线性代数:行列式求解" />

  14. 第二题:红色字体都是注释,没有实际功能。跟第一题相比,第二题用字母代替了数字,所以,我们要用到Python的符号计算包sympy,我们可以看到E就是一个3x3的矩阵,但是需要将E转换为符号矩阵,用到了sp.Matrix,得到M,然后使用m的det方法计算得到行列式,结果是:

  15. http://s1/mw690/006du1Yszy73gIN8TvO60&690线性代数:行列式求解" TITLE="python 线性代数:行列式求解" />

  16. 第三题,与第二题类似,用到了sp.Matrix,但是我们还用到了sp.factor,这个方法可以将结果提取公因式,最后的计算结果为:

  17. http://s3/mw690/006du1Yszy73gINMwPo82&690线性代数:行列式求解" TITLE="python 线性代数:行列式求解" />

  18. 如果前三题你都搞懂了,第四题就简单了,没有新知识:

  19. http://s1/mw690/006du1Yszy73gIOpJT260&690线性代数:行列式求解" TITLE="python 线性代数:行列式求解" />

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有