PythonとSymPyで連立方程式を簡単に解く方法


はるか
SymPyを使って連立方程式を解く。

ふゅか
そうね、最初に基本的な使い方から説明するわね♪
目次
1. SymPyを利用した連立方程式
SymPyを使用して連立方程式を解くことができます。連立方程式を解くためには、solve
メソッドを使用します。
sp.solve(eqs, sym)
- eqsは方程式
- symは変数
以下に、SymPyを使用して連立方程式を解く基本的な方法を示します。

ふゅか
まずは、SymPyのsolveメソッドを使って連立方程式を解く方法を見てみましょう!

はるか
うん、eqsに方程式を、symに変数を指定する。
2. SymPyを利用したPythonコード
2.1. 基本的な使用例
2つの変数 \(x\) と \(y\) を含む連立方程式を解く例です。
import sympy as sp
# 変数の定義
x, y = sp.symbols('x y')
# 方程式の定義
eq1 = sp.Eq(x + y, 2) # x + y = 2
eq2 = sp.Eq(x - y, 0) # x - y = 0
# 連立方程式を解く
solution = sp.solve((eq1, eq2), (x, y))
print("解:", solution)
このコードは、次の連立方程式を解きます。
- \( x + y = 2 \)
- \( x - y = 0 \)
2.2. 多変数の連立方程式

ふゅか
次に、多変数の連立方程式を解く方法を見てみましょう。

はるか
うん、x, y, z を含む連立方程式。
3つの変数 \(x\), \(y\), \(z\) を含む連立方程式を解く例です。
# 変数の定義
x, y, z = sp.symbols('x y z')
# 方程式の定義
eq1 = sp.Eq(x + y + z, 6) # x + y + z = 6
eq2 = sp.Eq(x - y + z, 2) # x - y + z = 2
eq3 = sp.Eq(x + y - z, 4) # x + y - z = 4
# 連立方程式を解く
solution = sp.solve((eq1, eq2, eq3), (x, y, z))
print("解:", solution)
このコードは、次の連立方程式を解きます。
- \( x + y + z = 6 \)
- \( x - y + z = 2 \)
- \( x + y - z = 4 \)
2.3. 連立方程式の解が一つでない場合

ふゅか
連立方程式の解が一つでない場合を見てみましょう。
# 変数の定義
x, y, z = sp.symbols('x y z')
# 方程式の定義
eq1 = sp.Eq(x + y + z, 0) # x + y + z = 0
eq2 = sp.Eq(x - y + z, 2) # x - y + z = 2
# 連立方程式を解く
solution = sp.solve((eq1, eq2), (x, y, z))
print("解:", solution)
2.4. 非線形な連立方程式

ふゅか
最後に、非線形な連立方程式を解く方法を見てみましょう!

はるか
非線形方程式もSymPyで解ける。
非線形方程式を含む連立方程式を解く例です。
# 変数の定義
x, y = sp.symbols('x y')
# 非線形方程式の定義
eq1 = sp.Eq(x**3 + y**3, 1) # x^3 + y^3 = 1
eq2 = sp.Eq(x**2 - y, 0) # x^2 - y = 0
# 連立方程式を解く
solution = sp.solve((eq1, eq2), (x, y))
print("解:", solution)
このコードは、次の非線形方程式を解きます。
- \( x^2 + y^2 = 1 \)
- \( x^3 - y = 0 \)
PR