keisoku

ハーレイ法による求解

関数 f(x)=0 の解をハーレイ法で求めます。式・初期値・許容誤差・最大反復回数を入力すると、近似解と f(解)・反復回数・誤差、反復過程の表と収束グラフを表示します。

入力

例:x^2 - 2、cos(x) - x、exp(x) - 3x、sin(x)。+ - * / ^ や sin/cos/log/sqrt、定数 pi・e が使えます。

例:1e-10

計算結果

近似解 x

1.41421356237

許容誤差の範囲内で収束しました。

f(解) の値

4.4409e-16

反復回数

3 回

最終更新幅

3.6438e-7


残差 |f(x)| の収束(縦軸は対数スケール)

1e-61e-51e-41e-31e-21e-11e0123反復回数

反復過程

xf(x)更新幅 |Δx|
11-10.3999999
21.39999990456-0.0400002670.014213293
31.414213198-1.0306e-63.6438e-7

※ 導関数 f′・f″ は中心差分による数値微分で近似しています。f(x) の形によっては解に収束しない場合があるため、初期値を解の近くに置くと安定します。

計算方法・使い方

  • 関数 f(x) と初期値 x₀、許容誤差、最大反復回数を入力すると、ハーレイ法で f(x)=0 の近似解を計算します。
  • 式には四則演算(+ - * /)やべき乗(^ または **)、括弧、変数 x、定数 pi・e のほか、sin・cos・tan・exp・log(自然対数)・sqrt・abs などの関数が使えます。2x や 2sin(x) のような省略した掛け算も解釈します。
  • ハーレイ法は1階・2階の導関数を使う反復法で、ニュートン法(2次収束)よりも収束が速い3次収束です。解の近くでは反復ごとに有効桁数がおおよそ3倍ずつ増えていきます。
  • 近似解とあわせて、f(解)の値・反復回数・最終更新幅を表示し、各反復での x と残差を一覧表と収束グラフで確認できます。
  • 初期値が解から遠かったり、関数の形によっては収束しないことがあります。その場合は初期値を解に近づけるか、許容誤差や反復回数を見直してください。
  • 導関数は中心差分による数値微分で近似しているため、結果はわずかな誤差を含む近似値です。