ZKX's LAB

sor迭代松弛系数 什么是SOR?

2020-07-20知识9

sor迭代算法的matlab程序 function[x k]=EqtsSOR(A,b,x0,omiga,eps)%超松弛(SOR,Successive Over-Relaxation)迭代法求解线性方程组Ax=b%[x k]=EqtsSOR(A,b,x0,eps)%x:解向量,列向量%k:迭代次数%A。什么是SOR? SOR是英文Standard Operation Records的缩写,它的中文含意是记录、凭证类文件。SOR包括了:⑴物料管理记录;⑵生产操作记录;⑶质量检验与管理记录;⑷设备运行与管理记录。关于数值分析超松弛(SOR)法的公式问题 因为 A=D-L-U,所以 L,U 里面的元素相当于 A 里元素加负号,即相当于-A 里的元素。用Matlab写的雅各比i和高斯塞德尔以及SOR迭代法 1.用雅克比迭代法和高斯-赛德尔迭代法求解下列方程组,取迭代初值[0;0;0]。(1)编程求解,并与用数学软件求解的结果对比。(2)考察迭代法的收敛性,若均收敛,对比两种方法的收敛速度。解:源程序:①雅克比迭代法:建立函数文件jacobi.mfunction[n,x]=jacobi(A,b,X,nm,w)用雅克比迭代法求解方程组Ax=b输入:A为方程组的系数矩阵,b为方程组右端的列向量,X为迭代初值构成的列向量,nm为最大迭代次数,w为误差精度输出:x为求得的方程组的解构成的列向量,n为迭代次数n=1;m=length(A);D=diag(diag(A));令A=D-L-U,计算矩阵DL=tril(-A)+D;令A=D-L-U,计算矩阵LU=triu(-A)+D;令A=D-L-U,计算矩阵UM=inv(D)*(L+U);计算迭代矩阵g=inv(D)*b;计算迭代格式中的常数项下面是迭代过程while nx=M*X+g;用迭代格式进行迭代if norm(x-X,2)disp('迭代次数为');ndisp('方程组的解为');xreturn;上面:达到精度要求就结束程序,输出迭代次数和方程组的解endX=x;n=n+1;end下面:如果达到最大迭代次数仍不收敛,输出警告语句及迭代的最终结果(并不是方程组的解)disp('在最大迭代次数内不收敛。');disp('最大迭代次数后的结果为');x②高斯赛德尔迭代法:建立函数文件。

#矩阵管理#矩阵分解#迭代计算#迭代法#雅克比迭代法

随机阅读

qrcode
访问手机版