当前课程知识点:计算方法 > 第1章 计算方法概论 > 1.5 四则运算与函数求值的误差 > 1.5 四则运算与函数求值的误差
今天介绍第五节
四则运算与函数求值的误差
带误差的数据进行数值计算
必然导致计算结果也出现误差
本节推导四则运算的误差
与函数求值的误差
首先介绍四则运算的误差
设x是x*的近似数
我们把x的绝对误差
表示为e(x)
等于x*-x
将x的相对误差
表示为er(x)
等于绝对误差除以x
我们也可以
把绝对误差用dx来表示
对应的相对误差
可以表示为dx/x
这是因为
根据微分学原理
自变量的改变量
等于其自身的微分
当自变量的改变量很小时
函数的改变量也可以用微分近似
这样我们就把x的绝对误差
当成是它自身的改变量
用它的微分
来近似
同样x的相对误差就可以表示成dx/x
一般的
设u=f(x,y)是一个
二元可微函数
则我们可以把函数u的绝对误差
用他它的微分du来近似
根据全微分公式
等于f对x的偏导数
乘以dx
加上f对y的偏导数
乘以dy
u的相对误差
近似于
du/u
那么利用这个关系式
我们就可以讨论
两个数的四则运算的误差
这里
我们将二元函数
分别表示为x加减y
x乘以y
x/y
这里y不等于0
先来考察四则运算的绝对误差
x加减y的绝对误差
近似于
x加减y的微分
根据微分法则
等于dx加减dy
那么我们就导出来了
和或差的
误差限
小于等于
dx的绝对值
加dy的绝对值
也就是
和或差的误差限
不超过
自变量的
误差限之和
x乘以y的绝对误差
约等于
x乘以y的微分
根据微分法则
等于
ydx
加xdy
那我们就得到了乘积的绝对误差限
等于
ydx+xdy的绝对值
x除以y的绝对误差
约等于
x除以y的微分
那么根据
商的微分法则
等于ydx-xdy
除以y的平方
这里我们假设
分母y不等于零
以上
利用微分法则
我们推导出四则运算的绝对误差限
下面我们来考察
四则运算的相对误差
首先来讨论
和或差的相对误差
按照定义
和或差的相对误差
近似于
和或差的微分
比上
x加减y
那么根据
微分法则
以及不等式
我们最后放大为
和或差的相对误差
的误差限
小于等于
x的相对误差限
乘以x比上x加减y的绝对值
加y的相对误差限
乘以y比上x加减y的绝对值
下面我们分别讨论
和或差的
相对误差限
这里我们假设
x与y符号相同
先考虑
两个同号数相加的相对误差限
那么我们把上式中的减号去掉
得到x加y的相对误差限
小于等于x的相对误差限
乘以
x比x+y的绝对值
加
y的相对误差限
乘以y比x+y的绝对值
由于我们假设x与y
符号相同
这样就保证了
x/x+y总是正数
因此
它的绝对值就等于它自身
类似
y/x+y也是正数
它的绝对值也等于它自身
我们记
x的相对误差的绝对值
与Y的相对误差的绝对值的最大值
为Mxy
那么根据上式
我们就得到了
下面的一个不等式
上式小于等于
Mxy
乘以
x+y/x+y
化简之后就等于Mxy
这样我们就可以将
两个同号数
之和的相对误差限
简化为
x的相对误差
与y的相对误差绝对值的最大值
再来考虑
差的相对误差
将加号去掉
我们得到了两个同号数相减的
相对误差限
注意
右边这个式子
不能再简化了
下面我们再来讨论
乘积或商的相对误差限
按照定义
我们得到了
x乘以y的相对误差限
小于等于
x的相对误差的绝对值
加上y的相对误差的绝对值
同样
x除以y的相对误差的误差限
也是小于等于
x相对误差的绝对值
加y相对误差的绝对值
那么也就是说
乘积或商的相对误差限
为自变量的相对误差限之和
特别的
如果y等于f(x)是一元函数
我们也有y的绝对误差
近似于y的微分
dy
或者是df
等于f’(x)dx
y的相对误差
约等于df/f
特别
如果我们取f
为一个具体函数
比如说x的n次幂
那我们就得到了
f的
绝对误差
约等于df
等于n倍的xn-1乘以dx
f的相对误差
约等于df/f
等于n倍的
dx/x
也就是n倍的x的相对误差
下面我们做一个填空题
已知自变量
的相对误差er(x)等于0.05
求
x的100次幂的相对误差
根据上述公式
n取100
我们就得到了
x的100次幂的相对误差
就等于5
以上
我们讨论了四则运算的
绝对误差和相对误差
总结一下我们特别关注以下两点
第一点在
做商的运算的时候
它的绝对误差
与分母有关
当分母过小的时候
会产生比较大的绝对误差
第二点
同号数相减
它的相对误差
与这两个数的接近程度有关
相近的两个数相减
会产生比较大的相对误差
综上
我们总结了数值计算中需要
注意的四点问题
分别是
防止相邻数相减
防止大数吃小数
防止接近零的数做除数
注意计算步骤的简化
减小运算次数
在数值计算中
如果遇到
一到四
这样的问题
我们要设法
改进公式
来
减小误差
下面我们举例
当x充分大的时候
我们来计算根号x+1减根号x
当x较大时上式属于相近数相减
这个时候我们就要利用
恒等式
a减b等于a方减b方除以a加b
这样一个公式来改进上面的公式
把上面的公式转化为
根号x+1加根号x分之一
这样就去掉了相近数相减
从而保证所得的结果是可靠的
再看一个例子
计算(1-cosx)/sinx
假设x等于2度
x等于2度
比较小
这样的话sinx
接近于零
而cosx接近于1
出现了
相近的数相减
以及小分母的问题
那么我们需要将上式变形
将分子分母
同乘1+cosx
通过三角公式
最后把原公式
变形为
sinx/(1+cosx)这种形式
而去掉了刚才我们说的相近的数相减
以及小分母的问题
保证
我们公式
计算出来的结果是可靠的
第二个问题防止大数吃小数
如果在数值计算中遇到这样的问题
我们也要设法
改进公式来避免大数吃小数
举例
十进制五位字长的计算机数系中
我们来计算23456+0.2+0.4+0.4
我们把上面的和式
表示成五位字长的机器数
然后在靠高阶
那么每一个机器数
表示成10的5次方乘以尾数
大家看到后面这三个机器数
他们的尾数的位数都达到六位
而且第六位分别是2、4、4
从左至右相加的时候
第六位都被舍掉了
所以最后的结果呢
还是
23456
显然这个结果是错误的
这就是所谓的大数吃小数
对阶的时候小数被吃掉了
那么如果我们将
这个算式反序排列
小数放在前面
大数放在后面
先将前面的小数相加
最后再与大数相加
就会得到正确的结果
另外
我们还要注意
防止接近零的数做除数
以及简化计算步骤
减小运算次数
本节推导了四则运算的误差界
总结了数值计算中
需要注意的四点问题
分别是防止相近数相减
防止大数吃小数
防止接近零的数做除数
简化计算步骤
减少运算次数
-1.1 引言
--1.1 引言
-1.2 算法与效率
-1.3 计算机数系与浮点运算
-1.4 误差与有效数字
-1.5 四则运算与函数求值的误差
-1.6 问题的性态与条件数
-1.7 算法数值稳定性
-第1章 作业
--第一章 作业
-2.1 引言 2.2 线性空间
-2.3 内积空间与元素的夹角
-2.4 赋范线性空间
-2.5 向量范数与向量序列极限
-2.6 矩阵范数
--2.6 矩阵范数
-第二章 作业
--第二章 作业
-3.1 引言
--3.1 引言
-3.3 不动点迭代法
--3.2 二分法
-3.4 不动点迭代法的收敛条件
-3.5 牛顿迭代法及其变形
-3.6 迭代法收敛阶
-3.7 重根的计算与加速收敛
-3.8 数值实验
--3.8 数值实验
-第3章 作业
--第3章 作业
-4.1 引言
--4.1 引言
-4.2 Lagrange插值
-4.3 Lagrange插值余项
-4.4 Newton差商插值
-4.5 Hermite插值
-4.6 分段多项式插值
-4.7 三次样条插值
-4.8 数值实验
--4.8 数值实验
-第4章 作业
--第4章 作业
-5.1 函数逼近与曲线拟合基本概念
-5.2 连续函数的最佳平方逼近
-5.3 曲线拟合的最小二乘法
-第5章 作业
--第5章 作业
-6.1 引言 6.2 高斯消元法
-6.3 矩阵分解与应用
-6.4 误差分析 6.5 数值实验
-第6章 作业
--第6章 作业
-7.1 引言 7.2 线性方程组的迭代法(上)
-7.2 线性方程组的迭代法
-7.3 非线性方程组的迭代法
-7.4 数值实验
--7.4 数值实验
-第7章 作业
--第7章 作业
-8.1 引言
--8.1 引言
-8.2 幂法与反幂法
-8.3 矩阵的正交分解
-8.4 QR方法
--8.4 QR方法
-8.5 Jacobi方法
-第8章 作业
--第8章 作业
-9.1 引言
-9.2 牛顿-柯特斯公式
-9.3 复合牛顿-柯特斯公式
-9.4 龙贝格算法
-9.5 高斯型求积公式
-9.6 数值微分
--9.6 数值微分
-10.1 引言
--10.1 引言
-10.2 梯形公式和改进的欧拉方法
-10.3 单步法的误差与稳定性收敛性
-10.4 高阶单步方法
-10.5 线性多步法
-10.6 多步法的误差与稳定性
-10.7 一阶微分方程组与高阶微分方程
-第10章 作业
--第10章 作业