MCPで接続 →

計算を入力してください

公式

公式: ハーレイ法による求解計算ツール

広告

結果

近似解 x(f(x) = 0)
0.7390851332151607
ハーレイ法による計算結果
反復回数 3
最終残差 f(x) 0.0
計算状態 Converged

ハーレイ法とは

ハーレイ法は、\(f(x) = 0\) という形の方程式を解くための反復数値計算手法です。ニュートン・ラフソン法を発展させた3次収束(cubic convergence)のアルゴリズムで、ニュートン法が関数とその一次導関数だけを使うのに対し、ハーレイ法ではさらに二次導関数を利用します。そのため、同じ精度に到達するまでの反復回数を少なく抑えられるのが特長です。これは特定の国や分野に依存しない普遍的な数学・数値解析のツールで、どのような場面でも使えます。なお、三角関数の角度はすべてラジアンとして扱います。

曲線 f(x) が根で x 軸と交わり、連続する反復点がそこへ収束していく様子
ハレー法は、\(f(x)=0\) となる根に収束するまで推定値を反復的に改良します。

使い方

まず、根を求めたい関数を \(f(x)\) として入力し、その一次導関数 \(f'(x)\) と二次導関数 \(f''(x)\) を \(x\) の式として指定します。使用できる記法は、加減乗除の +、-、*、/、べき乗の ^、かっこのほか、sin、cos、tan、asin、acos、atan、sinh、cosh、tanh、exp、log/ln、log10、sqrt、abs などの関数、そして定数 pi と e です。求めたい根の近くの値を初期値 \(x_0\) として選び、最大反復回数 \(n\) と、結果に表示する有効桁数を設定してください。

計算式の解説

各ステップでは次の式を計算します。$$x_{n+1} = x_n - \frac{2\,f(x_n)\,f^{\prime}(x_n)}{2\,[f^{\prime}(x_n)]^2 - f(x_n)\,f^{\prime\prime}(x_n)}$$分子はニュートン法の補正項(をスケーリングしたもの)に相当し、分母の追加項 \(- f(x_n)\,f''(x_n)\) が \(f\) の曲率を補正することで収束を加速させます。\(x\) の変化量、または残差 \(f(x)\) がごく小さい許容誤差を下回ったとき、あるいは最大反復回数に達したときに計算は終了します。分母が 0 になると手法が破綻するため、その場合は別の初期値 \(x_0\) を試してください。

ある点で関数を近似する接線と曲率を持つ接触曲線を示す図
ハレー法は傾き \(f'(x)\) と曲率 \(f''(x)\) の両方を用い、直線の接線よりも関数によく沿う曲線を当てはめます。

計算例

\(f(x) = x - \cos(x)\)、\(f'(x) = 1 + \sin(x)\)、\(f''(x) = \cos(x)\) とし、初期値 \(x_0 = 1\) から始めます。最初のステップは次のようになります。$$x_1 = 1 - \frac{2 \times 0.4596977 \times 1.8414710}{2 \times 1.8414710^2 - 0.4596977 \times 0.5403023} = 1 - \frac{1.6930504}{6.5336550} = 0.7408769$$反復を続けると、\(x = \cos(x)\) の唯一の解であるドッティ数 \(x = 0.7390851332151607\) にすばやく収束します。

よくある質問(FAQ)

ハーレイ法はニュートン法とどう違いますか? ニュートン法は関数の曲率を考慮しませんが、ハーレイ法は二次導関数の項を加えることで、ニュートン法の2次収束に対して3次収束を実現します。そのため、正しい桁を1桁増やすのに必要な反復回数が少なくて済むのが一般的です。

なぜ導関数まで入力する必要があるのですか? この計算ツールは、入力された導関数をそのまま信頼して計算します。導関数が誤っていると収束が悪くなったり、失敗したりします。\(f(x)\) を丁寧に微分して、\(f'(x)\) と \(f''(x)\) を正確に求めてください。

収束しない場合はどうすればよいですか? この手法は初期値 \(x_0\) に最も近い根を見つけます。初期値が適切でないと発散したり、別の根に収束したりすることがあります。また分母が 0 になると計算は完全に止まります。\(x_0\) を変えるか、導関数の式を見直してください。

最終更新: