Pythonで数式を操る!SymPy入門:電卓以上の数学体験をあなたに
Pythonといえば、AIやデータ分析でよく使われるプログラミング言語ですが、実は数学も得意なんです。その秘密兵器が「SymPy(シンパイ)」というライブラリ。SymPyを使えば、電卓ではできない複雑な数式処理を、まるで紙とペンで計算するようにPythonで実行できます。
SymPyって何ができるの?
SymPyは、数式を記号として扱えるのが最大の特徴です。例えば、以下のようなことができます。
- 数式の展開・因数分解:
(x + 1)**2
を展開してx**2 + 2*x + 1
にしたり、その逆の因数分解も簡単。 - 方程式を解く:
x**2 - 2*x + 1 = 0
のような方程式の解を求められます。 - 微分・積分: 複雑な関数も、記号的に微分や積分ができます。
- 極限を求める:
limit(sin(x)/x, x, 0)
のように、極限値を計算できます。 - 行列計算: 行列の作成、逆行列、固有値など、線形代数の計算もこなせます。
これらの機能は、物理学、工学、経済学など、数式を使うあらゆる分野で役立ちます。
SymPyを始めるための準備
まずはSymPyをインストールしましょう。ターミナルやコマンドプロンプトで以下のコマンドを実行します。
pip install sympy
インストールが終わったら、PythonでSymPyを使えるようになります。
import sympy
SymPyの基本的な使い方
SymPyで数式を扱うには、まず記号(変数)を定義する必要があります。symbols()
関数を使って、記号を定義しましょう。
from sympy import symbols
x, y = symbols('x y')
これで、x
と y
を数式の中で変数として使えるようになりました。
例えば、数式 x + y
をSymPyで表現するには、このように書きます。
expression = x + y
print(expression) # 出力: x + y
計算結果も記号のまま表示されるのがポイントです。
具体的な例:数式の展開と因数分解
SymPyの威力を実感するために、数式の展開と因数分解を試してみましょう。
from sympy import symbols, expand, factor
x = symbols('x')
# 展開
expression = (x + 1)**2
expanded_expression = expand(expression)
print(f"展開: {expression} -> {expanded_expression}") # 出力: 展開: (x + 1)**2 -> x**2 + 2*x + 1
# 因数分解
expression = x**2 + 2*x + 1
factored_expression = factor(expression)
print(f"因数分解: {expression} -> {factored_expression}") # 出力: 因数分解: x**2 + 2*x + 1 -> (x + 1)**2
expand()
関数で数式を展開、factor()
関数で因数分解ができます。簡単ですね!
具体的な例:方程式を解く
方程式を解くには、solve()
関数を使います。
from sympy import symbols, solve
x = symbols('x')
# 方程式 x**2 - 2*x + 1 = 0 を解く
equation = x**2 - 2*x + 1
solutions = solve(equation, x)
print(f"方程式 {equation} の解: {solutions}") # 出力: 方程式 x**2 - 2*x + 1 の解: [1]
solve()
関数に、方程式と解きたい変数を渡すと、解がリスト形式で返ってきます。
SymPyの奥深さ
ここではSymPyのほんの一部分を紹介しましたが、SymPyにはまだまだ多くの機能があります。微分積分、線形代数、微分方程式の求解など、高度な数学的処理も可能です。SymPyのドキュメント(英語)には、詳細な使い方が解説されていますので、ぜひ挑戦してみてください。
SymPyをマスターすれば、Pythonでの数学的な問題解決能力が格段に向上します。複雑な数式に頭を悩ませる日々から解放され、創造的な数学の世界をPythonで探求してみましょう!