高校数学の「微分」関連の問題をPythonで解く
概要
関数の微分・導関数に関する問題(高校数学)を Python で解いていきます。
- 高校数学の「ベクトルの内積」関連の問題をPythonで解く
- 高校数学の「高次方程式・恒等式」関連の問題をPythonで解く
- 高校数学の「2次関数グラフ」関連の問題をPythonで解く
- 高校数学の「極限値」関連の問題をPythonで解く
- - 高校数学の「微分」関連の問題をPythonで解く
問1
次の関数を微分せよ。
$$ y= (x^2-1)(2x^2 +x-3) $$
問1の解き方(参考)
\begin{align}
y' & = \{ (x^2-1)(2x^2 +x-3) \}' \\
& = (x^2-1)'(2x^2 +x-3) + (x^2-1)(2x^2 +x-3)' \\
& = 2x(2x^2 +x-3) + (x^2-1)(4x+1) \\
& = 8x^3+3x^2-10x-1
\end{align}
問1の解を与えるPythonプログラム
sympy を利用して解きます。sympy は、記号計算(数式処理)のパッケージです。
diff
で微分、expand
で展開(括弧をとる)をしています。
from sympy import diff, expand, Symbol
x = Symbol('x')
fx = (x**2-1)*(2*x**2+x-3)
ans = expand(diff(fx, x))
print(f'解:{ans}')
実行結果
解:8*x**3 + 3*x**2 - 10*x - 1
見づらいのですが数式表記すると $8x^3+3x^2-10x-1$ になります。環境によっては、あらかじめ init_printing()
を書いておくことで見やすい形式で実行結果の出力が得られます。
ちなみに、expand
を適用せずに ans = diff(fx, x)
として解を表示すると次のようになります。
解:2*x*(2*x**2 + x - 3) + (4*x + 1)*(x**2 - 1)
$2x(2x^2 +x-3) + (4x+1)(x^2-1)$ のような形になります。
問2
次の関数を微分せよ。
$$ y= (x+1)^2(2x-3)^4 $$
問2の解き方(参考)
\begin{align}
y' & = \{ (x+1)^2(2x-3)^4 \}' \\
& = \{(x+1)^2\}'(2x-3)^4 + (x+1)^2\{(2x-3)^4\}' \\
& = 2(x+1)(x+1)'\cdot (2x-3)^4 + (x+1)^2\cdot 4(2x-3)^3(2x-3)' \\
& = 2(x+1)(2x-3)^4 + 8(x+1)^2(2x-3)^3 \\
& = 2(x+1)(2x-3)^3(6x+1)
\end{align}
問2の解を与えるPythonプログラム
上記に示したように、きれいにまとめるために factor
で因数分解をしています。
from sympy import diff, expand, factor, Symbol
x = Symbol('x')
fx = ((x+1)**2)*((2*x-3)**4)
ans = factor(diff(fx, x))
print(f'解:{ans}')
実行結果
解:2*(x + 1)*(2*x - 3)**3*(6*x + 1)
すこし見ずらいですが、$2(x+1)(2x-3)^3(6x+1)$ が求まっています。
もし、因数分解しないで展開した形で解が欲しい場合は、ans =expand(diff(fx, x))
とします。そのときの実行結果は次のようになります。
解:96*x**5 - 320*x**4 + 160*x**3 + 360*x**2 - 270*x - 54
$96x^5-320x^4+160x^3+360x^2-270x-54$ となります。
Author And Source
この問題について(高校数学の「微分」関連の問題をPythonで解く), 我々は、より多くの情報をここで見つけました https://qiita.com/code0327/items/97fcacc42ab44402eb35著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .