最优化方法实验三--矩阵QR分解

这篇具有很好参考价值的文章主要介绍了最优化方法实验三--矩阵QR分解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、 实验目的与要求

1.熟练掌握QR分解Gram–Schmidt方法;

2.掌握Householder

3.能够判断矩阵是否可逆,并求出其逆矩阵

二、 问题

最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法

三、模型建立及求解

1、Gram–Schmidt

1.1向量投影

向量的投影包含了两层意思:①正交关系:矢量与投影的差称为误差,误差和投影正交;②最短距离:投影空间中所有矢量中,与原矢量距离最近的,就是原矢量在该空间的投影,且最短距离的平方就是最小平方误差。

如图2所示,已知向量ab,将b投影到a上,投影为p,设p=ta,t为常量,bp的差为e,e=b-p。根据上述的正交关系ep正交,根据最短距离有:。

最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法

设,则。令,求得。则,。当为单位向量,即时,有:

                                            ------(1.1.1)

                                ------(1.1.2)

1.2 Gram–Schmidt正交化

Gram–Schmidt算法的目的是将给定的一组线性无关向量,转换为一组标准正交基。其主要思想为:每个新的矢量都减去它在已经正交化的矢量方向的投影,进而每次新增一个与所有已经正交化的矢量都正交的矢量。新的矢量只和之前的矢量有关,而与后面的矢量无关。每新增一个正交矢量,将其单位化,最终即可将一组线性无关向量转换成标准正交基。

如图3所示为将向量进行正交化过程。首先令,第一个矢量保持方向不变,将单位化得到;然后根据2.1式(1.1.1)和(1.1.2),令,可以保证与正交,将单位化得到。于是将向量正交化得到了标准正交基。

最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法

将向量的数目推广至n个,将正交化的过程为:

①令;

②正交化:根据公式计算;

③检验线性相关:若,则最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法,是的线性组合,证明线性相关,退出迭代;否则进行下一步;

④单位化:令;

⑤重复步骤②~④,直至遍历完所有向量。

若在第i次迭代未退出,可证明与都是正交的:等式两边左乘,得:

   (为常数可提到后面)

         

两两正交且都为单位向量,所以,且,
,所以:,即。因此,而方向与一致,故与都是正交的。通过上述过程可将n个线性无关的向量得到一组n维向量空间中的标准正交基。

1.3Gram–Schmidt算法QR分解

QR分解是将一个矩阵A分解成具有标准正交列向量的矩阵Q和上三角矩阵R(对角线元素不为0)的算法,即A=QR:

               

为A的列且线性独立,为Q的列且两两正交,所以有:

    ------(1.3.3)

Q矩阵可逆且其逆矩阵为,由于A=QR,所以。

矩阵Q的列由矩阵A的列通过Gram–Schmidt正交化得到。对A进行QR分解:A=QR。设为矩阵R的列,为R矩阵第i行第j列元素,则有:

                            最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法

                            最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法

在Gram–Schmidt正交化步骤中,新的矢量只和之前的矢量有关,而与后面的矢量无关。即只与和有关,而与最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法无关,所以最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法,故R是上三角矩阵。

又而根据Gram–Schmidt正交化步骤, ,所以矩阵R对角线元素。

根据式(1.3.3),,有:

  

所以:

Gram–Schmidt算法实现矩阵A的QR分解为基于正交化定义的方法,实现核心类似数学归纳法,通过第k步的结果推导到第k+1步,逐列计算Q和R的元素,步骤如下:

最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法

1.4复杂度分析

设矩阵A大小为m×n,在第k次循环中,计算上三角非对角线元素的次数为k-1,每次内积的复杂度为2m-1 flops,总的复杂度为(k-1)(2m-1)flops;正交化复杂度为2(k-1)m flops;计算对角线元素和单位化的复杂度为3m flops。总计为(4m-1)(k-1)+3m flops。总共n次循环,总复杂度为:

最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法flops。

1.5稳定性分析

