四則演算はどういう順番で実行すると計算誤差が発生/伝搬しにくいですか
今ある問題は足し算と掛け算とわり算のみで構成されている演算です。
double c, m, d1, d2;
/*それぞれに値を代入*/
double x = (c* m + ( d1 + 1.0/ d2 )/ 2.0 )/ (c + 1.0 );
という式です。この式をMaximaに投げると
double x = (c* m + 0.5*( d1 + 1.0/ d2 ))/ (c + 1.0);
と変形されます。式の整理を行うと
double x = (2.0* c* d2* m + d1* d2 + 1.0)/ ((2.0* c + 2.0)* d2);
のようになります。
そのまま打ち込めば式を間違えることがないのですが
計算誤差まで考慮して式変形をするとなると
割り算や掛け算による誤差が大きいのか
足し算や引き算による誤差が大きいのか
を考える必要があると感じました
どちらの演算子が少ない状態のほうが計算誤差が発生しにくいですか
追記
書籍「数値計算の常識」には式変形により誤差を回避できる例が挙げられているが具体的にどのように式を変形することが誤差の軽減につながるかについては書かれていない。(特に割り算掛け算について)
多倍長演算や加算アルゴリズムの詳解を期待しているのではなく
この質問では式変形により軽減できるのだとしたらどのように変形することが望ましいのかを質問しています。