《数值分析》1
主要内容:
科学计算的背景关于计算误差讨论 浮点数与有效数字 算术运算的误差估计
科学计算的背景
数值分析——研究用计算机求解数学问题的数值计算方法及其理论
1. 方程组求解 2. 方程求根 3. 数据插值 4. 数据拟合 5. 数值积分
6. 微分方程求解
1. 不能进行实验 的问题(如:宇宙模
拟)
2. 实验代价太大 的问题(如:核爆) 3. 大规模问题
1. 误差多大?
2. 收敛?
3. 收敛速度?
4. 解是否稳定?
近似解!(Not 精确解)
求未知数据的迭代计算技术步骤:
l
初始猜测数据;l
迭代计算格式;l
迭代序列的收敛性分析;l
计算复杂性分析,……评价算法的主要指标: 速度和精度 科学计算的背景
数学模型 实际问题
获取数据
数值方法、程序 数据结果
通信卫星覆盖地球面积
将地球考虑成一 个球体, 设R为地 球半径,h为卫星 高度,D为覆盖面 在切痕平面上的 投影(积分区域)
D
y dxdy x
R
R
2 2
2
参考P.190 科学计算的背景
误差分类一 (种类):
l
迭代计算格式误差l
模型误差: 建立数学模型时所引起的误差;(模型合理?)l
观测误差: 测量工具的限制或在数据的获取时随机因素所引起的 物理量的误差;(获取数据准确?)l
截断误差: 求解数学模型时,用简单代替复杂,或者用有限过程代 替无限过程所引起的误差l
舍入误差: 计算机表示的数的位数有限,通常用四舍五入的办法 取近似值,由此引起的误差(四舍五入误差,不可避免)(例:非线性问题的线性化)
关于计算误差讨论
误差分类二(数学定义) :
l
绝对误差:l
相对误差:而称假设某一数据的准确值为
x *
,其近似值为x,
则称
为
x的绝对误差
为
x 的相对误差
关于计算误差讨论
误差限 :
l
绝对误差限:l
相对误差:如果存在一个适当小的正数
ε
,使得
x x x
e ) (
则称
ε
为绝对误差限。如果存在一个适当小的正数
ε r
,使得r
r
x
x x
x x x e
e
(
)
)
(
称
ε r
为相对误差限。关于计算误差讨论
n m
a a
a
x 0 . 1 2 10
十进制浮点数表示
l
一台微机价格:¥3999.00, 浮点数表示:0.3999×104
l
地球半径: 6378137m, (6.378137e+006) 浮点数表示: 0.6378137×107
l
光速: 2.99792458e+008浮点数表示: 0.299792458×10
9
尾数部 阶码部 浮点数与有效数字
的有限位数如下( ≈3.1415926)
取
x 1
= 3, - x 1
绝对误差限不超过0.5;取
x 2
= 3.14,绝对误差限不超过0.005 ;若近似值
x
的绝对误差限是某一位上的半个单位,该位到 x 的第一位非零数字一共有 n 位
,则称近似值x 有 n 位有效数字.
取
x 3
= 3.1416,绝对误差限不超过0.00005 ;有效数字概念:
浮点数与有效数字
(上述:1,3,5位有效数字)
n m
a a
a
x 0 . 1 2 10
( ) 1 10
2
e x x x m n
r x a n
e 5 10
1
) (
一个有n 位有效数字的数
绝对误差限满足:
相对误差限满足
:
浮点数与有效数字
例1 已知 的十进制浮点数第一位是5,要使近似 值的相对误差限小于0.1%,问浮点数的有效数字的 位数至少应该为多少?
解: a
1
=5,利用不等式n
r x a n
e 5 10 10
1
| ) (
|
所以,浮点数的有效数字位数至少应取3位。
取n≥3,有
|e
r
(x)|≤10-3 30
浮点数与有效数字
1.一元函数 y=f(x)误差分析( 准确值 y*=f(x*) ) 由Taylor 公式
) 2 (
)
* ) (
( )
* (
) (
*)
( x f x x x f x x x 2 f
f
) (
| ) (
|
| ) (
||
*
|
|
*
|
| ) (
| e y y y x x f x f x x
) ( ) |
(
)
| ( )
( x
x f
x f
y x r
r
同理:
) (
|) (
| )
( y f x x
所以
反问题:估计
r (x )
算术运算的误差估计
2.多元函数 z = f(x
1
,x2
,···,xn
)误差分析
n
k k
k
x x z f
1
) (
|
| )
(
) (
) (
)
( x 1 x 2 x 1 x 2
(1)
2 2
1 2
2 2 1
1 / ) | | ( ) | | ( )
( x
x x
x x x
x
(3)
) (
|
| ) (
|
| )
( x 1 x 2 x 1 x 2 x 2 x 1
(2)
数据误差对算术运算影响 算术运算的误差估计
例
2
.二次方程 x2
– 16 x + 1 = 0, 取用不同算法计算 ,有效数字如何变化?
937 .
7 63 63
1 8 x
解:直接计算 x
1
≈8 – 7.937 = 0.063修改算法
000005 937 0
15
0005 0
937 15
937 15
2
1 2 .
) .
( . )
. (
) .
) (
(
x
0005 .
0 )
937 .
7 ( )
8 ( )
( 1
x
计算出的x
1
具有两位有效数(数0.0005->0.063位数)(数0.000005->0.062位数) 算术运算的误差估计
1
= 1 0 .0 6 2 8 + 6 3
x
参考文献
[1]李庆扬 关治 白峰杉, 数值计算原理(清华) [2]蔡大用 白峰杉, 现代科学计算
[3]蔡大用, 数值分析与实验学习指导 [4]孙志忠,计算方法典型例题分析
[5]车刚明等, 数值分析典型题解析(西北工大) [6]David Kincaid,数值分析(第三版)
[7] John H. Mathews,数值方法(MATLAB版)
练习与思考
一、通过网络查找相关资料:
1.关于圆周率的计算方法;
2. IEEE754浮点数标准(如:二进制浮点数表示).
二、回顾微积分内容
1. 球冠面积和体积计算公式及变形;
2. 一元函数及多元函数台劳展式.
三、了解重要数据
1.地球半径、地月距离、太阳半径、……
2.微处理器尺度、普朗克常数、……
学到了什么?
科学计算的背景 关于计算误差讨论
浮点数与有效数字 算术运算的误差估计