数値計算の誤差at SIM数値計算の誤差 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト61:名無しさん@5周年 05/12/07 22:50:20 http://forum.sgi.co.jp/ 62: 【末吉】 【1101円】 06/01/01 19:39:26 あけおめ 63:名無しさん@5周年 06/02/28 15:58:45 double left, right; ここの処理で left と right は近接した値になる。 double diff = ( right - left ) * 0.5; double midle = left + diff; right-left が小さいと diff も小さくなって middle == left になることは予想していたのですが middle == right になることもあるんですね… なんでだろう。 64:名無しさん@5周年 06/03/09 07:50:24 2進3bit精度 left =1.01 right=1.10 diff=0.001 left'=1.011 = 1.10 (round to nearest もしくは round to +inf) 65:名無しさん@5周年 06/03/09 08:07:30 ちょうど真ん中の時 +inf 方向に丸められるか -inf 方向に丸められるかは ランタイムもしくはプロセッサ依存ですか? Numerical Recipes in C の二分法による解の探索アルゴリズムでは 中点を left と比較して同じなら停止するように書かれていて 停止しないことがあって、なんでこんな停止条件になっているのか 不思議に思ってました。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch