2005-04-09 (土)
*DoJa::自作の浮動小数点数クラス
どうも,三角関数の計算結果が1に近い場合の誤差が大きすぎるのに気付いて,何時間もマクローリン展開した式をごちゃごちゃといじってたのですが,結局乗算のバグでした.桁あふれの処理で,数値が32ビットだと思って計算してました(Javaのlongは64ビット).
直したら,常に15桁以上の精度が出るようになりました.表示するのは12桁の予定なので問題無いでしょう.指数部の基数が10なのはやっぱり失敗だったかも.普通ならビットシフトで済むところで割り算がたくさん出てきます.まぁ,電卓に計算速度は求めないでしょうが….
今日は,atan,asin,acosを作ることに.atanの式は検索したら見つかったので,それを参考に.asin,acosを展開しようと思ったけど,そもそも逆三角関数の微分をやったことが無い.で,調べてみたけど,これって高校数学でも十分ですね.
というか,数IIIの積分の問題で似たような式を見たような…….
高校の数学の先生が,わけの分からない微積の問題の多くは大学で出てくる問題の特殊な形になっていることが多いような事を言っていましたが,これもきっとそうですね.高校の時は変な式や双曲線を積分したりしていると,なんで三角関数なんかが湧いて出てくるのかさっぱり分かりませんでしたが…….
眠いので明日にしよう….