Octave で SOR アルゴリズムを実行する学校のプロジェクトがありますが、非常に非効率的です。だから私はこのコードスニペットを持っています:
for ii=1:n
r = 1/A(ii,ii);
for jj=1:n
if (ii!=jj)
A(ii,jj) = A(ii,jj)*r;
end;
end;
b(ii,1) = b(ii,1)*r;
x(ii,1) = b(ii,1);
end;
これをベクトル化するにはどうすればよいですか?私の最初の試みはこれでした:
for ii=1:n
r = 1/A(ii,ii);
A(find(eye(length(A))!=1)) = A(find(eye(length(A))!=1))*r;
b(ii,1) = b(ii,1)*r;
x(ii,1) = b(ii,1);
end;
しかし、それがあまり役に立ったかどうかはわかりません。それを行うためのより良いおよび/またはより効率的な方法はありますか?
ありがとう!