Jacobi/Gauss-Seidel Verfahren

Neue Frage »

jagerson Auf diesen Beitrag antworten »
Jacobi/Gauss-Seidel Verfahren
Meine Frage:
Hallo, ich muss für die FH einen Vortrag über das Jacobi und das Gauss-Seidel Verfahren vorbereiten. Jetzt hab ich im Netz die angehängte pdf gefunden und würde die beiden matlab-Programme gerne verwenden, da unter anderem diese Teil der Aufgabenstellung sind. Da ich mit matlab und der Informatik allgemein leider etwas auf Kriegsfuss stehe, ist es mir aber bis jetzt nicht gelungen sie zum Laufen zu bringen. Daher würde ich gerne wissen wo mein Fehler liegt.

Meine Ideen:
Habe versucht das gegebene Beispiel für das Jacobi-Verfahren zu berechnen.
Als erstes habe ich die Variablen für das Beispiel eingegeben:

A=[10 -4 2; -4 10 -4; -6 -2 12]
b=[2;3;1]
xold=[0;0;0]
N=3
nmax=3

Dann das Programm in command window kopiert, funktioniert so aber leider nicht
tigerbine Auf diesen Beitrag antworten »
RE: Jacobi/Gauss-Seidel Verfahren
Was klappt denn nicht? Wie lautet die Fehlermeldung? Du hast dir ein entsprechendes m-file erstellt?


code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
jac([10,-4,-2;-4,10,-4;-6,-2,12],[2;3;1],3,[0;0;0],3)
x =
    0.4120
    0.5280
    0.3206
ans =
    0.4120
    0.5280
    0.3206


code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
% jac.m
% ----------------------------
% Jacobi-Verfahren
% ----------------------------
% Eingabe: RegulÄare Matrix A,
% rechte Seite b,
% Startvektor xold,
% N: Dimension von b,
% nmax: Anzahl an
% Iterationen.
% Ausgabe: NÄaherung x.
% ----------------------------
function[x] = jac(A,b,N,xold,nmax)
for n = 1:nmax
for i = 1:N
x(i) = (b(i) - A(i,1:i-1)*xold(1:i-1)- A(i,i+1:N)*xold(i+1:N))/A(i,i);
end
for i = 1:N
xold(i) = x(i);
end
end
x = x'


code:
1:
2:
3:
4:
5:
gs([10,-4,-2;-4,10,-4;-6,-2,12],[2;3;1],3,[0;0;0],3)
ans =
    0.4991
    0.6505
    0.4413


code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
% ----------------------------
% Gauss-Seidel-Verfahren
% ----------------------------
% Eingabe: RegulÄare Matrix A,
% rechte Seite b,
% Startvektor x,
% N: Dimension von b,
% nmax: Anzahl an
% Iterationen.
% Ausgabe: Startvektor x wird
% mit NÄaherung
% Äuberschrieben.
% ----------------------------
function[x] = gs(A,b,N,x,nmax)
for n = 1:nmax
for i = 1:N
x(i) = (b(i) - A(i,1:i-1)*x(1:i-1)- A(i,i+1:N)*x(i+1:N))/A(i,i);
end
end
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »