该代码实现了雅可比迭代法和超松弛迭代法求解线性方程组的功能。其中,雅可比迭代法实现在函数jacob2中,超松弛迭代法实现在函数cscdd中。

函数jacob2中,首先将系数矩阵A分解为对角矩阵D、上三角矩阵U和下三角矩阵L。如果D的行列式为0,则输出“此方程组无解”,否则输出“此方程组有解”。然后计算D的逆矩阵iD、矩阵B1和向量f1。进行迭代,每次更新近似解X,并计算两种误差:绝对误差djwcX和相对误差xdwcX。如果两种误差均小于给定误差wucha,则输出“雅可比迭代收敛,此方程组精确解X和近似解X如下”,并返回精确解X和近似解X。如果迭代次数超过最大迭代次数max1,则输出“雅可比迭代次数已经超过最大迭代次数max1”。

函数cscdd中,首先将系数矩阵A分解为对角矩阵D、上三角矩阵U和下三角矩阵L。然后计算D-om*L的逆矩阵iD、矩阵B2和向量f2。进行迭代,每次更新近似解X,并计算两种误差:绝对误差djwcX和相对误差xdwcX。如果两种误差均小于给定误差wucha,则输出“谱半径mH,A的分解矩阵D、U、L和方程组的精确解jX,迭代次数i如下”,并返回精确解jX和迭代次数i。如果迭代次数超过最大迭代次数max1,则输出“迭代次数已经超过最大迭代次数max1,谱半径mH,方程组的精确解jX,迭代次数i如下”。

需要注意的是,在超松弛迭代法中,谱半径mH的计算使用了矩阵B2的特征值。如果mH不小于1,则输出“因为谱半径不小于1,所以超松弛迭代序列发散,谱半径mH,A的分解矩阵D、U、L和方程组的精确解jX,迭代次数i和迭代序列X如下”。如果mH小于1,则输出“因为谱半径小于1,所以超松弛迭代序列收敛,近似解X如下”


原文地址: https://www.cveoy.top/t/topic/fdRS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录