当前位置:
文档之家› 数值分析6-用SOR方法求解线性方程组
数值分析6-用SOR方法求解线性方程组
程序 clear;clc; A=[4,3,0;3,4,-1;0,-1,4]; b=[24,30,-24]'; N=length(b); %解向量的维数 fprintf('库函数计算结果:'); x=inv(A)*b %库函数计算结果 x=[1;1;1];%迭代初始值 %-----(A=D-E-F)-----D=diag(diag(A)); E=-tril(A,-1);%下三角 F=-triu(A,1);%上三角 w=1.5; %松弛因子,一般 0<w<2 B=inv(D-w*E)*[(1-w)*D+w*F];g=w*inv(D-w*E)*b; eps=1e-8;%相邻解的距离小于该数时,结束迭代 %--------开始迭代------for k=1:100 %最大迭代次数为 100 fprintf('第%d 次迭代:',k); y=B*x+g; if abs(x-y)<eps break; end x=y end x
程序结果
当比较松弛因Biblioteka 取 1.0 时当比较松弛因子取 1.25 时
当比较松弛因子取 1.5 时
作业七:编写用 SOR 方法求解线性方程组 Ax=B 的标准程序,并求下 列方程组的解, 并比较松弛因子取 1.0、 1.25、 1.5 时所需迭代的次数。 可取初始向量 X(0) =(1,1,1)’;迭代终止条件||x(k+1)-x(k)||<=10e-8
4 30 ������1 24 3 4 − 1 x2 = 30 0 − 14 x3 −24