计算多项式 Evaluating a Polynomial
求多项式的值的最佳方式是什么?
What is the best way to evaluate a Polynomial?
- 普通办法:直接一次一次算
- 降幂系数:将多项式写成降幂系数形式后嵌套
一般嵌套(Horner)过程:
将P(x) 写成降幂系数形式后嵌套
这样就使用了4次加法,4次乘法
将P(x) 写成降幂系数形式后嵌套
这样就使用了3次加法,4次乘法
二进制数 Binary Numers
二进制转十进制
对于一个二进制数
转为十进制为
关于小数部分的小妙招
将小数部分设x后求解
则可以得到
试一试:把转为十进制(点击查看答案)
答案:
十进制转二进制
假如我们要把十进制数53.7转为二进制数
整数部分
对于整数部分53
所以它的二进制为
小数部分
对于小数部分.7
所以它的二进制为
所以53.7的二进制即为
IEEE 浮点格式 IEEE Floating Point Formats
浮点数由三部分组成:符号(+ 或 −)sign bits、包含有效位串的尾数 mantissa bits,以及指数 exponent bits。这三个部分被存储在一个计算机字中。
这样我们就能表示任何一个值了
试一试:把5.75用single表示(点击查看答案)
先把十进制写成二进制科学计数法
我们可以得到
真实的指数为
对应 32 位布局就是
计算机算术中的舍入误差 Rounding Error
由于位数有限,因此会出现0.1 + 0.2 ≠ 0.3 的情况(因为0.1和0.3无法用有限位数来表示)
误差 Errors
绝对误差与相对误差 absolute error and relative error
设是真值 exact value,是 的近似值 approximate。
绝对误差 absolute error(或直接说error) of
相对误差 relative error of
误差界 Error bound
真值 往往不知道,因而 算不出来,只能找一个上界。若
则称 为 的 误差界 error bound
误差估计 Estimation of error
设 。用近似值 代替真值 ,则 的误差由中值定理给出:
其中 在 x 与 之间。若 很接近 ,可用 近似 ,则
其中 称为 放大因子 amplification factor ,也叫 绝对条件数 absolute condition number。
多变量误差估计
设 。用 代替真值后,
取绝对值,得到绝对误差上界:
计算球体积时,相对误差只允许 。问测量半径时,最大允许的相对误差是多少?
首先,体积公式与绝对条件数为
由微分可得
我们可以得到体积相对误差与半径相对误差的关系
要求 ,因此
假设一个运动场长度为 l=110 米,宽度 w=80 米。我们知道|l − l*|≤ 0.2m, |w − w*|≤0.1 米。求出场面积 s = lw 的绝对误差和相对误差。
已知测量值 ,,且
求偏导
于是绝对误差为
相对误差为
有效数字 Significant Digits
如何计算有效数字?
若 作为 的近似值,其绝对误差不超过某一位数字的半个单位,而该数字到 的第一位非零数字共有 位,则称 近似 时具有 位有效数字。
即存在某个十进制位(单位为 ),使得
666,看得我头晕。。。让我们来把他变得简单一点
如果绝对误差≤.00…05(n个0),则称n+1位有效数字
对于来说
3.141的有效位数是3位(因为)
3.142的有效位数是4位(因为)
3.1415的有效位数是4位(因为)
2300有4位有效数字
有2位有效数字(有效数字只看前面那个系数写了几位 只负责数量级,不增加有效位)
避免有效数字损失的办法
- 避免两个接近数字之间直接相减
- 开方相减
- 对数相减
- 避免大数字直接和小数字运算
- 避免大乘数和小除数
课后作业
把十进制数14.65化为二进制
答案:
把二进制数化为十进制。
答案:
下面的数各有几位有效数字?绝对误差界和相对误差界分别是多少?
答案:
为避免有效数字丢失,应如何计算下列表达式?
答案:
来合个影成为古人吧😎