- 430 名前:デフォルトの名無しさん [2007/04/27(金) 13:22:12 ]
- 平方根について質問があります.
複素数の範囲で -1 の平方根をとった場合, 精度の関係で +i が出力される場合と -i が出力される場合があります. つまり, Z1 = (-1.d0, 1d-10) Z2 = (-1.d0, -1d-10) のような時に, Q1 = sqrt(Z1) Q2 = sqrt(Z2) を計算したような場合,Q1=i,Q2=-i となります.皆さんはこのような問題を どうやって排除していますか? 絶対値で見たとき,ある値以下では0.d0で置き換えるという作業も考えられますが, 出る値のオーダがあらかじめ分かっているときしかできません. それとも初めからルートをとるような計算を 避けるようなアルゴリズムを考えるのでしょうか? また,平方根をとることによって精度が半分になってしまう場合が多々ありますが,これも諦めるしか ないのでしょうか.例えば理論上では0となるべきところで, R = 1d-10 となっているようなときです. Rと0.d0とを比べたときの誤差は許容範囲内だとしても,sqrt(R)とsqrt(0.d0)とではかなり違ってきており, sqrtを計算するたびに誤差が馬鹿にならなくなってきます... このようなときに行う定石みたいな処理があればアドバイスお願いします.
|

|