- ベストアンサー
ニュートン法で問題が途中までしか解けません
ニュートン法で初期値:x1=π として0=sinx-x/2の解を求めます。 |x(i+1)-xi|=10^-3 のときに収束したとしてx(i+1)を解とするのですが まず f(xi)=sinxi-xi/2 f'(x)=cosxi-1/2 として x(i+1)=xi-f(xi)/f'(xi)として解いていったのですが x1=π x2=2.094395102 x3=1.913222955 ここまでは順調だったのですがx4で値が急に4を超えてしまってわからなくなってしまいました。x4はx(i+1)=xi-f(xi)/f'(xi)のxiにx3の値を入れただけなのですが何度計算してもうまくいきません。 どこか方法が間違っていたら指摘お願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
#1,#4です。 三角関数は何を使って計算していますか? 勝手に予想させていただくと、関数電卓を使用していませんか? x3まではラジアンで計算していたのにx4で度になったのは、関数電卓のモードがラジアン(Rad)から度(Deg)にかわったからと予想します。 この場合はラジアンモードにするのを推奨します。 別の方法で計算している場合などで、どうしても度でしか三角関数を計算できない場合はラジアン→度に変換してから計算してください。 f(x3)=SIN(1.913222955×180/π)-1.913222955/2 #4の補足に書かれた式と180とπが逆になります。 ここで気がついたのですが#1で私が書いた数値が間違えていました。x3なのにx4の数値を書いてしまいました。 正しくは f(x3)=-0.014668836 f’(x3)=-0.835773823 でした。 たいへん重要なところを間違えていました。申し訳ありませんでした。
その他の回答 (5)
- banakona
- ベストアンサー率45% (222/489)
#4さんに一票。#1さんへの補足にほぼ一致することを確認しました。 x4だけradではなく度になった理由は謎ですが。
- guzuryu
- ベストアンサー率58% (7/12)
#1です。 三角関数の計算を度で計算しているようなきがします。 fとf' の関係からラジアン単位のはずなので、ラジアン単位で計算しているか確認してください。
補足
ラジアンに戻していませんせした。 ラジアンに戻して計算するということは f(x3)=sin(1.913222955×(π/180))-1.913222955/2 ということでいいのでしょうか? 質問が多くて申し訳ありません。
- nag0720
- ベストアンサー率58% (1093/1860)
もしかして、 x4=x3-f(x3)/f'(x3) とすべきところを、 x4=x3-x3/f'(x3) としていない?
- banakona
- ベストアンサー率45% (222/489)
#1さんと同様、ちゃんと求まりました。 f(xi)とf’(xi)が逆になっていませんか? x4だけ逆と言うのも変ですが。
- guzuryu
- ベストアンサー率58% (7/12)
同じ計算をMicrosoft Excelで計算してみたのですが、x3までは同じで、 x4=1.895671752 になりました。 ちなみに、 f(x3)=-0.000145379 f’(x3)=-0.81919073 でした。この数値は同じでしょうか?
補足
みなさん回答ありがとうございます。 式は x4=x3-(sinx3-x3/2)/(cosx3-1/2) でx3に1.913222955の値を入れたのですが x4=1.913222955-(-0.9232256428)/(0.4994425376) =3.761798713となってしまいました。
お礼
関数電卓を使用しています。 できない理由がやっとわかりました。 関数電卓はあまり使用しないのでそのモードをあることを知りませんでした。 何度も質問に応えていただき本当にありがとうございました。