更新:2024/11/22

【SymPy・Python】方程式の解き方Eq()、solve()の使い方について

はるか
はるか
SymPyはPythonで数式処理をするライブラリ。
ふゅか
ふゅか
複雑な方程式も解けちゃうし、使いやすいよね!

1. SymPyと方程式

Pythonの数式処理ライブラリ「SymPy」を使用すると、複雑な方程式を簡単に解くことができます。この記事では、SymPyの基本的な関数の構文も含め、具体的な方程式を解く方法をわかりやすく解説します。

2. Eqの基本構文

方程式を定義するには、Eqを使います。方程式の左辺と右辺を指定して、等式を表現できます。

Eq(left, right)
ふゅか
ふゅか
方程式を定義するときは、Eqを使うのよね。たとえば、2x + 3 = 7 みたいな。
はるか
はるか
そう。Eq(left, right)。左右を指定するだけ。簡単。

2.1. Eqの例

from sympy import symbols, Eq

x = symbols('x')
equation = Eq(2*x + 3, 7)  # 方程式 2x + 3 = 7 を定義

3. solveの基本構文

方程式の解を求めるには、solve関数を使います。solve関数は、解をリスト形式で返します。

solve(expression, x)
  • expression: 解きたい方程式(Eqで定義した等式)。
  • x: 方程式の中で解きたい変数。
はるか
はるか
解くにはsolve。リスト形式で結果が返る。
ふゅか
ふゅか
例えば、xを解きたい場合は、solve(expression, x)ね!

3.1. solveの例

from sympy import symbols, Eq, solve

x = symbols('x')
equation = Eq(2*x + 3, 7)  # 方程式 2x + 3 = 7 を定義
solution = solve(equation, x)  # xについて解く
print(solution)  # 結果: [2]

4. 方程式を解く方法

4.1. 一次方程式

以下の一次方程式を解いてみます。

$$4x + 3 = 7$$

from sympy import symbols, Eq, solve

# シンボルを定義
x = symbols('x')

# 方程式を定義
equation = Eq(4*x + 3, 7)

# 方程式を解く
solution = solve(equation, x)
print(solution)

解は $x=1$です。

4.2. 二次方程式

SymPyを使えば、二次方程式も簡単に解けます。

$$x^2 - 4x + 3 = 0$$

from sympy import symbols, Eq, solve

# シンボルを定義
x = symbols('x')

# 方程式を定義
equation = Eq(x**2 - 4*x + 3, 0)

# 方程式を解く
solution = solve(equation, x)
print(solution)
[1, 3]

解は$x=1$ と $x=3$です。

4.3. $\sin(x) = 0.5$

from sympy import symbols, Eq, sin, solve

x = symbols('x')

# 方程式を定義
equation = Eq(sin(x), 0.5)

# 方程式を解く
solution = solve(equation, x)
print(solution)

PR