导入附件MatrixA.mat中的矩阵进行QR分解后进行稳定性分析,验证得到的Q矩阵是否正交,通过计算与前面列之间的正交性的偏差:,当,说明Q矩阵的列不是完全正交的。

将计算结果画图显示,如图3所示。可以观察到,当k<35时,偏差值都为0,而后偏差急剧上升。分析原因,可能是由于浮点数存储的舍入误差,而每新增的正交向量都与前面的向量有关,即误差会累积。随着k增大超出一定范围后,误差累积量增加,导致波动性增大,Q矩阵逐渐失去正交性,稳定性降低。

最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法

由于Gram–Schmidt稳定性较低,下面将引入Gram–Schmidt的改进算法Modified Gram–Schmidt。

2、Modified Gram-Schmidt

2.1Modified Gram-Schmidt算法思想

由上述Gram-Schmidt算法的QR分解稳定性分析中可知,QR分解是逐列分解的,新向量只与前面的向量有关,与之后的向量无关。计算过程中由于浮点数计算精度问题会带来误差,而后面的向量只有在其被计算的时候才可见,这时误差可能已经积累到一定程度,故越往后计算误差越大,当矩阵维数较高的时候具有较差的稳定性。

故想减小误差积累,提高稳定性,计算当前向量时同时考虑之后的向量。Modified Gram-Schmidt 的核心思想为:先选定一个向量作为第一个基准,然后将其余所有向量都投影到该基准的正交空间中,在该正交空间中,对剩下的向量重复前面的工作,最后所有的向量两两正交。实现步骤如下:

最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法

2.2复杂度分析

本质上Modified Gram-Schmidt 与Gran-Schmidt 是等价的,MGS只是对计算顺序进行了变更,计算次数不变,故算法复杂度依然为 flops。

2.3稳定性分析

导入附件MatrixA.mat中的矩阵进行QR分解后进行稳定性分析,计算并画出折线图,如图4所示,可以看到偏差的数量级为,相比于Gram-Schmidt方法 QR分解,稳定性有了极大提升。

分析该结果,Modified Gram-Schmidt 从开始就使所有的向量都参与计算,这样大部分的计算都在误差尚未积累到较大时就已经被执行。由于是按行计算R,MGS的计算量随循环次数逐步减少,因此前面积累的误差的影响就不会剧烈地扩散开,所以MGS可以使求得的矩阵Q的正交性更好,提高了稳定性。

最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法

3、Householder

3.1反射算子

设一个模为1的向量,令矩阵,则H为反射矩阵,也称为反射算子。反射矩阵是对称且正交的矩阵:

                    

                    最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法

                                最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法

定义一个以为法向量的超平面S:。空间上任一向量x在S上的投影为:

                   

x关于超平面S的对称点由其与反射算子的乘积给出:

最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法

3.2Householder算法QR分解

Householder算法实现QR分解的核心思想为,通过构造反射算子,逐列对原矩阵A进行Householder三角化,最终得到上三角矩阵R,而通过构造的反射算子计算出Q,实现QR分解。将一个3×3矩阵上三角化的过程下所示,、为构造的反射算子。

                   

                       

通过构造反射算子,逐列对矩阵进行Householder三角化的原理为:例如给定一个m×n的矩阵,首先对A的第一列进行上三角化时,需构造这样一个反射算子,使得,除第一个元素外全为0。相当于关于超平面对称的向量在一条坐标轴上,如图5所示。

最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法

      

实现了第一列的上三角化。

构造反射算子反射算子的过程为:对于第一列向量,定义函数,定义向量和:

                            最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法

为单位向量,反射算子使用构造:。

验证满足将A第一列上三角化的需求:将映射为:

         

而v满足:最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法,所以:

                                 

所以满足要求。

当上三角化至进行至第k步时,矩阵具有如图6所示结构,空白处即和第i,j个位置的元素值为0。这时要第k列上三角化,相当于构造一个反射矩阵(长度为m-k+1,大小为(m-k+1)×(m-k+1)),对虚线包围区域的第一列上三角化,构造方式与上述矩阵A第一列类似。

