《数值分析》实验报告学院:数学与计算机学院专业:班级:姓名学号实验组实验时间指导教师成绩实验项目名称基于线性方程组的迭代法求解实验目的利用迭代法求线性方程组的解。实验内容分别用雅可比迭代和高斯-塞德尔迭代求以下方程组的解,误差不超过710。3103220241225321321321xxxxxxxxx实验原理首先将方程组bAx中的系数矩阵A分解成三部分,即:ULDA,其中D为对角阵,L为下三角矩阵,U为上三角矩阵。雅可比迭代公式为:bxULDxkk)()1()(,高斯-赛德尔迭代公式:bUxLxDxkkk)()1()1(。于是,两个迭代法的计算公式为:迭代次数,1,0;,,2,1/)(),,,(1)()1()0()0(2)0(1)0(kniaxabxxxxxiinijjkjijikiTn迭代次数,1,0;,,2,1/)(),,,(11)()1()1()0()0(2)0(1)0(kniaxaxabxxxxxiiijnkjijkjijikiTn实验仪器1、计算机一台。2、安装IIS。实验步骤Step1:将文件中线性方程组的增广矩阵读入内存;Step2:选择雅可比迭代法或者高斯-赛德尔迭代法;Step3:初始化迭代初值,设置迭代次数上限;Step3:开始迭代,产生迭代后的新根,计算此时的误差;Step4:如果误差不满足要求,转到Step5,否则转到Step6。Step5:判断是否达到迭代次数上限,若没有达到,让迭代次数加1,返回到Step3,若到达迭代上限,则本次实验迭代失败,输出失败信息。Step6用表格方式输出线性方程组的解,过程结束。实验总结本次试验是通过使用雅可比迭代法和高斯-塞德尔迭代法求解线性方程组的解,编写程序的过程中,首先要对两个迭代法的数学原理十分熟悉,然后对程序的整个流程十分清楚才行。在实验中,我开始是对具体题目编写求解程序,虽然可以将具体的某一道题解出来,但是一旦线性方程组换成另一个,程序将无法求解,即编写的程序不能通用,于是,才开始设计能够实现求解线性方程组的通用算法,无论方程组是几阶方程组,只要知道它的增广矩阵(系数矩阵加常数项列),就可以使用这两个迭代算法求解。将线性方程组的增广矩阵存入文件,就可以通过查找文件名达到获取文件数据的效果。实验中,设置不同的初值,得到的迭代次数也非常不同,本实验我选择的初始值都是0。实验的第5问中,通过连两个迭代法的运用,发现确实是有的线性方程组用雅可比迭代法比高斯-塞德尔迭代法要快,有的线性方程组使用雅可比迭代法或高斯-塞德尔迭代法无法求解。因此,这两个迭代法也不是对所有的小行星方程组都是可以求解的,即使用这两个迭代法无法求解,线性方程组依然有可能有解。实验流程图实验结果主界面效果截图选择雅可比迭代法结果截图实验结果使用高斯-塞德尔迭代法结果截图:第5问第一个线性方程组用雅可比迭代是失败的,但高斯-塞德尔迭代成功:第5问第一个线性方程组用雅可比迭代是成功的,但高斯-塞德尔迭代是失败的: