この実験について
ほとんどの方程式は公式で解けませんが、電卓なら √2 や cos x = x の根を瞬時に求められます。その理由の一つがニュートン法です。まず推定値を決め、接線に沿って x 軸まで進み、その交点を次の推定値として使います。単純根の近くでは、正しい桁数は各ステップでおよそ2倍になります。実際の動きを見てから、今度はうまくいかなくなる様子も見てみましょう。重根、水平な接線、周期軌道、発散、そして複素平面に描かれるフラクタル状の吸引域を確かめます。
学習目標
- 接線の方程式からニュートン反復を導く
- 誤差の表から二次収束を見分ける
- 重根ではなぜ収束が線形になるのか説明する
- ニュートン法が失敗する例を挙げてください:水平な接線、周期軌道、発散
- 吸引域について説明し、複素平面でその境界がなぜフラクタルになるのか説明してください
使い方
- 1x² − 2 と x₀ = 3 を使って、手順を追い、桁の列を観察してください。正しい桁数はおおよそどのように増えていきますか?
- 2f(x) = x² − a のとき、反復が x_{n+1} = (x_n + a/x_n)/2 となること、つまりバビロニア法になることを示してください。
- 3(x − 1)²(x + 2) を選び、2.5 から始めてください。単根の場合と、1ステップごとの誤差を比較してください。比はどうなりますか?
- 4x³ − 2x + 2 を選び、ちょうど 0 から始めてください。何が起こりますか?次に 0.1 または −0.5 から始めてください。
- 5arctan x を選んでください。収束する最大の初期値を小数第2位まで求めてください。
- 6z³ − 1 を使って複素平面に切り替えてください。2色の境界を頭の中で拡大してみましょう。そこに必ず第3の色の点があるのはなぜですか?
モデル
前提条件
- 計算には倍精度(有効数字約16桁)を使用するため、誤差はおよそ10^−16で減少しなくなります。
- 誤差とは、最も近い厳密な根からの距離です。ここに示すすべての関数について、その根は既知です。
- 接線が水平になったとき、|x|が10^6を超えたとき、または40ステップ後に計算を停止します。
- 複素平面では、初期値が50ステップ以内に到達する根の色で色分けし、必要なステップ数が多いほど暗く表示します。根に到達しない点は、ほぼ黒で描画されます。
授業で試してみましょう
- Q1x₀ = 2からニュートン法を2ステップ適用し、10の立方根を推定してください。
- Q2ニュートン法がうまく機能するには、根の近くでf′(x)が0であってはならないのはなぜですか?
- Q3f(x) = 1/x − aに対するニュートン反復を求めてください。除算できないコンピューターにとって、なぜそれが役立つのでしょうか?
- Q4f(x) = x^(1/3)について、x_{n+1} = −2x_nとなることを示してください。これは、どのような初期値について何を意味しますか?
- Q5ニュートン法と二分法を比較してください。有効数字10桁に到達するのに必要なステップ数が少ないのはどちらで、確実に機能するのはどちらですか?
よくある質問
なぜ「ニュートン・ラフソン法」と呼ばれるのでしょうか?
アイザック・ニュートンは1669年、多項式を各段階で書き換える方法を説明しました。ジョセフ・ラフソンは1690年に、より簡潔な反復形式を発表し、トマス・シンプソンは1740年に一般的な微積分版を示しました。
実用的なソルバーは、ここで示されている失敗をどのように回避するのでしょうか?
ニュートン法に二分法などの安全な方法を組み合わせます(ブレント法など)。関数値が大きくなってしまう場合はステップを短くします(減衰ニュートン法や直線探索)。あるいは、別の方法で見つけた良好な初期推定値から始めます。
ニュートン法はどこで使われていますか?
ハードウェアで平方根や逆数を計算するとき、工学や物理学における非線形方程式を解くとき、微分方程式の陰的時間積分、そして最小値を求めるためにニュートン法を勾配に適用する最適化で使われます。
