基础
多项式计算
改变多项式的运算顺序,有利于提高计算效率
数字计算机对微小误差会放大,导致计算存在不可靠的风险,本课程目的即是懂得避免并降低这种风险
如果可能,尽量避免很接近的数相减,比如重构表达式,避免相近数的相减
嵌套乘法
嵌套乘法又叫Horner方法,matlab中用nest函数计算
一般形式如下:
其中:(r_1, r_2, r_3, r_4) 称为基点
nest(次数,[系数],求值点,[基点])
nest(4,[-1 5 -3 3 2],1/2,[0 0 0 0])
其中:基点可以省略,求值点也可以是数组来同时求多组数据
二进制数
二进制数表示
实数的浮点表示
浮点格式
IEEE标准由符合、尾数、阶这三部分组成,形式如下:
由于正规化要求最前面的数是1.
常见精度如下:
精度 | 符号 | 阶 | 尾数 |
---|---|---|---|
单 | 1 | 8 | 23 |
双 | 1 | 11 | 52 |
长双 | 1 | 15 | 64 |
定义
机器 (varepsilon) 表示1 与大于 1 的最小浮点数之间的差,记为 (varepsilon_{mach}) ,对于IEEE的double标准来说:
由于机器2进制计数,导致对于有些数不能精确表示,我们可用断位法或舍入法来处理。
最近舍入规则
double类型,二进制数第53位是0,则舍去,否则就进位1到第52位。
误差
绝对误差和相对误差
相对舍入误差
在IEEE标准下,相对舍入误差 (f(x))不大于机器 (varepsilon) 的一半
微积分回顾
定理
介值定理 : 设(f) 是区间 ([a,b]) 上的一个连续函数,那么 (f) 能取到$ f(a)$ 和 (f(b)) 之间的任何一个值。
也就是说存在 (y) 且$f(a) le y le f(b) $ 则存在一个数 (c) 使得 (f(c) = y) 。
连续函数的极限: 设 (f) 是在 (x_0) 的某一个领域内的连续函数,且 $lim_{n oinfty}x_n = x_0 $,那么:
中值定理: 设(f) 是区间 ([a,b]) 上的一个连续可微函数,那么在 (a) 和 (b) 之间存在一个数 (c) ,使得:
Rolle定理: 设(f) 是区间 ([a,b]) 上的一个连续可微函数,并假设 (f(a) = f(b)),那么在 (a) 和 (b) 之间存在一个数 (c) ,使得 (f'(c)=0)
带余项的Taylor公式: 设 (x) 和 (x_0) 是实数,(f) 在区间 ([x_0,x]) 上 (k+1) 次连续可微,那么在 (x) 和 (x_0) 之间存在一个数 (c) ,使得:
或者:
积分形式的中值定理: 设(f) 是区间 ([a,b]) 上的一个连续函数,(g) 是可积函数,并且在 ([a,b]) 上不变号,那么在 ([a,b]) 内存在一个数 (c) ,使得: