第六讲解线性方程组
- 格式:doc
- 大小:1.80 MB
- 文档页数:31
6 - 1 绪 论
0.1数值计算方法与算法
1. 准确解和数值解
数学是在寻求准确解(解析解)中不断发展
数的定义
数的运算规则
2. 计算方法是用计算机求解数学问题数值解
理论上有解,无计算公式
例如,计算6阶矩阵的全部特征值。
有计算公式,无法承受计算量
解一个有100个未知量的线性方程组;
3.科学计算和计算方法
第三种科学方法:理论、实验、科学计算
计算方法是一门理论性和实践性都很强的学科,计算方法既有数学类课程中理论上的抽象性和严谨性,又有实用性和实验性的技术特征。计算方法的前提课程是微积分,线性代数,常微分方程和一门计算机语言。
0.2 误差与有效数字
绝对误差与绝对误差界
定义: 设*x为精确值(或准确值),x是*x的一个近似值,
称 xxe*为近似值x的绝对误差或误差。
绝对误差 = 精确值 近似值
定义:如果精确值*x与近似值x的误差的绝对值不超过某正数,即
||||*xxe
称 为绝对误差限或误差限。(例:迭代序列终止控制)
例:若经四舍五入得到 456.123x,
对于数 4564.123,4561.123,4555.123,4559.123的近似值都是456.123x,
6 - 2 它的误差限是:
34*1021510||||xxe
若0123456.0*x,则它的误差限是:
78*1021510||||xxe
相对误差与相对误差限
定义:设*x为精确值,x是*x的一个近似值
称 ***xxxxeer 为近似值x的相对误差。
在实际计算中,有时得不到精确值*x,当re较小时*x可用近似值x代替,即
xxxxeer*
相对误差 =绝对误差精确值 或 相对误差 =近似值绝对误差
相对误差re的值也可正可负,与绝对误差一样不易计算,常用相对误差限控制相对误差的范围。
定义:如果有正数r使得 rrxee||* ,则称r为*x的相对误差限。
产生误差的因素很多,产生误差的原因主要有
原始误差
由客观存在的模型抽象到物理模型产生的误差。包括模型误差和原始数据误差。
截断误差
用有限项近似无限项时,由截取函数的部分项产生的误差,称为截断误差。
例如:02!!21nnkxnxkxxxe,在计算中用00!!nnNnnxnxnxe
舍入误差
在数值计算中,通常都按有限位进行运算。例如,按照4舍5入的原则,2 / 3=0.666667
或2 / 3=0.667,由舍入产生的误差,称为舍入误差。
在实际计算中的数据通常是近似值,它们由观察、估计或一些计算而得到,这些数在计算机表示后也会带来进一步误差,即误差的积累和传播。关于误差的传播似乎没有多少统一的理论,通常积累误差的界是以通例分析为基础而建立的。
6 - 3 有效位数
定义:当x的误差限为某一位的半个单位,则这一位到第一个非零位的位数称为x的有效位数。
例如,x= 12.34 ,y = 0.004067均有4位有效数字 ,
3.00与3.0000分别有3位和5位有效位数。
0.3约束误差
选择收敛的稳定的方法
对同一问题选择不同的数值计算方法,可能得到不同的计算结果。在计算方法中,除了给出方法的数值计算公式,还要讨论计算公式的收敛性、稳定性和截断误差的特性。选择收敛性要求低、稳定性好的方法是约束误差扩张最重要的措施。例如,样条插值函数比高次多项式的效果好的多,是构造插值函数的首选方法。
提高数值计算精度(用优质计算机)
数值在计算机中存放的位数称为字长。有限位的字长是带来舍入误差和抑制数值计算精度的根源。对同一种方法,在字长大的计算机上的计算效果要比在字长小的计算机上优越。
在计算机上,用同一种数值计算方法对数据选用不同的数值类型,有时会直接影响到计算效果。例如,对病态的线性方程组,采用单精度数据使用消元方法,其数据解大大失真,而用双精度数据有时却可得到满意的数值解。
第6章 解线性方程组
在数值计算和工程应用中,求解线性代数方程都具有中心的作用。在石油勘探,天气预报等问题中常常出现成百上千阶的方程组,也就产生了各种形式方程组数值解法的需求。研究大型方程组的解是目前计算数学中的一个重要方向和课题。
解方程组的方法可归纳为直接解法和迭代解法。从理论上来说,直接法经过有限次四则运算,假定每一步运算过程中没有舍入误差,那么,最后得到方程组的解就是精确解。但是,在计算过程中,完全杜绝舍入误差是不可能的,只能控制和约束舍入误差的增长和危害,这样直接法得到的解也不一定是绝对精确的。
迭代法是将方程组的解看作某种极限过程的向量极限的值。在用迭代算法时,我们不可能将极限过程算到底,只能将迭代进行有限多次,得到满足一定精度的方程组的近似解。
在数值计算历史上,直接解法和迭代解法交替生辉。一种解法的兴旺与计算机的硬件环境
6 - 4 和问题规模是密切相关的。一般说来,对同等规模的线性方程组,直接法对计算机的要求高于迭代法。对于中等规模的线性方程组(方程组200n),由于直接法的准确性和可靠性,一般都用直接法求解。对于高阶方程组和稀疏方程组(非零元素较少),一般用迭代法求解。
未知量xxxn12,,,的数值,
axaxaxbaxaxaxbaxaxaxbnnnnnnnnnn11112211211222221122 (6.1)
其中abiji,为常数。
写成矩阵形式 Axb
称 Aaij()为系数矩阵,xxxxnT(,,,)12 为解向量,bbbbnT(,,,)12为常数向量。
§6.1高斯(Gauss)列主元消元
§6.1.1 高斯(Gauss)消元法
高斯消元法是我们熟悉的古老、简单而有效的解方程组的方法。下列中学阶段解二元方程组(高斯消元法)的步骤:
xxxx1212113282()() 方程(1)乘以 3加到第(2)个方程,得到方程(3)
1221(1)055(3)xxx x21 代入(1) 得x12
在线性代数中,对方程组的增广矩阵做行的初等变换
(,)(~,~)()()AbAb131218101515312
~A已是上三角阵,
xxx122155
为原方程组的等价方程组,再用回代方法,得到:
6 - 5 这就是高斯消元法解方程组的消元和回代过程。
在解方程组中施行以下三种初等变换:
(1) 对换某两个方程的次序;
(2) 对其中某个方程的两边同乘一个不为零的数;
(3) 把某一个方程两边同乘一个常数后加到另一个方程的两边。
我们以n = 4为例演示高斯消元过程。
方程组 AXb,其增广矩阵为
(,)Abaaaabaaaabaaaabaaaab111213141212223242313233343414243444
k=1,若 a110, 将第一行乘以aa2111/加到第二行上;
将第一行乘以aa3111/加到第三行上;
将第一行乘以aa4111/加到第四行上,
即 1111111124{,}iiiiiiaaforitoAAAbbbaa
得到
111213141(1)(1)(1)(1)2223332(1)(1)(1)(1)(1)3233343(1)(1)(1)(1)4243444000aaaabaaabAaaabaaab
即 )1()1(bXA,
k=2,若 a2210()
将第二行乘以aa321221()()/加到第三行上;将第二行乘以aa421221()()/加到第四行上;
即 2222222234{,}iiiiiiaaforitoAAAbbbaa
得到
111213141(1)(1)(1)(1)2223242(2)(2)(2)(2)33343(2)(2)(2)4344400000aaaabaaabAaabaab
6 - 6 k=3,若 a3320()
将第三行乘以aa432332()()/加到第四行上;
即 3333333344{,}iiiiiiaaforitoAAAbbbaa
得到
111213141(1)(1)(1)(1)2223242(2)(2)(2)33343(3)(3)4440(,)00000aaaabaaabAbaabab (10)
~A已是上三角阵,于是得到了与原方程等价的上三角形式的方程组:
axaxaxaxbaxaxaxbaxaxbaxb1111221331441221223132414213323342432443443()()()()()()()()() (11)
再对上方程组(.11)依次回代解出xxxx4321,,, 。
可以得到系数矩阵A的行列式的值为~A的对角元素的乘积。即
DetAaaaa()()()()11221332443
这也正是在计算机上计算方阵A的行列式的常规方法。
高斯消元法算法
在上述描述中用aijk()的上标是为了帮助理解在消元过程系数矩阵元素的变换。由于在消元过程中,将aijk()仍放在aijk()1元素的位置上,在下列算法中将略去aijk()的上标。