- ベストアンサー
数値計算の方法
先に三角関数を含む式の質問をしたものです。 例の式は解に近いところのデータがとれておりますので ニュートン法、2分法などを検討したのですが 式の微分方法が不明なことと、精度が10^(-8)を 最低限保障するために、 両方とも不可と思います。 他に知られている方法はございますでしょうか。 エクセルVBAで解法を考えています。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
先に三角関数を含む式の質問をしたものです。 例の式は解に近いところのデータがとれておりますので ニュートン法、2分法などを検討したのですが 式の微分方法が不明なことと、精度が10^(-8)を 最低限保障するために、 両方とも不可と思います。 他に知られている方法はございますでしょうか。 エクセルVBAで解法を考えています。 よろしくお願いします。
お礼
補足とお礼を混同しました。申しわけありません。 微分式についてですが、K1という変数はSin,Cosだけでなく 一般項(三角関数の記述の外)にもあるのですが、間違いないでしょうか。 例:(R * K1 - Yy) * Sin(K1) R * K1 * Cos(At) * Sin(K1 + At) など 今検証中ですが、本当にすみませんがよろしくお願いします。
補足
R,Xx,Yy,R1,At は既知の数値です。未知数ではありません。 ニュートンの収束精度が10^(-8)を別の箇所で適応していますが R,Xx,Yy,R1,At の数値自体はその適用の範囲外なのでエクセル の持つ精度は維持しています。 yという数値は式(1)=式(2)という意味 その通りです。 f'(K1)=-(R+Xx)*sin(K1)+2*R*sin(K1)+(R*K1-Yy)*cos(K1)+R1*sin(K1-arctan((R*K1-Yy)/Xx))*(1-R/(Xx*(1+(R*K1-Yy)^2/(Xx^2))))-R*cos(At)*sin(K1+At)-R*K1*cos(At)*cos(K1+At) ニュートン法では初期値の選択を誤ると解に行き着きませんが、「解に近いところのデータがとれております」とのことですので、よほど複雑なふるまいの関数でない限り解けるはずです。2分法なら微分も必要ないのでなおさらです。 大変感謝します。実用に生かすのが目的なので、これだけで充分回答を得た と思います。(収束精度の問題がありますが) 関連する質問ですみませんが ニュートンの式で収束精度を10^(-12)程度にするとエラーが 発生します。原因と対策をご教示お願いします。