導関数をPythonに実装する
メニューを表示するにはスワイプしてください
Pythonでは、sympyを使用して導関数を記号的に計算し、matplotlibで可視化することができます。
1. 導関数の記号的計算
# Define symbolic variable x
x = sp.symbols('x')
# Define the functions
f1 = sp.exp(x)
f2 = 1 / (1 + sp.exp(-x))
# Compute derivatives symbolically
df1 = sp.diff(f1, x)
df2 = sp.diff(f2, x)
解説:
xをsp.symbols('x')で記号変数として定義;sp.diff(f, x)関数はfのxに関する導関数を計算;- これにより、Pythonで代数的に導関数を操作することが可能。
2. 関数およびその導関数の評価とプロット
# Convert symbolic functions to numerical functions for plotting
f1_lambda = sp.lambdify(x, f1, 'numpy')
df1_lambda = sp.lambdify(x, df1, 'numpy')
f2_lambda = sp.lambdify(x, f2, 'numpy')
df2_lambda = sp.lambdify(x, df2, 'numpy')
解説:
sp.lambdify(x, f, 'numpy')は記号関数を 数値関数 に変換し、numpyで評価可能にする;- これは
matplotlibおよびnumpyが記号式ではなく数値配列を扱うために必要。
3. 主要点での導関数評価の出力
計算を検証するため、x = [-5, 0, 5] における導関数の値を出力。
# Evaluate derivatives at key points
test_points = [-5, 0, 5]
for x_val in test_points:
print(f"x = {x_val}: e^x = {f2_lambda(x_val):.4f}, e^x' = {df2_lambda(x_val):.4f}")
print(f"x = {x_val}: sigmoid(x) = {f4_lambda(x_val):.4f}, sigmoid'(x) = {df4_lambda(x_val):.4f}")
print("-" * 50)
1. 導関数をプロットする際に sp.lambdify(x, f, 'numpy') を使用する理由は何ですか?
2. f(x)=ex とその導関数のグラフを比較したとき、次のうちどれが正しいですか?
すべて明確でしたか?
フィードバックありがとうございます!
セクション 3. 章 4
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 3. 章 4