数 值 分析 游 雄 youx@njau 南京农业大学理学院 2010 年 9 月 -2011 年 1 月
Post on 30-Dec-2015
123 Views
Preview:
DESCRIPTION
TRANSCRIPT
数 值 分析游 雄
youx@njau.edu.cn
南京农业大学理学院2010 年 9 月 -2011 年 1 月
Numerical Analysis
You Xiong
youx@njau.edu.cn
College of Science Nanjing Agricultural University
Sept. 2010-Jan. 2011
Homework: 15%
评分 Grading Policy
Final exam: 70%
Numerical Experiments: 15%(please send to youxiongnew@163.com)
李庆扬、王能超、易大义 . 数值分析 , 第五版 .北京,清华大学出版社 , 2008.
Text Book
J. Mathews and K. Fink. Numerical Solutions Using Matlab, 3rd edition. Clifford A Shaffer, 1999. ( 电子工业出版社,影印版, 2002)
Reference Book
5
第 1 章
数值分析与科学计算引论
6
1.1 数值分析的对象、作用与特点
1.2 数值计算的误差
1.3 误差定性分析与避免误差危害
1.4 数值计算中算法设计的技术
1.5 数学软件
7
数值分析也称为计算数学,或称计算方法,是数学科学的一个主要分支 .
( 1 )对实际问题建立数学模型;
计算数学研究用计算机求解各种数学问题的数值计算方法及其理论与软件实现 . 其基本过程为:
1.1 数值分析的对象、作用与特点
( 2 )对数学模型,设计数值计算方法,对给予理论分析;
( 3 )利用数学软件编制程序,在计算机上计算出结果。
8
建模
实际问题
数学模型
上机计算求出结果
数值计算方法算法设计
数学软件编程
9
数值分析的主要内容:
( 1 )函数的数值逼近(插值)、与数据的曲线拟合
( 2 )数值线性代数(线性方程组与矩阵特征值的数值求解)
( 3 )数值微分与数值积分( 4 )非线性方程数值解
( 5 )微分方程数值解(常微和偏微)等 .
( 6 )数值优化等 .
10
数值计算的基本思想:近似
常用近似手段:连续问题离散化 → 数值问题
【例】微分方程初值问题:
0)0(,d
d 22 yyxx
y
的解是一个连续函数: ).(xyy
数值问题 : 给出函数 )(xyy 在区间 [a, b]内一系列离散点
niihaxi ,,2,1 , 上的近似值 .,,2,1 ),( nixyy ii
近似值满足一定的精度要求 .
【算法研究的重要性】 ---- 以行列式的计算为例
常用算法:n
n
nni
iiiii
iiinn aaaA
)(
21)(
21
21
21)1()det(
其中 )( 21 niii 是 1,2,…,n 的一个全排列, )( 21 niii 是
)( 21 niii 的逆序数 .
乘法次数: (n- 1)n!
Gauss 列主元消去法( Ch5 ) : n=20, n+1 个行列式,需 3060 次乘除法 .
用 2 亿次 / 秒的计算机: 计算 20 阶行列式需732.8948 年, 计算 100 阶行列式需 1.464910143 年!
12
( 1 )简单操作:算术运算( + , - , ×, / ) , 逻辑运算
算子包括:
数值算法:输入元 + 算子(运算序列) + 输出元
( 2 )宏操作:向量运算、数组传输、基本初等函数求值
面向计算机的数值算法有两类:
( 1 )串行算法:单进程(适用于串行计算机)
( 2 )并行算法:多进程(适用于并行计算机)
13
(3) 要有好的计算复杂性 ( 可行性 )
时间复杂性好:省时间;空间复杂性好:节省存储量 .
数值分析的特点:
(1) 面向计算机 能根据计算机特点提供切实可行的有效算法 .
(2) 要有可靠的理论分析 分析算法的收敛性和数值稳定性,对误差进行估计 .
(4) 要有数值实验 通过计算机上数值试验证明算法的有效性 .
1.2 数值计算的误差
1.2.1 误差来源与分类 (error)
模型误差:数学模型与实际问题之间出现的误差 . 观测误差 : 由观测数据过程产生的误差 .
(这两种误差“数值分析”中不讨论) 截断误差 (truncation
error)或方法误差:数值方法求解数学模型时近似解与精确解之间的误差 .
建模 (简化、近似)
实际问题
数学模型
数值结果 数值计算
15
【例】用泰勒 (Taylor)多项式
nn
n xn
fx
fx
ffxP
!
)0(
!2
)0(
!1
)0()0()(
)(2
,)!1(
)()()()( 1
)(
n
n
nn xn
fxPxfxR
近似代替函数 ,)(xf 则数值方法的截断误差是
.0 之间与在 x
16
就是舍入误差 .
0000026.014159.3π R
【例】
初始数据的误差通常也归结为舍入误差 .
舍入误差:由于字长的限制,在计算机用浮点数表示数据(原始数据及计算所得数据)时产生的误差 .
用 3.14159近似代替 产生的误差
本节主要讨论舍入误差对计算的影响,而截断误差将在以后各章结合具体算法加以研究 .
17
若能根据测量工具或计算情况估计出误差绝对值的一个
1.2.2 误差与有效数字
设 为准确值,x 为 的一个近似值,*x x
xxe **
误差 可正可负,当绝对误差为正时近似值偏大,叫强近似值;
*e
通常准确值 是未知的,x 因此误差 也未知 .*e
为近似值的绝对误差,
定义 1 称
简称误差 .
当绝对误差为负时近似值偏小,叫弱近似值 .
18
上界,即
*** xxe
则 叫做近似值的误差限,* 它总是正数 .
例如,用毫米刻度的米尺测量一长度 ,读出和该长度接近的刻度 ,
x
*x 是 的近似值,*x x 它的误差限是 ,mm5.0
于是 mm.5.0* xx
如读出的长度为 ,mm765 则有 .5.0765 x
虽然从这个不等式不能知道准确的 是多少,但可知x
19
,5.7655.764 x
结果说明 在区间 内 .x ]5.765,5.764[
对于一般情形 ,** xx 即
*,*** xxx
也可以表示为.** xx
但要注意的是,误差限的大小并不能完全表示近似值的好坏 .
20
例如,有两个量 , 110x ,51000y
;1,10* * xx
则
.5,1000* * yy
虽然 比 大 4 倍,*y *
x 但
1000/5*/* yy %5.0
比 10/1*/* xx %10
要小得多,这说明 近似 的程度比 近似 的程度好 .
*y y *x x
所以除考虑误差的大小外,还应考虑准确值 本身的大小 .
x
21
实际计算中,由于真值 总是未知的,x
*
*
*
**
x
xx
x
eer
把近似值的误差 与准确值 的比值 *e x
x
xx
x
e
**
称为近似值 的相对误差,*x 记作 .*re
作为 的相对误差,*x 条件是 较小,*
**
x
eer
通常取
此时利用
,** xxe 知
22
相对误差也可正可负,它的绝对值上界叫做相对误差
限,
xx
xxe
x
e
x
e
*
)*(*
*
**
是 的平方项级,*re
记作 ,*r
*)*(*
*)( 2
exx
e
*)/*(1
*)/*( 2
xe
xe
故可忽略不计 .
.*
**
xr
即
23
%,10*
*
xx
%,5.0*
*
yy
上例中 与 的相对误差限分别为x y
可见 近似 的程度比 近似 的程度好 . *y y *x x
根据定义,
24
当准确值 位数比较多时,常常按四舍五入的原则得到 的前几位近似值 ,
x
x *x
14159265.3π x
取 3 位 ,14.3*3 x
取 5 位 ,1416.3*5 x
它们的误差都不超过末位数字的半个单位,
,102
114.3π 2
例如
,002.0*3
,000008.0*5
即
.102
11416.3π 4
25
若近似值 的误差限是某一位的半个单位,*x
该位到 的第一位非零数字共有 位,就说 有 位有效数字 .
*x n *x n
表示为
),1010(10* )1(121
nn
m aaax ( 2.1)
其中 是 0 到 9 中的一个数字, 为整数,
),,1( niai ma ,01
.102
1* 1 nmxx ( 2.2)
定义 2
且
26
取 作为 的近似值,14.3* x π
取 ,π3.1416* x
按这个定义,如果*x 就有 3 位有效数字,
*x 就有 5 位有效数字 .
27
按四舍五入原则写出下列各数具有 5 位有效数字的
按定义,
187.93, 0.037856, 8.0000, 2.7183.
的 5 位有效数字近似数是 8.0000,而不是8 ,
000033.8x
例 1
近似数:187.9325, 0.03785551, 8.000033, 2.7182818.
上述各数具有 5 位有效数字的近似数分别是
因为 8 只有 1 位有效数字 .
注意:
28
如果以 m/s2 为单位, 重力常数 g , ,m/s80.9 2g
若以 km/s2 为单位, ,它们都具有 3 位有效数字,
2km/s00980.0g
,102
180.9 2g
按 (2.1)的表示方法, ,3,0 nm
,102
100980.0 5g
这里 .3,3 nm
它们虽然写法不同,但都具有 3 位有效数字 .
例 2
因为按第一种写法
按第二种写法
29
至于绝对误差限,由于单位不同所以结果也不同
,m/s102
1 22*1
但相对误差都是 80.9/005.0* r
注意相对误差与相对误差限是无量纲的,而绝对误差与误差限是有量纲的 .
例 2 说明有效位数与小数点后有多少位数无关 .
,m/s102
1 25*2
.00980.0/00005.0
30
从 (2.2)可得到具有 位有效数字的近似数 ,其绝对误差限为
n *x
,102
1* 1 nm
在 相同的情况下, 越大则 越小,故有效位数越多,绝对误差限越小 .
m n 110 nm
31
若 的相对误差限 ,*x )1(
1
* 10)1(2
1
nr a
设近似数 表示为 *x
)1.2(),1010(10* )1(121 l
lm aaax
其中 是 0 到 9 中的一个数字,),,1( liai
;102
1 )1(
1
* nr a
反之,
则 至少具有 位有效数字 . *x n
若 具有 位有效数字,n*x
定理 1
ma ,01 为整数 .
则其相对误差限为
32
由 (2.1)′可得
,10)1( 1ma
当 有 位有效数字时 *x n
*
**
x
xxr
反之,由
*** rxxx
,105.0 1 nm
证明
*101 xa m
m
nm
a 10
105.0
1
1
;102
1 1
1
n
a
1
11 10
)1(2
110)1(
nm
aa
33
知 至少有 位有效数字 . *x n
定理说明,有效位数越多,相对误差限越小 .
34
由于 ,4.420 知 ,41 a 故只要取 ,4n
3* 10125.0 r
即只要对 的近似值取 4 位有效数字,其相对误差限就小于 0.1%.
20
此时由开方表得 .472.420
要使 的近似值的相对误差限小于 0.1%,需取 20
设取 位有效数字,n
.102
1 )1(
1
* nr a
例 3
几位有效数字 ?
由定理 1
就有
%,1.010 3
35
1.2.3 数值运算的误差估计
两个近似数 与 ,其误差限分别为 及 ,*1x *
2x )( *1x )( *
2x
);()()( *2
*1
*2
*1 xxxx
);()()( *1
*2
*2
*1
*2
*1 xxxxxx
).0()()(
)/( *22*
2
*1
*2
*2
*1*
2*1
x
x
xxxxxx
它们进行加、减、乘、除运算得到的误差限分别为
36
设 是一元函数, 的近似值为 ,以 近似 ,其误差界记作 ,
)(xf x *x *)(xf
)(xf *))(( xf
一般情况下,当自变量有误差时函数值也产生误差,
,之间介于 *,
,*)(2
)(*)*)((*)()( 2
xx
xxf
xxxfxfxf
取绝对值得
*).(2
)(*)(*)(*)()( 2 x
fxxfxfxf
其误差限可利用函数的泰勒展开式进行估计 .
利用泰勒展开
37
假定 与 的比值不太大,可忽略 *)(xf *)(xf *)(x
*).(*)(*))(( xxfxf
当 为多元函数,如计算 时 . f ),( 1 nxxfA
的近似值为 ,nxx ,,1 **1 ,, nxx 则 的近似值为A
),,(* **1 nxxfA
于是由泰勒展开,函数值 的误差 为*A *)(Ae
的高阶项,于是可得计算函数的误差限
如果
38
AAAe **)(
于是误差限
;)(*)(1
*
*
n
kk
k
xx
fA ( 2.3)
n
kkk
k
n xxx
xxf
1
***
1 )(),,(
,1
*
*
n
kk
k
ex
f
),,(),,( 1**
1 nn xxfxxf
39
而 的相对误差限为 *A
*)(* Arr .*
)(
1
**
n
k
k
k A
x
x
f ( 2.4)
*
*)(
A
A
40
已测得某场地长 的值为 ,l m110* l 宽 的值为d
,m80* d 已知 . m1.0*,m2.0* ddll
试求面积 的绝对误差限与相对误差限 .lds
因 ,,, ld
sd
l
slds
),()(*)( **
**
dd
sl
l
ss
;)(*)(1
*
*
n
kk
k
xx
fA
知
例 4
解 由 (2.3)
41
其中
,m80**
dl
s
而 ,m2.0*)( l
于是绝对误差限
);m(27)1.0(110)2.0(80*)( 2s
相对误差限
*
*)(*)(
s
ssr
m,110**
ld
s
,m1.0*)( d
**
*)(
dl
s %.31.0
8800
27
42
1.3 误差定性分析与避免误差危害
一个工程或科学计算问题往往要运算千万次,由于每步运算都有误差,如果每步都做误差分析是不可能的,也不科学 .
因为误差积累有正有负,绝对值有大有小,都按最坏情况估计误差限得到的结果比实际误差大得多,这种保守的误差估计不反映实际误差积累 .
43
考虑到误差分布的随机性,有人用概率统计方法,将数据和运算中的舍入误差视为适合某种分布的随机变量,
20世纪 60年代以后对舍入误差分析提出了一些新方法,较重要的有 Wilkinson的向后误差分析法( backward error analysis)和 Moore的区间分析法 (interval analysis)两种,但都不是十分有效 .
然后确定计算结果的误差分布,这样得到的误差估计更接近实际,这种方法称为概率分析法 .
为确保数值计算机的准确性,通常只对舍入误差进行定性分析 .
44
1.3.1 算法的数值稳定性
用一个算法进行计算,如果初始数据误差在计算中传播使计算结果的误差增长很快,这个算法就是数值不稳定的 .
计算 并估计误差 . ),1,0(1
0
1 ndxexeI xnn
由分部积分可得计算 的递推公式 nI
),,2,1(1 1 nnII nn
若计算出 ,0I 代入( 3.2),可逐次求出 的值 .,, 21 II
( 3.1).1 11
0
10
edxeeI x
例 5
45
而要算出 就要先计算 .0I 1e
,!
)1(
!2
)1()1(1
21
ke
k
并取 ,7k 则得 ,3679.01 e
3679.017 eR
计算过程中小数点后第 5 位的数字按四舍五入原则舍入 .
若用泰勒多项式展开部分和
用 4 位小数计算, 截断误差
!8
1 .10
4
1 4
46
当初值取为 时,用( 3.1)递推的计算公式为
00
~6321.0 II
).,2,1(~
1~
;6321.0~
)A(1
0
nInI
I
nn
计算结果见表 1-1的 列 . nI~
用 近似 产生的误差 就是初值误差, 0
~I 0I 000
~IIE
它对后面计算结果是有影响的 .
47
0.06847.55290.17080.17044
0.10350.728080.20730.20743
0.11210.216070.26430.26422
0.12680.112060.36790.36791
0.14550.148050.63210.63210
)计算(B)(用*I)计算(A)(用In)计算(B)(用*I)计算(A)(用In
11表
nnnn
~~
48
从表中看到 出现负值,8
~I 这与一切 相矛盾 .0nI
1
010
11
min1
dxxeen
e nx
x
因此,当 较大时,用 近似 显然是不正确的 . n nI~
nI
1
010
1 max dxxee nx
x
( 3.2)
.1
1
n
实际上,由积分估值得
nI
49
计算公式与每步计算都是正确的,计算结果错误的原因
主要就是初值 有误差 ,由此引起以后各步
计算的误差 满足关系
0
~I 000
~IIE
nnn IIE~
).,2,1(1 nnEE nn
容易推得
,!)1( 0EnE nn
这说明 有误差 ,则 就是 的 倍误差 . 0
~I 0E nI
~0E !n
50
例如, ,8n 若 ,40 10
2
1 E
2!8 08 EE
这就说明 完全不能近似 了 . 它表明计算公式( A ) 8
~I 8I
若换一种计算方案 . 由( 3.3)取 ,9n
,10
1
10 9
1
Ie
9
1
9 0684.01010
1
2
1I
eI
取
则
是数值不稳定的 .
由
51
将公式 (3.2)倒过来算,即由 算出 ,公式为*9I *
1*7
*8 ,,, III
);1,,8,9()1(1
,0684.0)B( **
1
*9
nIn
I
I
nn
计算结果见表 1-1的 列 . *nI
可以看出 与 的误差不超过 . *0I 0I 410
52
反之,当用方案( A )计算时,尽管初值 相当准确, 0
~I
此例说明,数值不稳定的算法是不能使用的 .
比 缩小了*0E *
nE则 ,**0 !
1nE
nE 记 ,**
nnn IIE
倍,因此,尽管 较大,但由于误差逐步缩小,故可用 !n *9E
近似 .*nI nI
由于误差传播是逐步扩大的,因而计算结果不可靠 .
53
一个算法如果输入数据有误差,而在计算过程中舍入误差不增长,则称此算法是数值稳定的,否则称此算法为不稳定的 .
在例 5 中算法( B )是数值稳定的,而算法( A )是不稳定的 .
定义 3
【实验 1.1 】用 Matlab 编程,实现算法( A )和算法( B ),计算例 5 中的定积分,观察两种算法的数值稳定性 .
54
1.3.2 病态问题与条件数
对一个数值问题本身 , 如果输入数据有微小扰动(即误差),引起输出数据(即问题解)相对误差很大,这就是病态问题 .
【例】计算函数值 .)(xf 若 有扰动 ,其x *xxx
相对误差为 ,x
x函数值 的相对误差为*)(xf
)(
*)()(
xf
xfxf
55
相对误差比值
)(
)('
)(*)()(
:xf
xxf
xx
xfxfxf
C p
称为计算函数值问题的条件数 (conditional number).
如果条件数很大,自变量较小的相对误差会引起函数值很大的相对误差,出现这种情况的问题就是病态问题 .
56
例如, ,nxxf )(
它表示相对误差可能放大 倍 . n
如 ,10n 有 ,24.1)02.1(,1)1( ff
,02.1* x 自变量相对误差为 ,%2 函数值相对误差为 ,%24
一般情况下 , 条件数 就认为是病态, 越大病态越严重 .
10pC pC
则有
)(
)(
xf
xfxC p
,
1
nx
nxxn
n
,1x若取
这时问题可以认为是病态的 .
57
【例】解线性方程组 .
如果输入数据(方程组系数)有微小误差引起解的巨大误差,就认为是病态方程组,第 5 章将用矩阵的条件数来分析这种现象 .
0
1
21
21
xax
axx例如,当 a ≠0时,方程组
有解.
1,
1
12221 a
ax
ax
当 a ≈ 1时,若输入数据 a 程有微小扰动(误差),则解的误差很大 .
58
【例】解线性方程组 .
.0
,1
21
21
xax
axx
当 a ≠1时,方程组有解 .1
,1
12221 a
ax
ax
当 a ≈ 1时,若输入数据 a 程有微小扰动(误差),则解的误差很大 . 如,当 a =0.99时, .25.501 x
若 a 有 0.001的扰动,即取 a =0.991时,则解 .81.55*1 x
( 3.4 )
56.51*
1 xx误差 很大,这说明方程组( 3.4 )是病态的 .
事实上,函数 的条件数21 1
1)(
aax
.1
2
)(
)('2
1
a
a
ax
aaxC p
若 a =0.99,则 .100pC
59
1.3.3 避免误差危害的若干原则 数值计算中首先要分清问题是否病态和算法是否数值稳定,计算时还应尽量避免误差危害,防止有效数字的损失,有下面若干原则 .
1. 要避免除数绝对值远远小于被除数绝对值的除法
用绝对值小的数作除数舍入误差会增大,如计算 y
x
若 ,则可能对计算结果带来严重影响,应
尽量避免 .
xy 0
60
线性方程组
.22
,100001.0
21
21
xx
xx
的准确解为
,50000125.0399999
2000001 x
在四位浮点十进制数(仿机器实际计算)下用消去法求解,
例 6
.999995.0199999
1999982 x
上述方程写成
61
.2000.0101000.0102000.010
,1000.0101000.0101000.0101
21
11
12
11
4
xx
xx
若用 除第一方程减第二方程,则出现)1000.010(2
1 4
.2000.0102000.010
,1000.0101000.0101000.0106
26
12
11
4
x
xx
由此解出 ,11000.010,0 1
21 xx
显然严重失真 .
小数除大数, 这时方程组为
62
若反过来用第二个方程消去第一个方程中含 的项, 1x
.2000.0101000.0102000.010
,1000.0101000.0101
21
11
62
6
xx
x
由此求得相当好的近似解 .1000.010,5000.0 121 xx
则避免了大数被小数除,得到
63
2. 要避免两相近数相减
在数值计算中两相近数相减有效数字会严重损失 .
例如, 都具有五位有效数字,52.532,65.532 yx
但 只有两位有效数字 .13.0 yx
解决办法:改变计算方法,防止这种现象产生 .
64
求 的小正根 . 01162 xx
解
,6381 x
只有一位有效数字 . *2x
6382 x
则具有 3 位有效数字 .
若改用
例 7
由求根公式
6382 x ,06.094.78 *2x
0627.094.15
1
638
1
65
例 8 计算 (用四位数学用表) .)2cos1(107 A
由于 ,9994.02cos
)2cos1(107 A
只有一位有效数字 .
2sin2cos1 2 x
x
)2cos1(107 A
具有三位有效数字(这里 ) .0175.01sin
则
若利用
.106)9994.01(10 37
372 1013.610)1(sin2
直接计算
66
此例说明,可通过改变计算公式避免或减少有效数字的损失 .
类似地,如果 和 很接近时,由 1x 2x
.lglglg2
121 x
xxx
用右边算式有效数字就不损失 .
,1
11
xxxx
也应该用右端算式代替左端 .
当 很大时,x
67
一般情况,当 时,可用泰勒展开 *)()( xfxf
2*)(2
*)(*)*)((*)()( xx
xfxxxfxfxf
取右端的有限项近似左端 .
如果无法改变算式,则采用增加有效位数进行运算;
在计算机上则采用双倍字长运算,但这要增加机器计算时间和多占内存单元 .
68
3. 要防止大数“吃掉”小数
在数值运算中参加运算的数有时数量级相差很大,
例 9
,524921000
1
i
iA
其中 . 9.01.0 i
而计算机位数有限,如不注意运算次序就可能出现大数“吃掉”小数的现象,影响计算结果的可靠性 .
在五位十进制计算机上,计算
69
把运算的数写成规格化形式
.1052492.01000
1
5
i
iA
由于在计算机内计算时要对阶,若取 ,9.0i
对阶时 ,在五位的计算机中表示为5100000090 .i
555 10000009.010000009.01052492.0 A
结果显然不可靠,这是由于运算中出现了大数 52492 “吃掉”小数 造成的 . i
,)(1052492.0 5 表示机器中相等Δ符号
机器 0 ,因此
70
,109.0101.0 31000
1
3 i
i
于是
A 55 1052492.010001.0
如果计算时先把数量级相同的一千个 相加,最后再加 52492,就不会出现大数“吃”小数现象,
i
,1052492.010009.0 55
.5339252592 A
这时
71
4. 注意简化计算步骤,减少运算次数
同样一个计算问题,如果能减少运算次数,不但可节省计算机的计算时间,还能减少舍入误差 .
72
例 10
011
1)( axaxaxaxP nn
nnn
的值,若直接计算 再逐项相加,一共需做kk xa
2
)1(12)1(
nnnn
次乘法和 n 次加法 .
若采用秦九韶算法
.)(
),0,1,2,,1(
,
0
1
SxP
nkaxSS
aS
n
kkk
nn
( 3.4)
计算多项式
只要 n 次乘法和 n 次加法就可算出 Pn (x) 的值 .
73
(3) 松弛技术 .
(1) 以直代曲技术 . (线性化 )
1.4 算法设计的常用技术
(2) 迭代技术 .
74
1.4.1 以直代曲技术 . (线性化 )
【例】已知可导函数 在 的值,求 .
)(xf0x )( 0 hxf
.)()()( 000 hxfxfhxf 解:
75
1.4.2 迭代技术
【例】解非线性方程 .)(xx
),( , ),( ),( 11201 nn xxxxxx
解:从某个初值猜测值 出发,构造迭代序列:
0x
逐次逼近方程的解 .
例如:对 a>0, 求 a 的平方根等价于解方程 x2-a = 0,
解方程 x=(x+a/x)/2 .
,1,0,(2
1 1
n
x
axx
nnn
从某个初值 x0 出发,构造迭代序列:
76
【例 12】用迭代法( 4.4)求 .3
732051.1,732051.1 ,73214.1 ,75.1 4321 xxxx
解:取初值猜测值 ,若要求精确到10-6 ,由( 4.4 )得迭代序列:
20 x
迭代终止 . 注意到 ,可知,只要迭代 3 次误差即小于.10
2
1 6
7320508.13
【实验 1.2 】编写程序实现算法( 4.4 ),并计算 , 相邻两次迭代的差不超过 时终止迭代 .
5610
2
1
77
1.4.3 松弛技术( relaxation )
【例】求积分 ..d)( xxfb
a
.2
,)()(2)(4
,)()(2
2
1
bacbfcfaf
abT
bfafab
T
解:用梯形公式得:
.)1()( 121221 TTTTTS
引入松弛因子 进行加权平均得:
取 得著名的 Simpson公式:3
1
.)()(4)(63
1
3
4 12 bfcfaf
abTTS
78
常用数学软件:
(3) Matlab (Matrix Laboratory):最流行的科学与工程计算软件 .
(1) Fortran: 经典的科学计算工具 .
1.5 数学软件
(4) Maple:擅长符号计算 .
(5) SAS, SPSS: 最流行的统计分析软件 .
(2) Mathematica: 擅长符号计算 .
(6) Lindo,Lingo: 常用的优化计算工具 .
top related