这是我第一次来这里,所以我希望有人可以帮助我。 我尝试使用存储CSR或称为莫尔斯存储的矩阵来实现Gauss-Seidel方法和电源方法。不幸的是,我无法做到比以下代码做得更好:
GS-MORSE:
function [y] = gs_morse(aa, diag, col, row, nmax, tol)
[n, n] = size(A);
y = [1, 1, 1, 1];
m = 1;
while m < nmax,
for i = 1: n,
k1 = row(i);
k2 = row(i + 1) - 1;
for k = k1: k2,
y(i) = y(i) + aa(k) * x(col(k));
y(col(k)) = y(col(k)) + aa(k) * diag(i);
end
k2 = k2 + 1;
y(i) = y(i) + aa(k) * diag(i);
end
if (norm(y - x)) < tol
disp(y);
end
m = m + 1;
for i = 1: n,
x(i) = y(i);
end
end
POWER-MORSE: 我只能实现幂方法,但我不明白如何使用前一个矩阵...所以我的幂方法代码是:
function [y, l] = potencia_iterada(A, v)
numiter=100;
eps=1e-10;
x = v(:);
y = x/norm(x);
l = 0;
for k = 1: numiter,
x = A * y;
y = x / norm(x);
l0 = x.' * y;
if abs(l0) < eps
return
end
l = l0;
end
请有人帮我完成这些代码或者可以解释我该怎么做?我真的不明白该怎么做。非常感谢你