新書推薦:
《
王阳明大传:知行合一的心学智慧(精装典藏版)
》
售價:HK$
227.7
《
失衡与重塑——百年变局下的中国与世界经济
》
售價:HK$
135.7
《
不被定义的年龄:积极年龄观让我们更快乐、健康、长寿
》
售價:HK$
79.4
《
南方谈话:邓小平在1992
》
售價:HK$
82.8
《
纷纭万端 : 近代中国的思想与社会
》
售價:HK$
109.8
《
中国古代文体形态研究(第四版)(中华当代学术著作辑要)
》
售價:HK$
172.5
《
朋党之争与北宋政治·大学问
》
售價:HK$
102.4
《
甲骨文丛书·波斯的中古时代(1040-1797年)
》
售價:HK$
90.9
|
內容簡介: |
《数值分析与实验》系统地介绍了数值分析中基本的数值计算方法和一些现代数值方法及有关理论分析,包括解线性方程组的直接法和迭代法,插值法,数值逼近,数值积分与数值微分,解非线性方程(组)的数值方法,矩阵特征值问题,常微分方程的数值解法,积分方程数值解法和最优化方法等。对于每种常用的数值方法,不仅给出具体步骤,而且还给出了Matlab程序,便于读者调用。同时每章配有丰富的例题、算例、上机实验题及习题,并在书末给出参考答案或证明提示。《数值分析与实验》阐述严谨,条理分明,深入浅出,可读性强。《数值分析与实验》不仅强调理论分析的严谨性,而且注重数值方法的实用性。
《数值分析与实验》可作为高等院校信息与计算科学、数学与应用数学、计算机科学与技术等专业的本科生教材及许多理工科专业的研究生教材,也可供从事科学计算的工程技术人员参考使用。
|
目錄:
|
前言
第1章 绪论
1.1 数值分析的内容和特点
1.2 误差
1.3 计算机中数的浮点表示
1.4 数值计算中的若干原则
注记
习题1
第2章 解线性方程组的直接法
2.1 引言
2.2 Gauss消去法
2.3 矩阵三角分解法
2.4 向量和矩阵的范数
2.5 误差分析
注记
上机实验题2
习题2
第3章 解线性方程组的迭代法
3.1 引言
3.2 Jacobi迭代法和Gauss-Seidel迭代法
3.3 迭代法的基本理论
3.4 SOR方法
注记
上机实验题3
习题3
第4章 插值法
4.1 插值问题
4.2 Lagrange插值法
4.3 Newton插值法
4.4 分段插值法
4.5 Hermite插值法
4.6 样条插值法
注记
上机实验题4
习题4
第5章 数值逼近
5.1 数值逼近的预备知识
5.2 最佳一致逼近
5.3 最佳平方逼近
5.4 正交多项式
5.5 函数的正交多项式展开
5.6 数据拟合的最小二乘法
注记
上机实验题5
习题5
第6章 数值积分与数值微分
6.1 机械求积公式
6.2 Newton-Cotes公式
6.3 复化求积方法
6.4 Romberg方法
6.5 Gauss公式
6.6 数值微分
注记
上机实验题6
习题6
第7章 解非线性方程组的数值方法
7.1 二分法
7.2 迭代法及其收敛性
7.3 Newton迭代法
7.4 割线法
7.5 解非线性方程组的Newton法
注记
上机实验题7
习题7
第8章 矩阵特征值问题
8.1 乘幂法与反幂法
8.2 Householder方法
8.3 QR方法
注记
上机实验题8
习题8
第9章 常微分方程的数值解法
9.1 Euler方法
9.2 收敛性和稳定性分析
9.3 Runge-Kutta方法
9.4 线性多步法
9.5 方程组和高阶方程
9.6 边值问题
注记
上机实验题9
习题9
第10章 积分方程数值解
10.1 基本概念
10.2 数值积分方法
10.3 Taylor展开方法
10.4 积分中值定理方法
注记
上机实验题10
习题10
第11章 最优化方法
11.1 无约束优化问题
11.2 约束优化序列二次规划方法
注记
上机实验题11
习题11
参考答案
参考文献
|
內容試閱:
|
第1章 绪 论
1.1 数值分析的内容和特点
自然科学、工程技术以及社会经济等领域中遇到的许多问题,都可以应用相关的学科知识和数学理论,用数学语言描述为数学问题,即人们常说的数学模型.然而,这些数学问题往往得不到它的准确解,或者解这种问题的计算工作量很大,只能借助计算机求其近似解(称为数值解或计算解).
随着计算机科学与技术以及计算技术的飞速发展,科学计算突破了实验和理论科学的局限,在科技发展中发挥着越来越重要的作用,科学计算和计算机模拟被称为继理论和实验之后的第3种科学研究方法.
1.1.1 数值分析的内容
数值分析是数学的一个分支,是研究用计算机求解各种数学问题的数值计算方法及其理论的一门学科.数值分析的内容很丰富,包括函数的数值逼近(代数插值与函数的最佳逼近)、数值积分与数值微分、非线性方程数值解、数值代数、常微分方程数值解和最优化方法等.
应用计算机解决科学计算问题,需要经过下面几个主要过程:提出实际问题,建立数学模型,选用数值计算方法,设计程序以及上机计算求出数值结果.
1.1.2 数值分析的特点
数值分析既有纯数学类课程的理论抽象性与严谨性的特点,又有广泛的实用性和实验性的特点,但数值分析与纯数学类课程不同.例如,在线性代数中,用Gramer法则求解一个n阶线性方程组需要计算(n+1)个n阶行列式,忽略加减运算,共需要做(n+1)!(n-1)次乘法.当n很大时,这个计算量是相当惊人的.例如,解一个20阶的线性方程组,大约要做1021 次乘除法.如果用每秒百亿次的的计算机计算,则需3000多年才能完成.由此可见,这样的方法毫无实用价值.然而,如果采用某种数值方法,如Gauss消去法,乘除法次数不超过3000次,在微型计算机上仅需几秒钟时间就可以完成.该例子说明研究实用的数值方法是非常必要的;在实现这些算法时还要依据计算机的容量、字长、速度等指标,研究具体求解步骤和程序设计技巧;有的数值方法在理论上虽不够严格,但通过实际计算、对比分析等手段,只要能证明它们是行之有效的,也应采用.因此数值分析的特点可概括为以下4点:
(1)面向计算机 根据计算机特点,提供实际可行的有效算法,即算法只包括计算机能直接处理的加、减、乘、除运算和逻辑运算.
(2)有可靠的理论分析 能任意逼近并达到精度要求,对近似算法要保证收敛性和数值稳定性,还要对误差进行分析.
(3)有好的计算复杂性 一个算法的计算复杂性包括算法的空间复杂性和时间的复杂性.空间复杂性指算法需占用的存储空间,时间复杂性指算法包含的运算次数.空间复杂性和时间复杂性小的算法是计算复杂性好的算法,这也是建立算法要研究的问题,关系到算法能否在计算机上实现.
(4)有数值实验 任何一个算法,除了从理论上满足上述3点外,还必须通过数值实验证明它是行之有效的.
1.2 误 差
1.2.1 误差的来源与分类
对数学问题进行数值求解,求得的结果往往与准确值不相等,它们的差称为误差.引起误差的原因是多方面的,根据产生误差的原因不同,通常把误差分成下面4类:
(1)模型误差 根据实际问题建立数学模型时,对被描述的实际问题进行了抽象和简化,因此数学模型只是实际问题的一种近似.数学模型与实际问题之间出现的误差称为模型误差.
(2)观测误差 在数学模型中往往涉及一些根据观测得到的物理量,如电流、电压、温度、长度等.由于观测手段的限制、测量仪器精密程度的影响而产生的误差称为观测误差.
(3)截断误差 在求解一些数学问题时,常常需要通过无限过程才能得到最终结果,但实际进行数值计算时只能采用有限过程,如无穷级数求和,只能取前面有限项之和来近似代替,这种由有限过程代替无限过程而产生的误差称为截断误差.这是计算方法本身所带来的误差,所以也称为方法误差.
(4)舍入误差 由于计算机的字长有限,原始数据或计算的中间结果数据要用“四舍五入”或其他规则取近似,由此产生的误差称为舍入误差.
研究计算结果的误差是否满足精度要求就是误差估计问题,由上述误差的来源得知误差是不可避免的,误差分析和估计是数值计算过程中的重要内容.在数值分析中主要讨论截断误差和舍入误差.
1.2.2 绝对误差、相对误差和有效数字
1.绝对误差定义1.2.1 设x*为准确值,x是x*的一个近似值,称e=x*-x为近似值x的绝对误差,简称误差.
这样定义的误差e可正可负.通常我们不能算出准确的x*也不能算出误差的准确值,只能根据测量工具或计算情况估计出误差的绝对值的上界,即存,在正数ε,满足
x *-x
=
e
≤ε,(1.2.1)称ε为近似值x的绝对误差限,简称误差限.例如,用毫米刻度的直尺测量一长度x*测得该长度的近似值x=96mm,由于直尺以毫米为刻度,所以x的误差不超过0.5mm,,即x *-96
≤0.5.从上述不等式我们仍不能得出准确值x*,但可以知道x*的取值范围:95.5≤x*≤96.5.2.相对误差绝对误差限的大小不能完全表示近似值的精确程度.为了更好地反映近似值的精确程度,除考虑误差限的大小外,还应考虑准确值x*本身的大小.定义1.2.2 设x是准确值x*的一个近似值,称
er = x *x *-x (1.2.2)
为近似值x的相对误差.在实际计算中,由于准确值x*难以求得,人们通常取
?er=x *x -x (1.2.3)
作为x的相对误差,前提是?er较小.事实上,经计算可知
?er -er = 1?e+ r 2?er是?er的平方项级,故可忽略不计.相对误差也可正可负,它的绝对值上界称为x的相对误差限,记为εr,于是有
er
≤εr或
?er
≤εr.
3.有效数字
在表示一个近似数时,为了能反映它的精确程度,常常用到“有效数字”的概念.
定义1.2.3 如果近似值x的误差限是其某一位上的半个单位,该位到x的第一个非零数字共有n位,则称近似值x具有n位有效数字.
例1.2.1 设圆周率π的近似值取为?π1=3.14,则
π-?π1
<0.002<21 ×10-2 ,因
此,π?1=3.14有3位有效数字;若取π?2=3.142,则
π-?π2
< 12 ×10-3 ,因此,π?2=3.142
有4位有效数字;若取π?3=3.141,则
π-?π3
<0.0006<12 ×10-2 ,因此,π?3只有3位有效
数字.
在科学记数法中,通常将具有n位有效数字的近似值x表示为
x=±0.a1a2.an×10m ,(1.2.4)即
x=±(a1×10-1 +a2×10-2+. + an × 10-n )×10m ,(1.2.5)其中,m为整数,a1,a2,.,an为0~9中的一个数字,且a1≠0.此时有x *-x
≤ 12 ×10m -n , (1.2.6)
即x的误差限ε=12 ×10m -n .由此可知,在m相同的情况下,n越大误差限越小,这说明一定理1.2.1 设近似数x表示为
x=±(a1×10-1 +a2×10-2+. + al × 10-l )×10m ,(1.2.7)其中,m为整数,a1,a2,.,al是0~9中的一个数字,且a1≠0.如果x具有n位有效数字,则其相对误差限有估计式
εr ≤ 21 a1 × 10-(n -1) ; (1.2.8)
反之,如果x的相对误差限εr≤2(a11+1) ×10-(n-1),则x至少具有n位有效数字.
证 由式(1.2.7)知a1×10-1 ×10m ≤
x
<(a1+1)×10-1 ×10m .于是,当x有n位有效数字时,有
x *-x 1 ×10m -n
≤ 2 -1 =1 ×10-(n-1).
εr =
x
a1×10×10m 2a1反之,由
x *-x
< 2(a11+ 1) × 10-(n-1)×(a1+1) ×10-1 ×10m = 12 ×10m-n
=εr
x
知,x有n位有效数字.
该定理表明:一个近似值的有效数字越多,其相对误差越小,从而精确度越高.因此,在计算过程中,我们应保留尽量多的有效数字.例1.2.2 如果要求
90的近似值的相对误差小于0.1%,则应取多少位有效数字?解 由定理1.2.1知εr ≤ 1 × 10-(n -1) ,
2 a1
而由
90=101 ×0.94.知a1=9,故令
21×9 ×10-(n -1) <0.1%,
解得n≥3,即只要取n=3,则有εr≤0.1%,所以只要
90的近似值取3位有效数字,则其
相对误差限就小于0.1%,此时
90≈9.49.
1.2.3 数据误差对函数值的影响
在数值运算中,当自变量有误差时,计算函数值也会产生误差,其误差限可利用函数的Taylor 展开式进行估计.设y=f(x)为一元函数,x为准确值x*的近似值,以f(x)近似准确值f(x*),其误差限记为ε(f(x)).由Taylor 展开式f (x *) = f (x )+ f′(x)(x*-x )+ f″(ξ)(x *-x )2 ,2!其中,ξ介于x*与x之间.于是有f (x *) -f (x ) f″(ξ)≤ ε2 (x ). f′(x)差限
ε( f (x )) ≈
ε(x).(1.2.9)进一步地,可得函数值f(x)的相对误差限f′(x)
f′(x)
ε(x )
xf′(x)
=
εr ( f (x )) ≈ εr (x ) . (1.2.10)
f (x )
f(x)当f(x)为多元函数即y=f(x1,x2,.,xn)时,设x1,x2,.,xn为准确值x1*,x2*,.,xn*的近似值,则函数值y=f(x1,x2,.,xn)为准确值y*=f(x1*,x2*,.,xn*)的近似,其误差限仍记为ε(f(x)).记x*=(x1*,x2*,.,xn*),x=(x1,x2,.,xn),则由Taylor 展开式f (x *) ≈ f (x )+ i∑=n1 抄抄f (xxi )(xi*-xi),
于是误差限为
抄f
ε( f (x )) ≈∑n
ε(xi).(1.2.11)
抄xi进一步地,可得函数值f(x1,x2,.,xn)的相对误差限为
i =1
εr ( f (x )) = ε( f (x )) ≈ 1 εr(xi),(1.2.12)
∑n
f (x )
f (x )
i =1
其中,εr(xi)(i=1,.,n)为近似值xi的相对误差限.xi 抄抄xfi 利用函数值的误差估计式(1.2.11)可得到两数和、差、积、商的误差限:ε(x1±x2)=ε(x1)+ε(x2),(1.2.13)ε(x1x2)≈
ε(x1)+
x2 x1
ε(x2),(1.2.14)x2
ε(x1)+ε x1≈ 2 x1 ε(x2) (x2≠0).(1.2.15)
x2
x2
例1.2.3 计算
2001 -
1999,并分析计算结果具有多少位有效数字.解 记x*1=
2001,x *2=
1999 .
分别取x *1,x *2的具有6位有效数字的近似值x1=44.7325,x2=44.7102.现用两种方法计算:方法一 x*1-x *2=
2001 -
1999≈x1-x2=44.7325-44.7102=0.0223.
方法二 x*1-x *2=
2001 -
1999 =
2001 +2
1999 = x *12+ x *2≈ x1 2+ x2
=44.73252+44.7102=0.022360684.≈0.0223607.
下面分析上述两种方法所得结果各具有有效数字的位数.由式(1.2.13)知
ε(x1-x2)=ε(x1)+ε(x2)=21 ×10-4 + 21 ×10-4 = 10-4 < 21 ×10-3 ,
ε x1 2+ x2 ≈(x1 +2 x2 )2
ε(x1)+ε(x2)
2 11 -4=(44.7325+44.7102)2 2 ×10 -4 +2 ×10
=0.25×10-7 <21 ×10-7 ,
所以按第二种方法所得结果具有6位有效数字.因此第二种方法比第一种方法精确.由上例可知,当两个相近的数直接相减时会造成有效数字位数减少.因此,为防止计算精度降低,在实际计算中应该尽可能避免两相近数相减.
1.3 计算机中数的浮点表示
利用数值方法解决科学计算实际问题时,都需要设计程序并在计算机上运行才能求出数值结果,因此,了解数在计算机中的表示是有必要的.
1.3.1 以β为基的数系
以β为基的数(β进制数)可表示为
-
x=±(an-1βn -1 + an -2 βn -2 +.+a0β0 + a -1 β-1 +a-2β-2 +.+a-mβ m )
=±(an-1an-2.a0.a-1a-2.a-m)β,其中,0≤ak<β为正整数.在计算机中广泛采用的有二进制数、八进制数、十进制数和十六进制数,它们的基数分别是2、8、10和16.例如,十进制数 (256)10=2×102 +5×101 +6×100 ,-(3512.78)10=-(3×103 +5×102 +1×101 +2×100 +7×10-1 +8×10-2 ).二进制数(11011)2=1×24 +1×23 +0×22 +1×21 +1×20 =(27)10,(10.101)2=1×21 +0×20 +1×2-1 +0×2-2 +1×2-3 =(2.625)10.
1.3.2 数的浮点表示
一般地,一个β进制数x可以表示为
x=±βJk∑=t1 dk β-k, (1.3.1)
其中,dk(k=1,2,.,t)是0,1,.,β-1中的一个数字.上式也可写成x=±a×βJ ,(1.3.2)其中,
a = k∑=t1 dk β-k=0.d1d2.dt.(1.3.3)
|
|