内容发布更新时间 : 2024/12/27 13:07:46星期一 下面是文章的全部内容请认真阅读。
if k==N,Warning('已达到迭代次数上限');end disp(['迭代次数k=',num2str(k)]) 4. 利用matlab求解方程组的准确解 在matlab指令窗口中输入: >> A=[4,-1,0,0;-1 4 -1 0;0 -1 4 -1;0 0 -1 4]; >> B=[5.84 -5.5 7.33 3.35]'; >> X=A\\B 实验数据和分析: 1.利用Jacobi迭代法求解: 在MATLAB命令窗口执行程序masorm.m: >>clear;clc >> A=[4,-1,0,0;-1 4 -1 0;0 -1 4 -1;0 0 -1 4]; >> B=[5.84 -5.5 7.33 3.35]'; >> x=majacobi(A,B) 得到计算结果: 迭代次数k=17 x = 1.3264 -0.5345 2.0355 1.3464 6 / 10
2.利用Gauss-Seidel迭代法求解: 在MATLAB命令窗口执行程序maseidel.m: >>clear;clc >> A=[4,-1,0,0;-1 4 -1 0;0 -1 4 -1;0 0 -1 4]; >> B=[5.84 -5.5 7.33 3.35]'; >> x=maseidel(A,B) 得到计算结果: 迭代次数k=9 x = 1.3264 -0.5345 2.0355 1.3464 3.利用SOR迭代法求解: 在MATLAB命令窗口执行程序: >>clear;clc >> A=[4,-1,0,0;-1 4 -1 0;0 -1 4 -1;0 0 -1 4]; >> B=[5.84 -5.5 7.33 3.35]'; >>x=masor(A,B,1.05) 得到计算结果: 迭代次数k=6 7 / 10
x = 1.3264 -0.5345 2.0355 1.3464 4.利用matlab求解方程组的准确解 得到计算结构 X = 1.3264 -0.5345 2.0355 1.3464 通过以上数据测试可以分析出以下几点: 1. Jacobi、Gauss-Seidel、SOR三种迭代法对应的迭代次数是逐渐减少的,也就是说三种方法在迭代的速度上是逐个增加的; 2.三种迭代法计算得到的解与严格计算方程组后的精确解在结果所示精度下是相同的,说明三种迭代法的求解精度是不低的。 8 / 10
实验的启示: 1. 通过本次试验,我掌握了用Jacobi、Gauss-Seidel、SOR迭代法求解线性方程组的方法; 2. 切实了解到了三种迭代法求解线性方程组的差异所在; 3. 本来对MATLAB很生疏了,但经过本次试验,巩固了关于MATLAB的很多相关知识; 4. 深刻体会到了MATLAB功能的强大之处; 5. 在做本次实验的过程中,也学到了很多新的知识,比如MATLAB的.m文件等知识; 9 / 10
10 / 10