使用Python+SymPy 求解线性方程组

最近几天在复习线性代数,想用Python求解线性方程组,最开始想用SciPy,但是SciPy求解方程组好像要求系数矩阵为方阵,经过几番搜索,在知乎上找到了一点线索,原知乎问题请点我

根据知乎的答案实践之后发现此方法甚好,不仅可以求解系数矩阵为方阵的线性方程组,还可以求解含自由变量的线性方程组,所以记录在此。

方程组有一组数值解

原方程组如下:

2x+3y+z=4
4x+2y+3z =17
7x+y-z=1

求解方程组的代码Python代码如下:

from sympy import *

a = Matrix([[2,3,1],[4,2,3], [7,1,-1]])
b = Matrix([[4],[17],[1]])
x = symarray('x', 3)
solve(a*x-b)

执行以上代码得到

{x_1: -1, x_2: 5, x_0: 1}

求解存在自由变量的方程组

代码如下:

from sympy import *

a = Matrix([[3,0,-1,0],[8,0,0,-2], [0,2,-2,-1]])
x = symarray('x', 4)
solve(a*x)

得到:

{x_1: 5x_3/4, x_2: 3x_3/4, x_0: x_3/4}

更多请参照 SymPy Doc.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 数学是计算机技术的基础,线性代数是机器学习和深度学习的基础,了解数据知识最好的方法我觉得是理解概念,数学不只是上学...
    闯王来了要纳粮阅读 22,889评论 2 48
  • Scipy scipy包含致力于科学计算中常见问题的各个工具箱。它的不同子模块相应于不同的应用。像插值,积分,优化...
    Aieru阅读 34,840评论 3 59
  • 考试形式和试卷结构一、试卷满分及考试时间 试卷满分为150分,考试时间为180分钟 二、答题方式 答题方式为闭卷、...
    幻无名阅读 788评论 0 3
  • 我不是一个母亲,只是一个未婚的姑娘,但看到周边的朋友带着孩子,总觉得给孩子最好的爱是陪伴和引导。 阿梅,是个普通的...
    苏穆凉阅读 174评论 0 0
  • 读书和写作是孩子飞翔的双翼 ——四级部暑假读书和写作挑战活动倡议书 四级部的家长朋友们: 大家好!时光总是荏苒,一...
    飞翔的小猪1阅读 406评论 0 3