- ベストアンサー
根号の中が負の時の計算機での正負判断は?
コンピュータで数値計算(言語はFortranやC)をする時、次のような場合はどう扱われるのでしょうか。 例1.sqrt(-4)の解は±2iの二つあるが、コンピュータではどうなる? 例2.a>b>0の時、sqrt(b-a)の解の正負符号はどうなる。 最初の値の符号に合わせられると聞いたことがあるが、本当ですか。もしそうならsqrt(b-a)=+・・・ 、sqrt(-a+b)=-・・・ となるのでしょうか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
言語依存. もっというと,同じ言語であっても ライブラリ依存でしょう. たとえば,Perlだと use strict; use warnings; use Math::Complex; print sqrt(-4); これでしっかり,2i と答えがでてくるけど, Math::Complexを使わないと当然エラー
補足
No1,No2の方へ、まとめてお礼申し上げます。 以下の例題で簡単なプログラムをFORTRANでつくり、実際に試した結果を報告します。csqrtは複素数の平方根をとる組み込み関数です。 a=-6.0, b=2.0 x=csqrt(a+b), y=csqrt(b+a) , xおよびyの結果はどちらも2iでした。 結論として私の使っている環境では、数学的な解である±2iのうち、 正の2iがアウトプットされるようです。応用として、負の解が必要な場合があるので今回の質問をしましたが、その点は自分で判断基準を ソフトに入れる必要があるようです。