[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 12:09 / Filesize : 350 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだすれFORTRAN(超初心者用)その2



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を計算するたびに誤差が馬鹿にならなくなってきます...

このようなときに行う定石みたいな処理があればアドバイスお願いします.






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<350KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef