[問題] 加快迭代的w位置
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
→
10/22 10:32, , 1F
10/22 10:32, 1F
→
10/22 10:34, , 2F
10/22 10:34, 2F
→
10/22 10:34, , 3F
10/22 10:34, 3F