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

摘要  回复网友的提问,讨论计算机的错误计算(一百零七)中多项式的秦九韶(Horner)形式的错误计算:在Java与Go语言下,输出与(一百零七)中的输出完全相同,即也是错误结果。

       有网友来信提问:计算多项式,一般采用秦九韶(Horner)形式,这样既提高计算效率,又提高计算精度。那么,现在看看是否能提高计算精度。

例1.  用秦九韶(Horner)算法计算(一百零七)例1中多项式

        不妨用Java编程计算:

import java.lang.Math;
public class PolyHor{
    public static void main(String[] args) {
        double x=45678;
        double c7=111990,c6=5115500000.0,c5=949100000,c4=4058000000.0,c3=1531000000,c2=5781000000.0,c1=350800000,c0=-321499872.52;
        double y=((((((c7*x+c6)*x+c5)*x+c4)*x+c3)*x+c2)*x+c1)*x+c0; 
        System.out.println(y);
    }
}

则运行后输出与(一百零七)的输出相同,为 9.293099042477446E37 .

       若用Go语言编程计算:

package main
 
import (
    "fmt"
)
 
func main() {
    x := 45678.0; 
    c7 := 111990.0; c6 := 5115500000.0; c5 := 949100000.0; c4 := 4058000000.0; c3 := 1531000000.0; c2 := 5781000000.0; 
    c1 := 350800000.0; c0 := -321499872.52;
    result := ((((((c7*x+c6)*x+c5)*x+c4)*x+c3)*x+c2)*x+c1)*x+c0; ;
    fmt.Printf("%v", result) 
}

则运行后输出亦相同,为 9.293099042477446e+37 . 

       这样,对于即使是秦九韶(Horner)形式的多项式,计算机的输出也一样是错误结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值