北航数值分析大作业二:矩阵拟上三角化与特征值求解

需积分: 10 28 下载量 20 浏览量 更新于2024-09-09 收藏 345KB DOCX 举报
北航数值分析大作业二是一份针对《数值分析》课程的计算实习题目,主要关注的是如何优化QR分解法在求解线性代数问题中的应用。作业的核心任务是对给定矩阵进行预处理,即拟上三角化,以减少QR分解法的迭代次数。这个过程通过编写名为`Hessenberg`的函数实现,该函数将矩阵转换成Hessenberg形式,这是一种接近上三角形的特殊结构,有助于简化后续的求解过程。 在进行迭代求解特征值时,作业并未像课本中那样将QR分解与矩阵的更新步骤合并,而是采用了单独的`QR_decomposition`函数进行分解,然后处理得到的R矩阵。双步位移的QR方法在这里用于求解特征值,这种方法通过不断迭代矩阵Mk并保持其Q-R分解形式,直到达到收敛条件。 在迭代结束后,计算得到的特征值是实数,此时可以通过求解特征值对应的特征向量来进一步了解矩阵的性质。由于实特征值对应的矩阵秩为n-1,特征向量的形式不唯一,作业中提出利用列主元高斯消元法求解特征向量,具体做法是令其中一个元素等于1,这样可以得到一个唯一的特征向量表示。 源程序部分展示了如何初始化矩阵、执行Hessenberg变换、进行带双步位移的QR分解,以及存储和输出处理后的矩阵和结果。`eigenvector`函数可能用于计算特征向量,而`Init`函数负责输入矩阵的初始数据。 最后,`main`函数中使用`DblQRdec`函数完成整个迭代过程,并将结果写入名为"result.txt"的文件中,包括拟上三角化后的矩阵和QR迭代后的状态。这份作业不仅考察了数值分析的基本原理,还锻炼了学生的编程和算法设计能力,特别是在矩阵操作和迭代求解方面。