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

摘要  用错数解释计算机的错误计算(一百一十八)中的错误计算。

       计算机的错误计算(一百一十八)给出一个循环迭代

用C语言或Java编程计算,则 y_9 均是错误结果。

       下面用错数解释其出错原因。

       首先,将迭代看作 f(x)=\sin(121\times\arcsin(x))\,.  这时,由于 f(x)=x=0.5\,,  所以 m_1=m_2=0\,.  从而错数 m_1-m_2+m_0=m_0\,. 

       其次,

f'(x)|_{x=0.5}=121\times\frac{\cos(121\times\arcsin(x))}{\sqrt{1-x^2}}|_{x=0.5}=121\,. 

因此,错误为 m_1-m_2+m_0=m_0=3  或 3-1 = 2\,.

       这样,循环迭代最好的结果是每次仅有2位错误数字,即 y_1 到 y_9 依次含有 0位、2位、4位、...、16位错误数字;最坏的结果为 y_1 到 y_7 依次含有 0位、3位、6位、9位、12位、15位、18(或16)位错误数字。即最坏情形下,y_7 是错误结果,最好情形下,y_9 是错误结果。这里错误结果的意思是不含有正确有效数字。

       点评:有读者提问,这样的案例多吗?如何构造?

       答:其实不难。对于不动点来说,由于自变量与函数值相同(或几乎相同),因此,错数公式中只剩下导数的扩展整数位数。于是,只要导数含有整数部分,那么循环时,就会不断产生错误数字,从而不断减少正确数字,最终得出错误结果。

       比如,

y_0=-0.5\,, \\y_n=\cos(50\times \arccos(y_{n-1}))\,.

其对应导数含有2位整数,所以循环时,y_{16} 一定是错误结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值