この計算ツールでできること
このツールは、方程式の根(\(f(x) = 0\) となる \(x\) の値)を、導関数を使わないニュートン法(ステフェンセン反復法)で求めます。古典的なニュートン法では一次導関数 \(f'(x)\) の解析式が必要ですが、この手法では導関数を関数値だけから前進差分で近似するため、手計算で微分する必要は一切ありません。一変数の実関数であれば、どんな関数にも使える純粋な数学計算ツールです。
使い方
変数 \(x\) を使って、f(x) の欄に関数を入力します。演算子は + - * / ^ と括弧が使え、定数 pi(円周率)と e(自然対数の底)、さらに次の関数が利用できます: sin, cos, tan, asin, acos, atan, sinh, cosh, tanh, exp, ln, log, log10, sqrt, abs。三角関数の角度はラジアンで扱います。続いて初期値(探索の出発点。結果はこの値に左右されます)x0 を設定し、最大反復回数 n を選びます。すると、収束した根、残差 \(f(x)\)、そして必要だった反復回数が表示されます。
計算式の解説
更新式は $$x_{n+1} = x_n - \frac{f(x_n)^2}{f\!\left(x_n + f(x_n)\right) - f(x_n)}$$ です。これは標準的なニュートン法のステップ $$x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)}$$ から導かれ、\(f'(x_n)\) をステップ幅 \(h = f(x_n)\) の前進差分で近似しています。この近似を代入すると上の式が得られます。単純根の近くでは、本来のニュートン法と同じくおおよそ2次収束しますが、必要なのは関数値だけです。
計算例
\(f(x) = x - \cos(x)\)、\(x_0 = 1\) の場合:反復1回目では \(f(1) = 0.45970\)、補助点 \(f(1.45970) = 1.34861\)、分母 \(0.88891\) となり、$$x_1 = 1 - \frac{0.45970^2}{0.88891} = 0.76224$$ です。反復は速やかに \(x \approx 0.7390851332\) に落ち着き、これが \(x = \cos(x)\) を満たす値(ドッティ数)で、\(f(x) \approx 0\) となります。
よくある質問
収束しないことがあるのはなぜ? 初期値が適切でないと、発散したり別の根に収束したりすることがあります。また分母 \(f(x+f(x)) - f(x)\) が0になった場合は、計算を安全に停止します。その場合は別の x0 を試してください。
角度は度数法?それともラジアン? 標準的な数学の慣習どおりラジアンです。必要に応じて x*pi/180 で度数を変換してください。
導関数は必要? 不要です。それこそがこの手法の利点で、傾きを関数値だけから推定します。