最近幾天在復(fù)習(xí)線性代數(shù),想用Python求解線性方程組,最開始想用SciPy祝沸,但是SciPy求解方程組好像要求系數(shù)矩陣為方陣,經(jīng)過幾番搜索越庇,在知乎上找到了一點線索罩锐,原知乎問題請點我。
根據(jù)知乎的答案實踐之后發(fā)現(xiàn)此方法甚好卤唉,不僅可以求解系數(shù)矩陣為方陣的線性方程組涩惑,還可以求解含自由變量的線性方程組,所以記錄在此桑驱。
方程組有一組數(shù)值解
原方程組如下:
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)
執(zhí)行以上代碼得到
{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.