• 大小: 1019B
    文件类型: .m
    金币: 2
    下载: 1 次
    发布日期: 2021-06-03
  • 语言: Matlab
  • 标签: matlab  

资源简介

matlab预处理共轭梯度法求解线性方程组的函数文件

资源截图

代码片段和文件信息

%预处理共轭梯度法求解线性方程组
function NewX=spcg(AbTimeserrtolmode)
%A  系数矩阵
%b  右边向量
%Times  最大迭代次数
%errtol  误差终止条件
%mode=1时,输入的A和b是复数矩阵
if(mode==1)
    A=[real(A) -imag(A);imag(A) real(A)];
    b=[real(b);imag(b)];
end
n=size(A1);
%[E che]=chol(A);
x=ones(n1);% x的初始值
NewX=zeros(n1);
% 对A进行分解
D=diag(diag(A));
U=D-triu(A);
L=D-tril(A);
w=1;
M=(D-w*L)*inv(D)*(D-w*U)/(w*(2-w));%计算ssor预处理矩阵M
%ssor预处理共轭梯度法
r=b-A*x;
invm=inv(M);
z=invm*r;
p=z;
x0=x-1;

评论

共有 条评论