北航数值分析作业:算法设计与实现

需积分: 9 1 下载量 157 浏览量 更新于2024-09-12 收藏 63KB DOC 举报
"北航数值分析大作业程序,涉及矩阵的压缩、LU分解、特征值计算以及条件数和行列式的求解。" 这篇资源主要介绍了一次北航数值分析课程的大作业,涉及到的内容是矩阵理论和数值计算方法。作业的核心任务是通过编程实现一系列数值算法,用于求解特定矩阵的特征值及相关性质。 首先,算法设计方案包括以下几个步骤: 1. **矩阵压缩与LU分解**:程序首先对矩阵A进行压缩,得到矩阵C,然后对C进行LU分解。LU分解是将一个矩阵分解为一个下三角矩阵L和一个上三角矩阵U的乘积,这种分解在求解线性方程组和计算矩阵的行列式时非常有用。 2. **反幂法求模最小特征值**:反幂法是一种求解矩阵特征值的方法,特别适用于寻找矩阵模最小的特征值。当矩阵A存在相等模最小的特征值时,反幂法可以找到这些特征值,但可能无法找到对应的特征向量。 3. **幂法求模最大特征值**:幂法是另一种求解特征值的算法,主要用于寻找矩阵模最大的特征值。 4. **计算矩阵B的特征值**:矩阵B定义为A加上模最大特征值λm的绝对值乘以单位矩阵I,然后分别计算B的模最大特征值μm和模最小特征值μs。利用这些值可以得到其他特征值的表达式。 5. **计算μk并求解Bk的模最小特征值**:定义μk为λm加上k倍的(λ501 - λ1)除以40,其中k从1到39。对于每个μk,构建矩阵Bk = A - μkI,并使用反幂法求解Bk的模最小特征值。 6. **计算矩阵条件数和行列式**:矩阵的条件数cond(A)2是模最大特征值λm与模最小特征值λs的比值,它反映了矩阵的稳定性。行列式detA可以通过已有的LU分解计算,因为对于LU分解的矩阵,其行列式等于L和U两部分的行列式的乘积。 程序中包含了主程序以及相关辅助函数,如生成矩阵A的非零元素、计算特征值等。在实际运行时,程序会初始化所需的数组和变量,然后按照上述步骤执行算法,最终得出所需的结果。 这个作业要求学生掌握数值线性代数的基本算法,包括矩阵的压缩存储、LU分解、特征值计算以及矩阵条件数和行列式的求解。这些技能在科学计算和工程问题中具有广泛的应用。