PythonのSymPyの微分・偏微分・高階微分・例題について


はるか
SymPyを使えば、微分も簡単にできる。コードも短いし。

ふゅか
そうそう、SymPyはほんと便利!式を定義して、あとは diff を使うだけで微分ができちゃうんだからすごいよね♪
1. SymPyで微分
SymPyは、微分を含むさまざまな数学的操作を手軽に実行できるPythonライブラリです。以下に、SymPyを使用して微分を行う基本的な方法を紹介します。
1.1. 基本的な使用例
まずは、基本的な微分の例を見てみましょう。ここでは、関数 \( f(x) = x^2 + 3x + 2 \) を微分します。
import sympy as sp
# 変数の定義
x = sp.symbols('x')
# 関数の定義
f = x**2 + 3*x + 2
# 微分
f_prime = sp.diff(f, x)
print(f_prime)
このコードは、関数 \( f(x) = x^2 + 3x + 2 \) の微分を計算し、結果を表示します。出力は次のようになります。

ふゅか
\( f(x) = x^2 + 3x + 2 \) を微分するコードなんかすぐ書けちゃうわね♪

はるか
関数の定義と微分、それだけで終わる。
1.2. 多変数関数の微分
SymPyは、多変数関数の偏微分もサポートしています。次に、多変数関数を微分する例を見てみましょう。
# 変数の定義
x, y = sp.symbols('x y')
# 多変数関数の定義
g = x**2 + y**2 + x*y
# xに関する偏微分
g_x = sp.diff(g, x)
# yに関する偏微分
g_y = sp.diff(g, y)
print("g_x:", g_x)
print("g_y:", g_y)
このコードでは、関数 \( g(x, y) = x^2 + y^2 + xy \) の \( x \) に関する偏微分と \( y \) に関する偏微分を計算します。実行すると、次のような結果が得られます。
1.3. 高階微分
SymPyを使用して高階微分を計算することもできます。例では2階微分を行います。
# 変数の定義
x = sp.symbols('x')
# 関数の定義
h = sp.sin(x)
# 2階微分
h_prime2 = sp.diff(h, x, 2)
print(h_prime2)
このコードは、関数 \( h(x) = \sin(x) \) の2階微分を計算し、結果を表示します。出力は次のようになります。
2. 例題
Sympyを用いて、以下の関数 \( f(x) = x^3 + 2x^2 - 5x + 7 \) の1階微分 \( \frac{d}{dx} f(x) \) と2階微分 \( \frac{d^2}{dx^2} f(x) \) を求めよ。
期待される出力:
1階微分 \( f'(x) = 3x^2 + 4x - 5 \)
2階微分 \( f”(x) = 6x + 4 \)
解答の手順:
- Sympyをインポートする。
- 関数 \( f(x) = x^3 + 2x^2 - 5x + 7 \) をSympyの
symbols
とdiff
を使用して定義する。 diff
を用いて1階微分を求める。- 同じく
diff
を用いて2階微分を求める。
解答:
import sympy as sp
# 変数 x を定義
x = sp.symbols('x')
# 関数 f(x) を定義
f = x**3 + 2*x**2 - 5*x + 7
# 1階微分を求める
f_prime = sp.diff(f, x)
# 2階微分を求める
f_double_prime = sp.diff(f_prime, x)
PR