【Python】SymPyで極限(limit)を求める!1/x の 0 への接近
関数の値がどこまで近づくかを計算する「極限(limit)」。PythonのSymPyライブラリを使うと、単純な数値代入ではエラー(ゼロ除算)になってしまう $f(x) = 1/x$ のようなケースも、数学的な極限として正しく処理できます。
1. limit関数のポイント:近づく「方向」
関数 $f(x) = 1/x$ は、0に近づくときに「右側(正の数)」から近づくか、「左側(負の数)」から近づくかで結果が異なります。SymPyでは引数 dir を使ってこの方向を指定します。
- dir='+':右側極限(0.1, 0.01...と正の側から接近)
- dir='-':左側極限(-0.1, -0.01...と負の側から接近)
2. Pythonサンプルプログラム
特別な設定をせず、標準的な print 関数を使って結果を出力します。
# -*- coding: utf-8 -*-
from sympy import symbols, limit
def main():
# 変数xを定義
x = symbols('x')
# 関数 f(x) = 1/x の定義
f = 1 / x
# 右側極限 (x -> 0+)
limit_right = limit(f, x, 0, dir='+')
# 左側極限 (x -> 0-)
limit_left = limit(f, x, 0, dir='-')
print("--- f(x) = 1/x の極限計算 ---")
print(f"x -> 0+ (右側極限): {limit_right}")
print(f"x -> 0- (左側極限): {limit_left}")
if __name__ == "__main__":
main()
3. 実行結果
実行すると、以下のような結果が得られます。SymPyでは無限大($\infty$)を oo(小文字のoが2つ)で表現します。
--- f(x) = 1/x の極限計算 ---
x -> 0+ (右側極限): oo
x -> 0- (左側極限): -oo
x -> 0+ (右側極限): oo
x -> 0- (左側極限): -oo
4. まとめ
結果にある oo は正の無限大、-oo は負の無限大を意味しています。右から近づけばプラス無限に、左から近づけばマイナス無限に発散するという数学的な挙動が、たった数行のコードで確認できました。ゼロ除算エラーを気にせず数学的検証ができるSymPyは、エンジニアにとっても強力な武器になりますね。
PR