私が受けた最近の宿題では、コンピューターで実行すると精度が失われる可能性のある式を取り上げ、この損失を回避するように変更するように求められました。
残念ながら、これを行うための指示はあまり明確にされていません。実行されているさまざまな例を見て、これを行う特定の方法があることを知っています: テイラー級数を使用する、平方根が含まれる場合は共役を使用する、または 2 つの分数が減算されているときに共通の分母を見つける.
ただし、精度の低下がいつ発生するかを正確に把握するのに苦労しています。これまでのところ、私が確実に知っている唯一のことは、ほぼ同じである 2 つの数値を減算すると、上位の桁が有効であるため精度が失われ、四捨五入によってそれらが失われるということです。
私の質問は、私が探すべき他の一般的な状況は何ですか、そしてそれらにアプローチするための「良い」方法と考えられるものは何ですか?
たとえば、ここに 1 つの問題があります。
f(x) = tan(x) − sin(x) when x ~ 0
これらの 3 つの選択肢のうち、これを評価するための最良のアルゴリズムと最悪のアルゴリズムは何ですか?
(a) (1/ cos(x) − 1) sin(x),
(b) (x^3)/2
(c) tan(x)*(sin(x)^2)/(cos(x) + 1).
x がゼロに近い場合、tan(x) と sin(x) はほぼ同じになることがわかりました。問題を解決するために、これらのアルゴリズムのいずれかがどのように、またはなぜ優れているか、または劣っているのか理解できません。