得到后,利用构造一个如图7所示结构,仍是一个对称正交矩阵,即,。所得矩阵前k-1列不变,实现了对第k列的上三角化。

     最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法

Householder算法实现过程如下所示:

最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法

至此,原矩阵A经过一系列变换得到上三角矩阵:。Householder方法实现的QR分解是对矩阵A计算一个完整的QR因数分解,而通常情况下不需计算矩阵。

的值通过计算得到:由于都为对称正交矩阵,故,令,则:

,      

所以。

3.3复杂度分析

循环至第k次时复杂度为:

计算乘积:最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法flops;

外积复杂度:最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法flops;

减法次数:最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法flops。

第k次循环总复杂度为:最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法flops。算法总复杂度为:

                最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法flops

3.4稳定性分析

导入附件MatrixA.mat中的矩阵进行QR分解后进行稳定性分析,计算并画出折线图,如图8所示,可以看到偏差的数量级变成了,相比于MGS,稳定性有了极大提升。

最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法

4、QR分解应用

4.1求解线性方程组

使用QR分解求解线性方程组Ax=b,A大小为n×n,为非奇异矩阵。首先将矩阵A进行QR分解,A=QR,线性方程组变成QRx=b,所以。由于R为上三角矩阵,通过回代即可算出x。

复杂度分析:其中QR分解复杂度为,矩阵乘法为,回代为,所以平均复杂度约为最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法flops。

导入实验1的A_b.mat文件,使用QR分解求解线性方程组。统计误差,与列主元消元法对比,如图9、图10所示。可以看到QR分解误差小于列主元消元法。

最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法

4.2求解逆矩阵

对于给定矩阵B,对其进行QR分解,若未能成功分解,即中途退出循环,证明B矩阵列向量线性相关,B为奇异矩阵;否则得到B=QR,求B的逆矩阵方法为:。

复杂度分析:其中QR分解复杂度为,求Q的转置为,由于R为上三角矩阵,求其逆的为最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法,矩阵乘法为,所以平均复杂度约为最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法flops。

导入附件matrixB.mat给出的矩阵B,成功对其进行QR分解,证明B可逆。使用QR分解方法求其逆矩阵,计算与B相乘后每一列向量的二范数值,如图11所示,再验证对角线的元素值,如图12所示,可以看到所有的值都集中在1附近,正确求解出B的逆矩阵。

最优化方法实验三--矩阵QR分解,最优化方法,线性代数,算法文章来源地址https://www.toymoban.com/news/detail-836320.html

