資源簡介
本人做課程設計時寫的逐次超松弛迭代(matlab實現).
代碼片段和文件信息
function?sor=f(Able);%A和b分別為方程Ax=b中的Abl為最大迭代次數,e為精度。
int?i?g?d?;
int?k;
double?w?m;%
D=[];L=[];U=[];E=[];I=[1?0?0?0?0;0?1?0?0?0;0?0?1?0?0;0?0?0?1?0;0?0?0?0?1];
for?i=1:1:5
for?g=1:1:5
if?i==g
D(ig)=A(ig);
else?D(ig)=0;
end
if?i>g
L(ig)=-A(ig);
else?L(ig)=0;
end
if?i U(ig)=-A(ig);
else?U(ig)=0;
end
end
end??%DLU分裂
for?w=0:0.05:2
k=1;
B=inv(I-w.*inv(D)*L)*((1-w).*I+w.*inv(D)*U);
C=inv(I-w.*inv(D)*L
評論
共有 條評論