资源描述:
《计算方法jacobi迭代法与高斯seidel迭代法实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验名称:实验3jacobi迭代法与Gauss-seidel迭代法实验题目:给定线性方程组Ax=b如下实验目的:掌握用jacobi迭代法与Gauss-seidel迭代法求解线性方程组的基本步骤。基础理论:jacobi迭代法基本思路是方程组Ax=b等价于x=Bx+f,然后通过迭代算出方程组的解;Gauss-seidel迭代法主要是通过对A的分解,构造迭代公式,进而迭代算出方程组的解。实验环境:操作系统:WindowsXP;实验平台:matlab实验过程:方法一:jacobi迭代法程序:n=4;A=[10,-1,2,0;-1,11,-1,3;2,-1,10,-1;0,3,-1,8]
2、;b=[6,25,-11,15];x0=[0,0,0,0];x0=zeros(n,1);x=x0;epsilon=input('精度=');N=input('最大迭代次数N=');fprintf('%d:',0);fori=1:nfprintf('%f',x0(i));end%以下是迭代过程fork=1:N%这是第k步迭代,迭代前的向量在x0[]中,迭代后的在x[]中normal=0;fori=1:nx(i)=b(i);forj=1:nifj~=ix(i)=x(i)-A(i,j)*x0(j);endendx(i)=x(i)/A(i,i);temp=abs(x(i)
3、-x0(i));%求范数与迭代在同一个循环中iftemp>normalnormal=temp;%这里用的是无穷范数endend%第i步迭代结束fprintf('%d:',k);fori=1:nx0(i)=x(i);%为下一次迭代准备初值fprintf('%f',x(i));%输出迭代过程endifnormal4、,3;2,-1,10,-1;0,3,-1,8];b=[6,25,-11,15];x=[0,0,0,0];epsilon=input('精度=');N=input('最大迭代次数N=');fprintf('%d:',0);fori=1:nfprintf('%f',x(i));end%以下是迭代过程fork=1:N%这是第k步迭代,迭代前的向量在x0[]中,迭代后的在x[]中normal=0;fori=1:nt=x(i);x(i)=b(i);forj=1:nifj~=ix(i)=x(i)-A(i,j)*x(j);endendx(i)=x(i)/A(i,i);temp=
5、abs(x(i)-t);%求范数与迭代在同一个循环中iftemp>normalnormal=temp;%这里用的是无穷范数endend%第i步迭代结束fprintf('%d:',k);fori=1:nfprintf('%f',x(i));%输出迭代过程endifnormal