- 1、本文档共1页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Matlab 数值分析SOR逐次超松弛迭代法
%* SOR(SuccesiveOver-Relaxation)逐次超松弛迭代法求解线性方程组-------
%* 输入方程组、预处理-------------------------------------------------------
A=[4,-1,0;-1,4,-1;0,-1,4];
b=[1;4;-3];
x1=[0;0;0];
w=0.8; %松弛因子
eps=1e-4; % 精度要求
max=1000; % 最大迭代次数,一般不改动
%* 开始迭代求解------------------------------------------------------------
n=length(A); % 系数矩阵A的维数
k=0;
while 1
x=x1; %保存每次的x1,用于判定精度
%* 先计算X1(1),与Jacobi迭代法计算一致
x1(1)=(1-w)*x1(1)+w*(b(1)-A(1,2:n)*x1(2:n,1) )/A(1,1);
%* 再计算X1(i),i=2,3,...,n-1
for i=2:n-1
x1(i)=(1-w)*x1(i)+w*(b(i)-A(i,1:i-1)*x1(1:i-1,1)-A(i,i+1:n)*x1(i+1:n,1) )/A(i,i);
end
%* 最后计算X1(n)
x1(n)=(1-w)*x1(n)+w*(b(n)-A(n,1:n-1)*x1(1:n-1,1) )/A(n,n);
k=k+1;
%* 计算前后迭代解X1的误差
if sum( abs(x1-x) )eps
fprintf(迭代次数=%d\n,k);
break;
end
%* 当迭代次数超过给定最大迭代次数时,迭代不收敛
if k=max
fprintf(迭代法不收敛\n);
break;
end
%* 未达到给定精度要求则继续迭代
end
%* 输出迭代求解------------------------------------------------------------
if kmax
for i=1:n
fprintf(x[%d]=%f\n,i,x1(i));
end
end
文档评论(0)