這裡用 SymPy 裡的函數來解二元一次聯立方程式的解。
例如,求以下聯立方程式的解:
方法如下,首先匯入 sympy,匯入未知數 x, y,接著自定一個叫做 Eqns 的 list,再用計算線性方程式用的 linsolve()
來求解。得到 x = -2, y = -1。
In [1]: from sympy import * In [2]: from sympy.abc import x, y In [3]: Eqns = [3 * x - y + 5, 2 * x + 3 * y + 7] In [4]: linsolve(Eqns, x, y) Out[5]: FiniteSet((-2, -1))
如果是二次方以上的非線性的聯立方程式,可以用 nonlinsolve()
來求解。例如:
求下列 2 個聯立方程式的解。
和
In [3]: Eqns = [x * y - 1, 4 * x ** 2 + y ** 2 - 5] In [4]: nonlinsolve(Eqns, x, y) Out[4]: FiniteSet((-1, -1), (-1/2, -2), (1/2, 2), (1, 1))
求下列 2 個聯立方程式的解。
和
In [5]: Eqns2 = [x ** 2 + y ** 2 - 1, x - y + 2] In [6]: nonlinsolve(Eqns2, x, y) Out[6]: FiniteSet((-1 - sqrt(2)*I/2, 1 - sqrt(2)*I/2), (-1 + sqrt(2)*I/2, 1 + sqrt(2)*I/2))
參考閱讀:
https://docs.sympy.org/latest/modules/solvers/solveset.html#sympy.solvers.solveset.linsolve