《高斯赛德尔迭代法matlab编程》由会员分享,可在线阅读,更多相关《高斯赛德尔迭代法matlab编程(2页珍藏版)》请在金锄头文库上搜索。
functionx,k=GaussSeidel(A,b,x0,eps,M)%高斯赛德尔迭代法求方程组的解(矩阵公式求解)%A为方程组的系数矩阵;b为方程组的右端项%x为线性方程组的解了; x0为迭代初值%eps为误差限;M为迭代的最大次数if nargin=3eps= 1.0e-6;%默认精度M = 10000;%参数不足时默认后两个条件elseif nargin =4M = 10000;%参数的默认值elseif nargin=1error(迭代矩阵谱半径大于1迭代法不收敛); return;endk=0;tol=1;while tol=epsx = B*x0+g;k = k+1;%迭代步数tol = norm(x-xO);%前后两步迭代结果的误差x0 = x;if(k=M)disp(Warning: 迭代次数太多,可能不收敛!); return;endend