赞
踩
- function x = agui_jacobi(a,b,e)
- % 雅可比迭代法
- % a为系数矩阵,b为右端向量,x0为初始向量(默认为零向量)
- % e为精度,N为最大迭代次数,x为返回解向量
- n=length(b);
- N=100;
- x0=zeros(n,1);
- x=x0;
- x0=x+2*e;
- k=0;
- d=diag(diag(a));
- l=-tril(a,-1);
- u=-triu(a,1);
- while norm(x0-x,inf)>e&&k<N
- k=k+1;
- x0=x;
- x=inv(d)*(l+u)*x+inv(d)*b;
- end
- if k==N
- warning('已达最大迭代次数');
- end
- disp(k)
测试结果:
- function x = agui_GS(a,b,e)
- %高斯-赛德尔迭代法
- % a为系数矩阵,b为右端向量,x0为初始向量(默认为零向量)
- % e为精度,N为最大迭代次数,x为返回解向量
- n=length(b);
- N=100;
- x0=zeros(n,1);
- x=x0;
- x0=x+2*e;
- k=0;
- a1=tril(a);
- a2=inv(a1);
- while norm(x0-x,inf)>e&&k<N
- k=k+1;
- x0=x;
- x=-a2*(a-a1)*x0+a2*b;
- % format long
- end
- if k==N
- warning('已达最大迭代次数');
- end
- k
测试结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。