到了这里,关于最优化方法实验三--矩阵QR分解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数学学习——最优化问题引入、凸集、凸函数、凸优化、梯度、Jacobi矩阵、Hessian矩阵

    例如:有一根绳子,长度一定的情况下,需要如何围成一个面积最大的图像?这就是一个最优化的问题。就是我们高中数学中最常见的最值问题。 最优化问题的一般形式是: m i n ​ f ( x ) x ∈ C min​f(x) \\\\ x in C min ​ f ( x ) x ∈ C 其中, f f f 是目标函数, A A A 是约束条件,

    2024年02月15日
    浏览(42)
  • 机器学习笔记之最优化理论与方法(一)最优化问题概述

    从本节开始,将对 最优化理论与方法 进行简单认识。 无论是 最优化理论 还是 最优化方法 ,讨论的 对象 都是 最优化问题 。 关于 最优化问题 的一种简单描述:最优化问题本质上属于 决策问题 。 例如 路径选择 问题:确定达到目的地最佳路径的计量标准 。其中问题的 目

    2024年02月11日
    浏览(45)
  • 无约束最优化方法

    求解无约束最优化的基本思路 给定初始点 x 0 ∈ R n , k = 0 x_0in mathbb{R}^n,k=0 x 0 ​ ∈ R n , k = 0 判断当前解是否满足终止准则,若满足则停止迭代,若不满足则转3. 确定 f ( x ) f(x) f ( x ) 在 x k x_k x k ​ 点的下降方向 确定步长 λ k lambda_k λ k ​ ,使 f ( x k + λ k d k ) f(x_k+lambda_

    2023年04月08日
    浏览(96)
  • 最优化方法

    1.最小生成树 图的生成树是它的一颗含有其所有顶点的无环连通子图,一 幅加权图的最小生成树(MST)是它的一颗权值(树中的所有边的权值之和) 最小的生成树 • 适用场景:道路规划、通讯网络规划、管道铺设、电线布设等 题目数据 kruskal算法 稀疏图,按边大小排序 prim 稠密图

    2024年02月15日
    浏览(37)
  • 最优化方法与数学建模

    目录 1. 梯度下降法 2. 牛顿法 3. 遗传算法 4. 数学建模案例

    2024年02月08日
    浏览(40)
  • 最优化方法-牛顿法一维搜索

    导言: 在最优化问题中,找到函数的最小值或最大值是一个重要的任务。牛顿法是一种经典的迭代方法,常用于优化问题的求解。本文将详细介绍最优化方法中的牛顿法一维搜索,包括其基本原理、算法步骤以及应用场景。 牛顿法,也称为牛顿-拉夫逊方法,是一种迭代的优

    2024年02月06日
    浏览(38)
  • 机器学习笔记之最优化理论与方法(五)凸优化问题(上)

    本节将介绍 凸优化问题 ,主要介绍 凸优化问题的基本定义 、 凸优化与非凸优化问题的区分 。 关于最优化问题 P mathcal P P 描述如下: P ⇒ { min ⁡ f ( x 1 , x 2 , ⋯   , x n ) s.t.  { G i ( x 1 , x 2 , ⋯   , x n ) ≤ 0 i = 1 , 2 , ⋯   , m H j ( x 1 , x 2 , ⋯   , x n ) = 0 j = 1 , 2 , ⋯   ,

    2024年02月09日
    浏览(42)
  • 机器学习笔记之最优化理论与方法(九)无约束优化问题——常用求解方法(下)

    上一节介绍了 牛顿法、拟牛顿法 。本节将继续以 拟牛顿法 为基础,介绍 DFP , BFGS text{DFP},text{BFGS} DFP , BFGS 方法 。 经典牛顿法缺陷与修正牛顿法 关于 经典牛顿法 中关于 下降方向 D k ( k = 1 , 2 , ⋯   , ∞ ) mathcal D_k(k=1,2,cdots,infty) D k ​ ( k = 1 , 2 , ⋯ , ∞ ) 的 数学符号 表

    2024年02月09日
    浏览(51)
  • 机器学习笔记之最优化理论与方法(七)无约束优化问题——常用求解方法(上)

    本节将介绍 无约束优化问题 的常用求解方法,包括 坐标轴交替下降法、最速下降法 。 本节是对优化算法(十~十七)最速下降法(梯度下降法)的理论补充,其中可能出现一些定理的 证明过程 这里不再赘述,并在相应位置 附加链接 。 从本节开始,将介绍 四大类 无约束优化问

    2024年02月10日
    浏览(49)
  • 最优化方法Python计算:一元函数导数计算

    定义1 给定连续函数 f ( x ) f(x) f ( x ) , x ∈ Ω ⊆ R xinOmegasubseteqtext{ℝ} x ∈ Ω ⊆ R 。设 x , x 1 ∈ Ω x,x_1inOmega x , x 1 ​ ∈ Ω , Δ x = x − x 1 Delta x=x-x_1 Δ x = x − x 1 ​ 称为变量 x x x 的 差分 。此时, x = x 1 + Δ x x=x_1+Delta x x = x 1 ​ + Δ x 。称 f ( x 1 + Δ x ) − f ( x 1 ) Δ x

    2023年04月23日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包