更新:2024/11/22

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 \)

解答の手順:

  1. Sympyをインポートする。
  2. 関数 \( f(x) = x^3 + 2x^2 - 5x + 7 \) をSympyのsymbolsdiffを使用して定義する。
  3. diffを用いて1階微分を求める。
  4. 同じく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