计算机的错误计算(一百一十)

摘要  计算机的错误计算(四十五)探讨了(二)中一个循环迭代案例的错误计算原因。本节分析(二)中例1循环迭代错误计算的原因。

例1.  已知 f(x)=111-\frac{1130}{x}+\frac{3000}{x^2}\,,  x_0=6\,.  计算 f(x) 在 x_0 的错数,并用实例分析计算过程中的错误数字数量。

       容易算得,f(x_0)=6\,,  f^{\prime}(x)|_{x=x_0}=3.6\dot{1}\,.  因此,根据计算机的错误计算(一百零四)中有关定义,m_1=m_2=1\,,  m_0=1\,.  这样,错数为 m_1-m_2+m_0=1-1+1=1\,,  或 1-1=0\,.  于是,若 x_0 有一点扰动,函数值可能并且最多有1位错误数字。

       不妨设

\tilde{x}_0=5.\underbrace{999999999999999}_{\textup{15 '9'}}2\,.

利用它计算 f(x_0)=6 的另一个近似值 f(\tilde{x}_0):

f(\tilde{x}_0)=111-\frac{1130}{\tilde{x}_0}+\frac{3000}{\tilde{x}^2_0}=5.\underbrace{99999999999999}_{\textup{\textup{}14 '9'}}7...\,.

这样,\tilde{x}_0 有16位正确数字;而与 \tilde{x}_0 相比,f(\tilde{x}_0) 只有15位正确数字,即减少1位,正好与上面的错数吻合。

例2.  利用例1分析计算机的错误计算(二)中下列循环迭代错误计算的原因:

   

       由于迭代趋向于6,  因此,理论上,迭代若干次后,u_{n-1} 与 u_{n-2} 均很接近于6.  这样,不妨将迭代表达式简化为

111-\frac{1130}{u_{n-1}}+\frac{3000}{u^2_{n-1}}\,.

这时,由例1知,表达式在6的错数为1(或0).  因此,6只要有一点扰动(或误差),输出就可能含有1位错误数字。而上述迭代具有除法,浮点运算下,必定有舍入,所以在迭代时,减少1位正确有效数字的概率为50%.  这样,在没有其它误差的情形下,最多经过约32次迭代后,16位正确数字全部消失。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值