计算方法课件第一章
1 In I n 1 n ( n 10,9, ,2,1)
计算结果相当好,见P5表1-2 问题:两个递推公式都对,为何会出现上面这两种截然 不同的现象?
误差分析
例5中对于算法一中的迭代公式进行稳定性分析
I n 1 nI n1 (n 1, 2, , 9) 记 I ( n) 的误差为 n I ( n) I n
则迭代格式
I n 1 nI n1
计算得 I1 0.3679,, I 8 0.7280, I 9 7.552
In
1 ( n 1)e
1 1 n x e 0 x e dx
1 1 1 1 n I 8 0.7280, 0 x n edx e 0 x dx I n e
其解析解(精确解)为 y( x ) e
x2
•为什么要求数值解?
x
0
e dt
t2
而实际中只需知道 y(1), y(1.5) 等近似值。这些近似值 就是数值解。
•如何构造方法(主要思想) 1. 2. 3. 4. 迭代法 以直线代替曲线(非线性问题线性化) 化整为零(离散化) 外推法(加速)
•构造什么样的方法 实用的好的算法有三个标准: 快 ——— 计算步骤少,收敛速度快 准 ——— 数值稳定性好,计算结果可靠性高 省 ——— 节省计算机内存(大型稀疏矩阵问题)
算法的稳定性会是一个非常重要的话题。 n n 0 ( 1) 误差没有增大,算法稳定
n!
稳定性的定义
若一个算法的结果受初始误差影响较小或运算过 • 算法一是数值不稳定的 程中舍入误差不增长,则称此算法为数值稳定的。否 则,是不稳定的。 • 算法二是数值稳定的 具体图示如下 准确初值 准确解 数值稳定性指的是方法,与问题无关; 稳定 近似初值 近似解 数值不稳定的算法是不能用的; 不稳定 不能说方法正确,程序正确,结果就正确。
注:求和时从小到大相加,可使和的误差减小。
例:按从小到大、以及从大到小的顺序分别计算 1 + 2 + 3 + … + 40 + 109
(2) 防止相近的数相减 f ( x h) f ( x h) 例 利用f ( x ) , 求f ( x ) 2h 处的导数值。
解 f ( x )
m
易知
1 x x 10m n. 2
*
定义 设x*为x的近似值, * 0.a1a2 10m a1 0,若 x
1 x x 10m n 且 n是满足此不等式的最大正整数, 2
*
则称 x*具有 n 位有效数字。
结论:1、用四舍五入得到的近似数从最后一位到前面第一位非零 数字为止的所有数字都是有效数字。
1. 快
例1 多项式求值的Horner算法(秦九韶算法P7)
Pn ( x ) an x n an1 x n1 a1 x a0
给定x的值,计算 Pn ( x ) 的值。 算法一 按自然顺序计算
n( n 1) 乘法次数= n ( n 1) 1 2
注:0.2300有4位有效数字,而0.0023只有2位有效。12300 如果写成0.123105,则表示只有3位有效数字。 数字末尾的0不可随意省去!
举例分析:
例 作为0.0509966……的近似值,下列各数有几位 有效数字? 0.051 2位 0.0509 2位 0.05100 4位 0.05099
2、若x*具有n位有效数字,则 x - x*
897932 ; * 3.1415 例 3.1415926535 问: * 有几位有效数字?请证明你的结论。
1 10m n. (绝对误差限) 2
证明
π* 0 .31415 101 , an d |π * π| 0 .5 10 3 0 .5 101 4 * 有 4 位有效数字,精确到小数点后第 3 位
算机,要连续工作30多万年才可完成;而用Gauss消去法,
乘除次数为 n3 / 3 n2 n / 3 ,只需 3 105 秒.
例3 计算积分的梯形公式与Simpson公式(以后讲);
非线性方程求根,Newton法比二分法快。
2. 准
例4 求根 x 56 x 1 0,假设计算机有尾数为5位,
建立模型时产生 本课不讨论
求解模型时产生
本课主要讨论
1.模型误差
2.观测误差 3.方法误差或 截断误差
收敛性
涉及
4.舍入误差
稳定性
涉及
二、基本概念
误 差
假设x为准确值,x*为近似值 绝对误差 绝对误差限 相对误差 相对误差限
e x x*
:| e | 的一个上界, | e |
e e * er * er x x
r
:| e |的一个上界,| er | r
r
有效数字
用科学计数法,记 x 0.a1a2 10 (其中 a1 0 )。则按 四舍五入得 0.a1a2 an 10m , 0 an1 4 * x 0.a1a2 an 10 n 10m ,5 an1 9
x1 b b 2 4ac 109 , 2a x2 b b 2 4ac 0 2a
b sign(b) b 2 4ac 109 算法2:先解出 x1 2a c c 109 x2 9 1 再利用 x1 x2 a a x1 10
~ I 9 7.552
1 n1
What happened ?!
1 1 I8 9e 9
1 1 I9 10e 10
I8 , I9严重失真.
不稳定的算法,结果不可靠。
解法二
取
易知
I10 0
1 0 I ( n) 0 n1
将迭代格式 I n 1 nI n1 变形成如下格式
b b 2 4ac x 2a
在计算机内,109存为0.11010,1存为0.1101。做加法时 两加数的指数先向大指数对齐,再将浮点部分相加。即1 的指数部分须变为1010,则:1 = 0.0000000001 1010, 取单精度时就成为: 109+1=0.100000001010+0.00000000 1010=0.10000000 1010 大数吃小数
则
()
n I (n) I n (1 nI (n 1)) (1 nI n1 ) n( I (n 1) I n1 ) n n1 n[( n 1)] n 2 (1) n! 0
n
误差逐渐增大,(*)式不稳定
(3) 防止绝对值很小的数做分母
t 1.01 /x, 取 x 105 , 则 t 1.01/x 1.01105 例 x 1.01105是近似值, 则 t 1.01/x 105
t t 1000
3 、省
§2 误差的来源和基本概念
一、误差的来源
3位
三、有效数字与误差限的关系
1、有效数字与绝对误差限的关系 设 x 的近似值 x*为: x
在4位机上仍取h 0.0001, 算得有f (2) 0.35356.
几种经验性避免方法:
xε x ε ; xε x
ε ln x ε ln x ln 1 ; x
2
Байду номын сангаас
x 当 | x | << 1 时: 1 cos x 2 sin ; 2 1 2 1 x e 1 x 1 x x ... 6 2
嵌套算法(Hornor,秦九韶)
加法次数= n
算法二
Pn ( x ) (((an x an1 ) x an 2 ) x a1 ) x a0
乘法次数=加法次数= n
例2 用Cramer法则来求解一个n阶线性方程组,共需要
n!(n 1) n 次乘除法。
2
若要求解一个20阶方程组,用每秒一亿次乘除法的电子计
•基本的数学问题?
1.大型线性代数方程组Ax=b求解; 2.矩阵A的特征值和特征向量计算; 3.非线性方程 f ( x ) 0 的求解(求根); b 4.积分 f ( x ) dx 计算; a 5.常微分方程初值问题求解; 6.其它。
y 1 2 xy 例如 常微分方程的初值问题 y(0) 0
内
第一章 绪 论
容
第二章
非线性方程求解
第三章 线性方程组求解 第四章 插 值 法
第五章 第六章 第七章 曲线拟合和函数逼近 数值积分和数值微分 常微分方程数值解法
第一章
§1
绪论
计算方法的研究对象和特点
§2
§3
误差及其基本概念
数值计算的原则
§1 计算方法的研究对象和特点
计算方法的研究内容:构造算法(数学问题数值解的 计算方法)
x 在x 2
xh xh 2h
2 h 2h f ( 2 ) 2h
在4位机上, h 0.0001, 取
1.4142 1.4142 f (2) 0 0.0002 1 精确值 f (2) 0.353553 2 2
解决办法: f ( 2)
2h 2h 2h ( 2 h 2 h )2h 2h
同样对于算法二中的迭代公式进行稳定性分析
1 In I n 1 ( n 10,9, ,2,1) n I ( n) 的误差为 n I ( n) I n 记 1 (1 I ( n)) 1 (1 I ) 则 n1 I ( n 1) I n1 n n n I ( n) I n n 在我们今后的讨论中,误差将不可回避, n n