当前课程知识点:计算方法 > 第6章 线性方程组的直接解法 > 6.3 矩阵分解与应用 > 6.3 矩阵分解与应用
同学们
我们下面介绍一下
我们直接法里面的第三部分
关于矩阵的分解和应用
那么
刚才我们学习消元法过程中可以看到
我们怎么叫分解
说把一个系数矩阵A
假设分解成L和U相乘
其中L是
下三角矩阵U是上三角矩阵
这样的话可以把A写成L乘U
同时原方程组
Ax等于b就可以写成
L乘UX等于b
所以把原方程组转化成两个方程组
一个是L乘y等于b另外一个
U乘x等于y
所以说我们通过这个分解之后
把一个方程组变成两个方程组了
所以说我们如果先通过L乘y等于b
把y解出来
然后
再通过U乘x等于y
把x求解了同样的话
我们就得到了这个方程组和它的解
这个整个是L分解基本思想
那么按照刚才所讲的
进行分解
成L乘U一般情况下有两种情况
一个是L
如果是个单位下三角矩阵
那么把他叫做杜里特尔
如果说U是
单位上三角矩阵
把它叫做克劳特分解
所以说我们一般来讲做这LU分解
有两种情况
一个是杜里特尔分解
还有一个叫克劳特分解
如果没有一般情况下或者没有说明
讲的都是杜里特尔
这是第一个关于LU分解具体
第二个
这样的分解
在实际计算里边
它有个很重要的格式问题
可以把L和U两个矩阵压缩到一个
数组里面去
而且还可以
存储在原来的系数矩阵里面
这样的话
计算机处理数据就比较方便
把这种格式
也叫做紧凑格式
我们下面看一下具体到底如何去分解
我们假设L乘U等于A
刚才说了
如果说没有特殊情况下
我们这个分解都叫杜里特尔分解
所以说L是个单位下三角矩阵
U是上三角矩阵
我们让它们两个相乘
等于A下面
按照矩阵的乘法公式
我们可以把这里面的元素
lij跟我们的
uij全部计算出来
底下给个统一的公式
那个公式
就是说li乘uj
那么等于L的第i行和U的第j列
他们对应元素相乘相加
等于aij这个公式
整个可以说
把LU分解里面元素全部计算出来
我们给个一般的公式
根据矩阵乘法和相等定义
我们有下面两个公式
通过公式可以把矩阵进行分解
那么得到了最后的
要用的叫杜里特尔分解公式
也就把我们的uij跟lji全部计算出来
这样的话
我们可以说对A做了一个LU分解
那么分解完之后
按我们刚才所学习过的所讲的
把它分成两个方程组
来进行计算就可以
那么这工作如果到计算机来做的话
就说在计算机程序中
常常把这个办法
用的比较好一些比较方便
它的特点的存储量要小
L和U中的三角阵
它的零元素多
也就说L的对角线元素
也因为它都是1
也没有必要把它记录在程序里面
这样可以只用一个n阶的
方阵就可以把这些元素存好了
这是我们刚才说的
LU分解的基本过程
那么它的特点有下面三个第一个
关于它的
LU分解跟右端的向量是没关系的
有个自由向量
如上,没关系
第二个
分解是按步进行
前边分解得到的信息
后面是有用的第三个
我们的矩阵A
它的存储空间是可以利用的
这个主要讲的是
在计算机处理数据里边的一些过程
那么
通过LU分解学习之后
我们其实发现还有它的一些
特殊的一些应用
我们把它叫
做特殊方程组的求解问题
由两个方面第一个
我们对这个方法介绍来讲
叫追赶法第二个
叫如上分解法
同时把它改进之后会得到平方根法
那么这两个办法
其实它的对象是有特殊性的
我们看一下什么叫特殊性
也说追赶法
主要解决稀疏线性方程组
对追赶法的应用来讲
我们要解决这种带状方程组
换句话说
这个方程组
它的系数矩阵的呈现一个带状形式
那么是不是带状形式
我们看一下这个图也说这个方程组
它的里边的这个系数矩阵
都是这个带状的
从左上角到右下角
我们看一下它有三个主元素
三列主元素从左上到右下角的话
大家可以
想象一下像个带子放在这儿
那么它所对应的系数矩阵
以主对角线
为目标在两个方面
有这么两类元素
这是带状矩阵
因此
这个追赶法它的
目标是适合于带状矩阵的方程组
那么把刚才学习过的LU分解
包括这个
具体的过程应用到
这种带状矩阵里面
我们所得到的方法叫
追赶法
下面看一下这个方法到底怎么做的
同样的方法一样的
我们首先把系数矩阵做一个分解
那刚才说了LU分解有两种情况
一个叫杜里特尔分解
一个叫克劳特分解
我们下面换个形式
把这个带状矩阵
做一下克劳特分解
那么克劳特分解之后
我们假设A矩阵分解之后
等于L乘U
那么这个时候
大家知道U对角线元素1
这个上三角方程组
那叫做克劳特分解
同样办法令矩阵相乘
L和U的元素对应的元素相乘相加
得到A的系矩阵的元素
我们可以把这里面的如上
全部计算出来
我们给一个一般公式就是
L的第i行
与U的第j列对元素相乘相加
我们通过这个办法
得到了下面一个计算公式
这个计算公式
也很形象
也很有意思
我们看一下公式
那么里面的这三列元素
一个是如上
如上所示
还有如上
还有如上的这三类元素
之后我们可以把它的公式
用过来来计算它的求解问题
也说利用刚才的分解过程
通过克劳特分解
把原方程组分解成L乘y等于d
同时那Ux等于y
那么怎么办
我们先通过L
乘y等d先把y计算出来
然后
再通过U乘x等于y
再把x计算出来
这样的话我们就得到了
这个方程组的解
同时
这个追赶法
它的含义很清楚
什么叫追赶法很形象
因为我们从这个计算过程中发现
如果把这个计算β1再计算β2
再计算βn-1通过这个值之后
我们会得到y1、y2到yn
这个过程大家发现那个下标
1、2到n到正好从小到大
因此把这个过程叫追的过程
另外
我们通过Ax等于d
解决了我们的Xn的计算问题
Xn计算完之后
我们会算Xn-1
最后再算X1
从这个计算过程发现
X的下标是从大到小
所以说把这个过程叫赶也很形象
那么这个过程
把他叫到追赶法
这是我们说的
利用LU分解
解决了我们的这种
带状矩阵的求解问题
同时产生方法叫追赶法
当然
我们刚才讲的例子利用克劳特分解
进行的
不过我们可以对这个方程组
进行杜里特尔分解
这个就不再介绍了
那么
通过刚才所学习
这个LU分解追赶法
我们把这个概念的拓宽一下
给个一般的定理
如果这个带状矩阵
换句话说
它上带宽为q下带宽为p的n阶
带状矩阵A
它有杜里特尔分解
也说把A可以分解成LU
那么则这个L是一个下带宽为P的单位
下三角矩阵
U是上带宽为q的上三角矩阵
这样我们会得到一般
公式叫做杜里特尔分解
刚才所讲的是克劳特分解这两个
用一个就可以了
把这个公式也一般化
我就得到了杜里特尔分解它的
追赶法的一般公式
这一页给大家显示的就是
杜里特尔分解的一个详细过程
跟刚才所学习过的克劳特
分解是比较类似的
这两个方法是类似的方法
这是我刚才学习过的
这个克劳特分解
包括杜里特尔分解
用到带状矩阵所对应的方程组里面
所产生的追赶法
然后
我们下面把这个办法再
特殊化一下更特殊了
我们第二个办法的叫LD
L转置分解法
这个方法
它的特殊性体现到
这个方程组的系数矩阵比较特殊
是一个对称矩阵
也在实际问题里面
如果碰到一个方程组的系数
矩阵是对称矩阵
我们把这个LU分解这个追赶法
再应用一下就会得到
LDL转置的这个分解办法
明确了这方程组具有特殊性
它的系数矩阵一个对称矩阵
我们下面给个定理
这个定理也可以证明
在这我们就不去详细做证明了
如果这个方程组
它的系数矩阵是对称矩阵
那么A的各阶顺序
主子式不为0时
那么它会有唯一的杜里特尔分解
这个定理告诉我们
这个分解是肯定存在的
是没有任何问题的
当然了
我们按照刚才所讲的方法
继续学习一下这个LD
L转置的分解过程
也算我们通过刚才分解
把LU这个分解
再把U继续分解一下
把U分解成如上矩阵
那么这里面的具体的D是个对角阵
就是我们刚才所学过的U矩阵的
对角线元素
另外一个如上矩阵
他实际上是把U矩阵
里面的对角线元素
它每一列
对角元素如上
一直到如上全部提出去
所得到的这个矩阵叫U波浪矩阵
那么由于刚才所讲的
这个方程组的系矩阵是个对称矩阵
那么A和A的转置相等
我们下面通过一个矩阵运算
如上所示
按照矩阵转置的乘积的公式
我们就得到了如上所示
这样过程也是我们从这个
矩阵的运算里面发现一个结果
那么就得到什么结果
U波浪这个转置矩阵
跟L矩阵是相等的
也是说得到这样的例子
因此
把这个系矩阵
如果是一个对称矩阵的情况下
把LU分解具体化一下
会得到了下面一个分解
我们要以定理形式给大家
定理告诉我们说
如果对称矩阵A的各阶顺序
主子式不为零
那么则A会有唯一的杜里特尔分解
那就是A可以分解成LD
再乘L转置那么这里面的L矩阵
是一个单位下三角矩阵
D刚才说过把U又做了一次分解
所以说D矩阵里面的对角元素
是对角阵
那么L转置
刚才说了是它的L的转置矩阵
这样的话我们说
如果系数矩阵是个对称矩阵的话
我们会得到LU分解
另外一个特殊形式
LD再乘L转置这样一个矩阵
那么下面一样道理
按照矩阵乘法的运算规律
以及矩阵乘法相等的这个结果
我们把矩阵里面的元素
就是如上全部计算出来
给出它的公式
那么利用这个公式
可求解这种特殊系数矩阵方程组
如果是一个对称矩阵的情况下
它的一个解
这就是说的关于LD
L转置的这个方法
下面再看个简单例题
也是三个变量的一个线性
方程组
我们看一下这个方程组
它的系数矩阵
确实是一个对称矩阵
因此那就利用刚才所学习过的公式
能把它做一下分解
就直接做LD
L转置的这个分解分解完之后
按照刚才的学习
就可以进行这个求解
我们可以把它里面的变量
包括y1、y2
y3以及x1、x2、x3全部计算出来
这是很清楚的
知道这个方程组系数矩阵
必须要是一个对称矩阵
才能够用
LDL转置的这个方法
那么结合刚才所学习过的方法
第三个特殊情况
我们说
如果这个方程组的系数让它更特殊
是个正定矩阵
那如果方程组系数矩阵
是个正定矩阵
由定理告诉我们
这个方程组的分解也能够完成
我们下面把他的过程再简单描述一下
刚才学习过的LD
L转置这个分解基础之上
我们说
如果这个方程组
的系矩阵是正定矩阵
我们可以再接着分解
只做一步
就把D再分解一下
把D分解成
D的二分之一次乘D的二分之一次
分解完之后我们再看看矩阵运算
A应该等于L乘D
再乘L转置
那么因为刚才说了
这个分解是能够进行下去的
所以说把D再分解成
D的二分之一次乘D的二分之一次
我们利用矩阵相乘的结合律
会得到LD二分之一
再乘它的转制
这样的话
我们会引入一个新的矩阵
叫L波浪的矩阵
那么就说
A分解成L
波浪乘L
波浪的转置矩阵
这样情况下
我们说
如果这个系数矩阵是个正定矩阵
我们得到了这个分解
把它叫做Cholesky分解
Cholesky分解
那么这里面的注意下
这个L是个下三角矩阵
把它称作Cholesky
三角阵那么用Cholesky
可以得到加一个正定矩阵情况下
方程组求解
把这个方法就叫做平方根法
这就是我们说的
三个很特殊的一个分解过程
-1.1 引言
--1.1 引言
-1.2 算法与效率
-1.3 计算机数系与浮点运算
-1.4 误差与有效数字
-1.5 四则运算与函数求值的误差
-1.6 问题的性态与条件数
-1.7 算法数值稳定性
-第1章 作业
--第一章 作业
-2.1 引言 2.2 线性空间
-2.3 内积空间与元素的夹角
-2.4 赋范线性空间
-2.5 向量范数与向量序列极限
-2.6 矩阵范数
--2.6 矩阵范数
-第二章 作业
--第二章 作业
-3.1 引言
--3.1 引言
-3.3 不动点迭代法
--3.2 二分法
-3.4 不动点迭代法的收敛条件
-3.5 牛顿迭代法及其变形
-3.6 迭代法收敛阶
-3.7 重根的计算与加速收敛
-3.8 数值实验
--3.8 数值实验
-第3章 作业
--第3章 作业
-4.1 引言
--4.1 引言
-4.2 Lagrange插值
-4.3 Lagrange插值余项
-4.4 Newton差商插值
-4.5 Hermite插值
-4.6 分段多项式插值
-4.7 三次样条插值
-4.8 数值实验
--4.8 数值实验
-第4章 作业
--第4章 作业
-5.1 函数逼近与曲线拟合基本概念
-5.2 连续函数的最佳平方逼近
-5.3 曲线拟合的最小二乘法
-第5章 作业
--第5章 作业
-6.1 引言 6.2 高斯消元法
-6.3 矩阵分解与应用
-6.4 误差分析 6.5 数值实验
-第6章 作业
--第6章 作业
-7.1 引言 7.2 线性方程组的迭代法(上)
-7.2 线性方程组的迭代法
-7.3 非线性方程组的迭代法
-7.4 数值实验
--7.4 数值实验
-第7章 作业
--第7章 作业
-8.1 引言
--8.1 引言
-8.2 幂法与反幂法
-8.3 矩阵的正交分解
-8.4 QR方法
--8.4 QR方法
-8.5 Jacobi方法
-第8章 作业
--第8章 作业
-9.1 引言
-9.2 牛顿-柯特斯公式
-9.3 复合牛顿-柯特斯公式
-9.4 龙贝格算法
-9.5 高斯型求积公式
-9.6 数值微分
--9.6 数值微分
-10.1 引言
--10.1 引言
-10.2 梯形公式和改进的欧拉方法
-10.3 单步法的误差与稳定性收敛性
-10.4 高阶单步方法
-10.5 线性多步法
-10.6 多步法的误差与稳定性
-10.7 一阶微分方程组与高阶微分方程
-第10章 作业
--第10章 作业