作者YamadaRyo (亚嘛搭六)
看板MATLAB
标题[问题] 加快迭代的w位置
时间Tue Oct 22 03:36:54 2013
A=[-4 1 1 1;1 -4 1 1;1 1 -4 1;1 1 1 -4];
B=[1;1;1;1];
x(1)=0;
x(2)=0;
x(3)=0;
x(4)=0;
for i=1:1:4
B(i)=B(i)/A(i,i);
for j=1:1:4
if i~=j
A(i,j)=A(i,j)/A(i,i);
end
end
end
for k=1:60
if abs((x(1)+1)/-1)>10^(-5)
for i=1:4
x(i)=B(i);
for j=1:4
if j~=i
x(i)=x(i)-(A(i,j)*x(j));
end
end
fprintf('%f ',x(i));
end
fprintf('\n');
else
break
end
end
fprintf('%f',k);
这是用Gauss Seidel的方法写的
然後再来有加快迭代的方法
课本里面的范例就是用这个矩阵
w=1时 迭代次数跟课本一样
可是只要大於1就整个发散了...
x(i)=x(i)-w*(A(i,j)*x(j));
请问我w加在这里有什麽问题呢?
已经卡了好久了......
麻烦解惑 谢谢!!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.254.168
1F:→ ejialan:你加速迭代应该是用SOR 那整理完是长这样没错 10/22 10:32
2F:→ ejialan:我试了一下w=1.0001迭代次数有变少 不过收敛条件只看x(1) 10/22 10:34
3F:→ ejialan:有点怪怪的 10/22 10:34