function jacobi(A::SparseMatrixCSC,b::Vector;tol::Real=1e-2,maxIter::Int=1,out::Int=0,storeInterm::Bool=false;) n = length(b) OmInvD = 1./diag(A) #D矩阵 并乘以omega x = zeros(eltype(A),n) r = copy(b) rnorm0 = norm(b) res = 0 value = 0.0 flag = -1 iter = 0 dx = 0 for iter = 1:maxIter println(iter) dr = zeros(eltype(A),n) for j = 1:n dx = r[j] * OmInvD[j] x[j] += dx for gidx = A.colptr[j] : A.colptr[j+1]-1 dr[A.rowval[gidx]] -= A.nzval[gidx] * dx end end r += dr res = norm(r) / rnorm0 println(res) if res < tol flag = 0; break end end return x,flag,iter end