资源描述:
《实验二 用雅克比迭代法解方程组.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数值计算方法实验实验2用雅克比迭代法解方程组一、实验目的1、学习使用雅克比迭代法求解方程组,加深对雅克比迭代法的认识。2、在误差允许的范围内,在循环次数较少的情况下,求解方程组的稳定解。3、进一步加深对Matlab的学习。二、实验题目用雅克比迭代法解方程组:三、实验原理设有n元线性方程组AX=b,其中系数矩阵A的对角元素0(i=1,2,3,…,n)从方程组的第i个方程中可以解出,可得到以下等价方程组:(),(),………………………………………………,.记D为A的对角线矩阵,L为A的下三角阵,U为A的上三角阵,即则有:X=-(L+U)X+b;令B=-(L+U),d=b;
2、则有:X=BX+d;其中B成为迭代矩阵上式即为雅克比迭代法的迭代公式。取定一个以后,便可得,再往下迭代得到:,如此反复迭代,一般的有:,k=0,1,2,…,由此便得到一个向量序列{}.若,则就是方程组的解。反之:若不存在,即{}不收敛,就不能用雅克比迭代法计算。可将上述迭代过程改为如下形式:,(i=1,2,3,…,n)一、实验内容按照上述迭代法可得到如下的算法:设方程组为:AX=b,其中系数矩阵A的对角元素0(i=1,2,3,…,n)max_iter为迭代数容许的最大值,eps为容许误差:1.取初始向量,令k=0;2.对i=1,2,…,n,计算:.3.如果,则输出,结
3、束。否则,执行下一步;4.如果max_iter>=50,则该迭代法不收敛,终止程序;否则转2.建立一个M文件,程序如下:function[x,iter]=jacobi1(A,b,x_0)A=[521;28-3;1-3-6];b=[8211];eps=10e-6;x_0=[000];n=3;x=x_0;max_iter=100;y=[000];fork=1:nif(A(k,k)==0)returnendenditer=1;whileiter4、)-temp)/A(i,i);y(i)=x(i)+temp;endx=y;iter=iter+1;ifabs(temp)