一、 实验目的与要求
1.熟练掌握QR分解Gram–Schmidt方法;
2.掌握Householder方法;
3.能够判断矩阵是否可逆,并求出其逆矩阵。
二、 问题
读取附件MatrixA.mat文件中的矩阵A,利用Gram–Schmidt(GS)算法对A进行QR分解。
(1) 验证GS是否能稳定进行QR分解矩阵A,其Q矩阵是否正交?
(2) 实现Householder方法QR分解代码,并验证其对矩阵A分解是否稳定?
(3) 读取附件MatrixB.mat文件的方矩阵B,判断其是否可逆?如果可逆,求其逆矩阵。
三、模型建立及求解
解决问题思路,模型建立,分析不同QR分解方法的稳定性,如何应用求解判断矩阵是否可逆及其逆矩阵问题等方面进行阐述;注意:由于计算机用浮点数格式存储数,当其绝对值很小时,可认为其值为0;代码不要放在报告里面,可以作为附件提交!
1.理论概念
2. QR分解
QR分解法是将原矩阵A(M*N)分解成一个正交矩阵Q(M*N)和一个上三角矩阵R(N*N)(对角线下面的元素全为0)的乘积。QR分解主要有三种方法:Gram-Schmid正交化法、Household变换法、Givens变换法。
2.1 Gram–Schmidt正交化算法
2.1.4 Modified Gram-Schmidt QR
使用Gran-Schmidt QR进行QR分解由于数值计算的精度问题,其计算的误差累积较快,当矩阵维数较高的时候具有较差的稳定性。
问题分析:矩阵的正交性使得其逆矩阵可以直接通过矩阵的转置得到,如果正交性被破坏,那么会造成计算的错误;矩阵R元素的精度也会导致越往后面计算所得的元素误差越大。
针对如上问题,在Gran-Schmidt QR进行优化,提出了Modified Gram-Schmidt QR。
(1)算法优化思路
Gran-Schmidt QR的算法进行QR分解是逐列分解,某一步中的向量只与当前向量的前一个向量有关,其他之后的向量不可见。而计算过程中不可避免地引入误差,而后面的向量只有在其被计算的时候才可见,这时误差可能已经积累到一定程度,所以导致其稳定性较差。
故,首先选定一个向量作为第一个基准,然后将其余所有向量都投影到该基准的正交空间中。在该正交空间中,对剩下的向量重复前面的工作。
如此,Modified Gram-Schmidt QR使得从一开始所有的向量都是可见的,这样大部分的计算都在误差尚未积累到较大程度的时候就已经被执行,计算量越往后是逐步减少的,因此前面计算积累的误差的影响就不会剧烈地扩散开,所以MGS可以使求得的矩阵Q的正交性更好,同时矩阵R的误差也被控制在计算机精度的水平。
通过两个图像对比,发现,Modified Gram–Schmidt QR稳定性明显高于Gram–Schmidt QR。修正前Gram-Schmidt QR分解在k>35后正交性偏差开始逐渐增大,由0逐渐增大到近1。而在修正后仅从0逐渐增大到近1.2*10^-7。由此,验证了修正后算法有更好的数值计算性能,能有效减少计算机浮点数存储的误差,大大提高稳定性。
2.2 Householder方法
2.2.1 Householder介绍
Householder是基于迭代镜面反射的方法,通过构造反射算子,利用映射不断对原矩阵A进行Householder三角化,实现QR分解。
3.矩阵求逆
提示: 老师说没有必要用3.2方法求逆(复杂度很高),直接从QR分解过程中是否报错跳出分解来判断是否可逆。
这部分(Givens变换)的实现我略过了,但是大家做实验的时候还是要实现一下 。
四、小结(可含个人心得体会)
QR分解常用方法有四种,分别是Gram-Schmidt、Modified Gram-Schmidt、Householder、Givens。下面是三种方法的优缺点总结。
*Gram-Schmidt
优点:
1.适合小矩阵计算;
2.每次迭代都生成一个正交基,可以随时停止计算
缺点:
1.不适合稀疏矩阵;
2.积累大量舍入误差;
3.循环中必须保存整个矩阵,内存开销大
*Householder
优点:
1.不显式计算Q,只保存若干反射矩阵H,适合仅需要R的任务;
2.最适合稠密矩阵;
缺点:
1.迭代过程不产生可用正交基,必须等到全部迭代完成,无法中断。
2.对于稀疏矩阵会产生大量无效计算。
*Givens
优点:
1.最适合稀疏矩阵,仅影响向量的两个分量,不会对零元素做无效操作;
缺点:
1.迭代的过程不产生可用的正交基,无法中断
2.不适合稠密矩阵计算,稠密矩阵下的计算量大且需要更多空间;文章来源:https://www.toymoban.com/news/detail-820474.html
本次实验学习研究了QR分解及几种方法,深入学习了矩阵的知识,掌握并实践了正交化方法及其他QR分解的方法,学会了如何表达算法的稳定性。文章来源地址https://www.toymoban.com/news/detail-820474.html
到了这里,关于最优化方法(三)——矩阵QR分解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!