【Python】SymPyで定積分を解く!x^2 + 1 を範囲指定で計算
数学の解析学において重要な「積分」。PythonのSymPyライブラリを使えば、不定積分だけでなく、範囲を指定した「定積分」も正確に解くことができます。今回は f(x) = x^2 + 1 を [0, 1] の区間で積分する方法を解説します。
1. 考え方:SymPyによる定積分の指定
SymPyで積分を行うには integrate 関数を使用します。定積分の場合は、対象となる変数と、その開始値・終了値を「タプル」という形式で指定するのがルールです。
[ 計算する式 ]
∫ (x^2 + 1) dx (範囲: 0から1)
[ SymPyでの記述 ]
・integrate(式, (変数, 開始, 終了))
・今回の例:
∫ (x^2 + 1) dx (範囲: 0から1)
[ SymPyでの記述 ]
・integrate(式, (変数, 開始, 終了))
・今回の例:
integrate(x**2 + 1, (x, 0, 1))2. Pythonサンプルプログラム
変数 x を記号として定義し、それを使って式を組み立てます。計算結果が分数のまま保持されるのがSymPyの強みです。
# -*- coding: utf-8 -*- from sympy import symbols, integrate def main(): # 変数xを記号として定義 x = symbols('x') # 式 f(x) = x^2 + 1 の定義 f = x**2 + 1 # 0から1の区間で積分を実行 # integrate(式, (変数, 開始, 終了)) ans = integrate(f, (x, 0, 1)) print("SymPyによる定積分を開始します。") print(f"x^2 + 1 を [0, 1] で積分した結果: {ans}") if __name__ == "__main__": main()
3. 実行結果
SymPyによる定積分を開始します。
x^2 + 1 を [0, 1] で積分した結果: 4/3
x^2 + 1 を [0, 1] で積分した結果: 4/3
4. ステップアップ:不定積分と数値化
定積分以外にも、SymPyは柔軟な計算が可能です。
- 不定積分:範囲を指定せず
integrate(f, x)とすれば、元の関数(原始関数)を返します。 - 小数への変換:結果の
4/3を1.333...のように小数で表示したい場合は、ans.evalf()メソッドを使います。
5. まとめ
手計算では分数や計算ミスが起きやすい積分も、SymPyを使えば正確かつ迅速に解くことができます。特に理数系のシミュレーションやアルゴリズム開発において、数式をそのままコードに落とし込めるメリットは非常に大きいです。ぜひ活用してみてください!
PR