第一章 绪论
1.数值线性代数的基本问题
- 数值线性代数又称为矩阵计算,是科学与工程计算的核心,为其提供了计算方法,提高计算的可靠性、有效性和精确性。
- 主要解决三大矩阵计算问题:
(1)求解线性方程组的问题:
即给定n阶非奇异矩阵A和n维向量b,求一个n维向量x,使得Ax = b,理论上,运用Cramer’s Rule得到x = A -1b
(2)线性最小而成问题:
即给定m × n阶矩阵A和m维向量b,求一个n维向量x,使得||Ax - b||2 =min{ ||Ay - b||2 : y ∈ IRn}
(3)矩阵特征值问题:
即给定一个n阶方阵A,求它的部分或全部特征值λ以及对应的特征向量α。Aα = λα。
2.研究数值线性代数的必要性
- 求解线性方程组的数学理论很完善,但是用计算机处理时往往行不通,考虑到计算机的处理速度,存储的空间,计算的精度,引入数值线性代数。
- 计算n阶行列式D,运用行列式的展开定理
D=ai1Ai1+ai2Ai2+……+ainAin (i=1,2,…,n)
k阶行列式需要乘法运算次数:mk = k+kmk-1
n阶行列式需要乘法运算次数:
mn = n+nmn-1=n+n[(n-1)+(n-1)mn-2]=……=n+n(n-1)+n(n-1)(n-2)+…+n(n-1)(n-2)…3*2>n!
因此,求一个n阶线性方程组需要乘法运算次数>(n+1)!
3.矩阵分解是设计算法的主要技巧
一般的矩阵计算的问题Ax = b→矩阵分解PA = LU→一个或几个易于求解的特殊问题Ly = Pb ;Ux = y
4.敏度分析与误差分析
(1)误差的主要来源
- 原始数据的误差
通过观察和测量得到的,受观测方式、仪器精度以及外部观测条件等多种因素限制,不可能获得精确值,由此而来产生的误差。 - 计算过程产生误差
在建模和计算过程中,要将复杂的现象抽象归结为数学模型,往往要忽略一些次要因素的影响,而对问题做一些简化,因此数学模型和实际问题之间有一定的误差。 - 截断误差
由于计算机只能完成有限次算术运算和逻辑运算,因此要将有些需用极限或无穷过程进行的运算有限化,对无穷过程进行截断,这就带来误差。
(2)敏度分析
研究原始数据有微小的变化将引起解的多大变化。
(3)误差分析
(4)精度估计
计算结果是否可靠依赖于计算问题是否病态,以及所用算法是否数值稳定。
5.算法复杂性与收敛速度
算法的快慢是衡量算法优劣的重要标志。算法的快慢还依赖于算法实现后数据传输量的大小。
- 直接算法:在有限步得到计算问题精确解的算法。例如线性方程组的LU分解法、求积分的梯形公式。
- 算法复杂性分析:计算与估计算法的运算量。一个算法的所有运算次数的总和作为运算量。
- 迭代算法:采用逐次逼近的方法来逼近问题的精确解。例如方程求根的二分法、线性方程组的Jacobi迭代法。
收敛速度分析:假设某一迭代法产生的序列{xk}满足:||xk - x|| ≤ ||xk-1 - x||,k=1,2,…,其中0<c<1,则称该算法是线性收敛的;若满足:||xk - x|| ≤ ||xk-1 - x||2,k=1,2,…其中c是依赖于k的正数,则称该算法是平方收敛的。