2016-04-07 6 views
0

ich meinen CodeWie Iteration von gauss Siedel Methode in Matlab berechnen

alpha=1; 
A=zeros(30,30); 
A(1,1)=-(2+alpha); 
A(1,2)=1; 

for i=2:29 
    A(i,i-1)=1; 
    A(i,i)=-(2+alpha); 
    A(i,i+1)=1; 
end 

A(30,29)=1; 
A(30,30)=-(2+alpha); 

D=diag(diag(A)); 
R=A-D; 
x=zeros(30,1); 
list=[]; 
count=0; 

for k=1:150 
    xkk= inv(L)*(b-(U*x)); 
    count=count+1; 
    list(count,:)=xk; 
    if(norm(xkk-x)<=10^-5) 
     break; 
    end 
    x=xkk; 
end 

count 

i'the Anzahl der Iteration von gauss Siedel Methode in Matlab

hier berechnet werden soll, wenn ich es lief ich habe cound=150 so scheint es, dass die Zählung funktioniert nicht gut Wie man es korrigieren? Dank

Antwort

0

Ändern Sie den letzten Teil wie folgt aus:

xkk= inv(L)*(b-(U*x)); 
e=norm(xkk-x); 
while(e>10^-5) 
    xkk= inv(L)*(b-(U*x)); 
    count=count+1; 
    list(count,:)=xk; 
    e=norm(xkk-x) 
    x=xkk; 
end 
Verwandte Themen