微分の結果の見方
結果が得られる場合、2階導関数の符号は、x0における関数の局所的な凹凸を示します。これは微積分学における標準的な結果です。
| f″(x₀) | x₀における凹凸 |
|---|---|
| 正 | 上に凸(谷のような形)。x₀付近で関数は上向きに曲がる |
| 負 | 下に凸(山のような形)。x₀付近で関数は下向きに曲がる |
| 0またはその付近 | 変曲点の可能性。x₀付近で凹凸が変化している可能性があり、さらに確認が必要 |
- これは数値による推定値であり、記号的な導関数ではありません。この計算機は一般的な公式f'(x)を生成することはなく、入力された点x0ただ1点における導関数の値だけを返します。
- 対応する式の構文:関数sin、cos、tan、asin、acos、atan、sqrt、cbrt、abs、ln(自然対数)、log(底10の対数)、log2(底2の対数)、exp、floor、ceil、round、min、max。定数pi、e、tau。演算子+ − * / % ^。そして変数xです。三角関数はラジアンで評価されます。
- x0付近に不連続点、鋭い角、未定義の値がある関数(例えば、垂直漸近線の近くで評価する場合)では、有限差分による推定値が不正確になったり、結果が返されなかったりすることがあります。
- 滑らかで扱いやすい関数については、この数値による推定値には、表示される精度において通常無視できる程度の小さな打ち切り誤差があります。ただし、局所的に急激に変化する関数では、この誤差が大きくなることがあります。
数値微分とは?
導関数とは、ある点における関数の瞬間的な変化率を測るものであり、幾何学的にはその点における関数のグラフの接線の傾きです。記号的な微分は、すべてのxについて成り立つ一般的な公式f'(x)を生成します。これに対して、この計算機は数値微分を計算します。すなわち、入力した点x0ちょうど1点における単一の数値としてf'(x0)を推定し、一般的な公式f'(x)を生成することはありません。
使われる数値計算手法は5点中心差分法です。この計算機は、x0の両側に非常に近い複数の点でfを評価し、それらの値を組み合わせて、x0における傾きの高精度な推定値を求めます。誤差はステップ幅の4乗に比例して縮小します。これは数値解析における標準的で確立された手法であり、記号的なコンピュータ代数による微分とは異なります。
結果は数値であるため、別の点における導関数を評価するには、新しいx0を使ってこの計算機を再度実行する必要があります。他の点で直接評価できるようなf'(x)の代数式は返されません。
この微分計算機の使い方
- xの関数を入力します。例えば、x^3 - 2*x + 1、sin(x)/x、sqrt(x) + ln(x)などです。乗算は*を使って明示的に書く必要があり、べき乗には^を使います。
- 導関数を評価する点x0を入力します。
- その点における数値微分f'(x0)と、そこでの関数値f(x0)を確認します。
- 関数がx0付近で2階微分可能な場合は、数値2階微分f''(x0)と、x0付近でfを最もよく近似する直線を与える接線の方程式も確認します。
数値微分を支える公式
5点中心差分による推定値はf'(x0) ≈ [−f(x0+2h) + 8f(x0+h) − 8f(x0−h) + f(x0−2h)] / (12h)という古典的な有限差分公式で、誤差はh⁴に比例します。つまり、ステップ幅hを半分にすると、誤差はおよそ16分の1に減少します。
2階導関数は、より単純な中心差分で推定されます:f''(x0) ≈ [f(x0+h) − 2f(x0) + f(x0−h)] / h²。その符号は局所的な凹凸を示します。正であれば、x0付近で関数は上に凸(下に膨らむ形)であり、負であれば下に凸(上に膨らむ形)です。
x0における接線、すなわちその点付近でのfの最良の直線近似は、y = f'(x0)(x − x0) + f(x0)です。
計算例:f(x) = x³ − 2x + 1、x0 = 2の場合。数値微分はf'(2) = 10であり、これはx = 2で評価した記号的な導関数3x² − 2(3×4 − 2 = 10)と一致します。関数値はf(2) = 8 − 4 + 1 = 5なので、接線はy = 10(x − 2) + 5です。
よくある間違い
- 「3x² − 2」のような記号的な公式を期待してしまうこと。この計算機は、記号的(代数的)な微分ではなく有限差分近似を使い、入力した点x0ただ1点における導関数の数値だけを返します。
- 2xの代わりに2*xと書くべきところで暗黙の乗算を書いてしまう、あるいはべき乗に^の代わりに**を使ってしまうこと。パーサーは対応する演算子を明示的に書くことを必要とします。
- 関数が未定義または不連続な点、例えばx0 = 0における1/xで評価してしまうこと。これは有限差分による推定値を信頼できないものにするか、結果を返さなくなります。
- 数値による結果が任意精度で正確だと思い込むこと。中心差分法には小さいながらも0でない打ち切り誤差があり、滑らかな関数では通常、表示される小数点以下の桁では見えません。
- logを自然対数の意味で使ってしまうこと。この計算機の構文では、lnが自然対数(底e)で、logは底10、log2は底2です。
よくある質問
この計算機は、f'(x) = 3x² − 2のような導関数の公式を教えてくれますか?
いいえ。この計算機は、入力した特定の点x0における導関数の数値だけを、数値的な有限差分法によって計算して返します。別の点における導関数の挙動を知りたい場合は、その点を新しいx0として入力し、再計算してください。
この微分計算機はどのような数値計算手法を使っていますか?
5点中心差分法です:f'(x0) ≈ [−f(x0+2h) + 8f(x0+h) − 8f(x0−h) + f(x0−2h)] / (12h)。これは数値解析における標準的な有限差分公式で、誤差はh⁴に比例します。
式にはどのような関数と演算子を使えますか?
sin、cos、tan、asin、acos、atan、sqrt、cbrt、abs、ln、log、log2、exp、floor、ceil、round、min、max。定数pi、e、tau。演算子+ − * / % ^。そして変数xです。三角関数はラジアンで評価されます。
数値微分の精度はどのくらいですか?
滑らかで扱いやすい関数については、5点中心差分法は表示される小数点以下の桁をはるかに上回る精度を持ちます。不連続点や鋭い角、x0の近くで関数が未定義になる点の近くでは精度が低下します。
接線の結果は何を意味していますか?
接線y = f'(x0)(x − x0) + f(x0)は、x0付近における関数の最良の直線近似です。(x0, f(x0))で曲線に接し、その点における関数の傾きと同じ傾きを持ちます。
なぜ結果に2階導関数が表示されないことがあるのですか?
2階導関数はそれ専用の中心差分公式を使っており、その計算が有限の値を返す場合にのみ表示されます。例えば、x0のすぐ周辺で関数が未定義または不連続である場合、2階導関数の推定値は省略されます。
参考文献
- Burden RL, Faires JD. Numerical Analysis. Cengage Learning (finite-difference approximations to derivatives).
- Press WH, Teukolsky SA, Vetterling WT, Flannery BP. Numerical Recipes: The Art of Scientific Computing. Cambridge University Press (numerical differentiation).
- Stewart J. Calculus. Cengage Learning (the derivative as instantaneous rate of change and slope of the tangent line).
- NIST Digital Library of Mathematical Functions (DLMF), Chapter 3: Numerical Methods — finite-difference formulas. dlmf.nist.gov.