数值分析/基础
基础
多项式计算
改变多项式的运算顺序,有利于提高计算效率
数字计算机对微小误差会放大,导致计算存在不可靠的风险,本课程目的即是懂得避免并降低这种风险
如果可能,尽量避免很接近的数相减,比如重构表达式,避免相近数的相减
嵌套乘法
嵌套乘法又叫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\to\infty}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\) ,使得: