$\cos^2x-\sin^2x$相对误差计算结果与书本不符,请教错因
问题分析与修正
你计算时的核心错误出在两个地方,咱们一步步拆解:
1. 错误地简化了$\cos x$和$\sin x$的舍入值
首先,$x=0.7854$非常接近$\pi/4$(≈0.7853981634),对应的$\cos x$和$\sin x$实际值是:
- $\cos(0.7854)≈0.7071054825$
- $\sin(0.7854)≈0.7071080798$
按照尾数保留六位的舍入存储规则,这两个值应该舍入为:
- $fl(\cos x)=0.707105$(第七位是4,直接舍去)
- $fl(\sin x)=0.707108$(第七位是0,直接舍去)
而你直接取了四位小数的$0.7071$,这一步就丢失了关键的精度信息,导致后续结果完全偏离。
2. 忽略了运算过程中的每一步舍入要求
题目要求的是对整个表达式采用尾数保留六位的舍入存储,意味着每一步运算后都需要做尾数六位的舍入,而不是只对最终结果舍入:
- 计算平方并舍入:
- $(0.707105)2≈0.499997481025$,舍入六位尾数后得到$fl(\cos2x)=0.499997$
- $(0.707108)2≈0.500001723664$,舍入六位尾数后得到$fl(\sin2x)=0.500002$
- 做减法并舍入:
- $0.499997 - 0.500002 = -0.000005$,舍入后结果为$fl(f(x))=-5\times10^{-6}$
3. 正确计算相对误差
现在用舍入后的结果和真实值计算相对误差:
$$
\frac{|fl(f(x)) - f(x)|}{|f(x)|} = \frac{|-5\times10^{-6} - (-3.673205105\times10{-6})|}{|-3.673205105\times10{-6}|} \approx \frac{1.3268\times10{-6}}{3.6732\times10{-6}} \approx 36%
$$
这样就和书本给出的答案一致啦~
内容的提问来源于stack exchange,提问作者gbox
相关产品推荐
相关产品推荐

