- ベストアンサー
ニュートン・ラプソン法?
数値解析の授業で 平方根Aの近似式 r1=(A/r0+r0)/2.0 A=3,誤差0.0000001とする という数式を与えられました。 これをC言語でプログラムして実行結果を表示させて 理論をかかなきゃいけないのですが、 先生がちらっとこの式はニュートン・ラプソン法を応用したら出てくると言ったんです。 それで本を調べてみたのですがどういう風にしたらこの式が出てくるのかわかりません。 これはニュートン・ラプソン法をどのように応用したら出てくる式なのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
私は高校のときに単にニュートンの方法と学びました f(x)=0を満たすxを求める方法です その根に近いxをαとして (α,f(α))においてy=f(x)の接戦を引くと その好転のx座標はαより根に近くなります (もちろんこの結論はf(x)の形状によります) y-f(α)=f’(α)・(x-α) において y=0とすると x=α-f(α)/f’(α) ですね xはαよりおおむねf(x)=0を満たす点に近いのです (そうでない場合もありますが) f(x)=x^2-Aを代入すればでますね それにしてもラプソンという名前も付いているのですね 暇なときにそうでない例を考えたらいいと思います
その他の回答 (2)
- kony0
- ベストアンサー率36% (175/474)
ご質問からは完全に離れますが、ニュートン法のひどい例を。 f(x)=7x^3+2x^2-16x+16=0の解を、初期点x=0からニュートン法によって求めてみましょう。 ちなみに、この式は(x+2)(7x^2-12x+8)=0と因数分解できますので、x=-2が解となります。(あとは虚数解ですね) ニュートン法、やってみました? 点列は、 x[n+1]=x[n]-f(x[n])/f'(x[n])で求められますから、 x[0]=0→f(0)=16, f'(0)=-16より、x[1]=0-(16/(-16))=1(解から遠ざかってしまいます…) x[1]=1→f(1)=9, f'(1)=9より、x[2]=1-(9/9)=0 ・・・以下、0と1を繰り返します! ・・・こんなこともあるよ、という一例でした。 (たまたま、求める式と初期点がミスマッチだったからこんなことになってしまいました.他にも、f'(x)=0となるxに点列が落ち込んでしまうと、目も当てられないですね。) ちなみに、ご提示の近似式は、任意の点を初期点にしたときに2次収束するという、非常によい性質を持っています。式で示してみてはいかが?(これって、レポートのネタばれになっちゃうんでしょうか?!)
お礼
回答ありがとうございました。 解から遠ざかることもあるんですね。
- siegmund
- ベストアンサー率64% (701/1090)
平方根という問題に即して考えると以下のようになります. √A の近似値 r0 が与えられたとして, 補正 δ を考えましょう. すなわち, (1) √A = r0 + δ もちろん,δが厳密に求められるのなら数値計算などやる必要もありません. で,近似的にδを求めることを考えます. (1)を2乗して (2) A = (r0 + δ)^2 = (r0)^2 {1 + 2(δ/r0) + (δ/r_0)^2} です.ここまでは何も近似していません. 近似値というからには,δ/r0 の絶対値は1に比べて十分小さいはず. で,(2)の{ } 内の最後の項を無視することにすると (3) A = (r0 + δ)^2 = (r0)^2 {1 + 2(δ/r0)} となり,簡単に (4) δ = {(A/r0) - r0}/2 と求められます. そうすると,近似の補正δが求められたのですから (5) r1 = r0 + δ = {(A/r0) + r0}/2 とすれば,もっとよい近似値になるでしょう. ただし,δを求める過程で近似が入っていましたから, (5)も厳密な値ではありません. で,よりよい近似値 r1 がわかったのですから, 今度はそれを r0 と思い直して同じプロセスを繰り返せばよいわけです. まさにコンピューター向きの手法ですね. 一般の方程式については nubou さんの書かれているとおり. 接線を引く ⇔ 変化量(誤差量)について最低次で近似 というところが,(2)→(3)の近似に対応しています.
お礼
回答ありがとうございました。 よくわかりました。
お礼
回答ありがとうございました。 よくわかりました。