2016-11-21 4 views
-3

Es ist Teil der Gauss-Seidel-Iterationsmethode, um Matrizen zu lösen, aber ich bin mir nicht sicher, was dieser Teil des Codes tut. Eine Matrix 'A' ist vordefiniert.Matrix Iterating: Welche Funktion hat dieser Code?

[columns,rows] = size(A); 
L = zeros(size(A)); 
U = zeros(size(A)); 

for i = 1:columns 
for j = 1:i 
    L(i,j) = A(i,j); 
end 
for j = i+1:columns 
    U(i,j) = A(i,j); 
end 
end 

Antwort

1

Diese Funktion findet einfach die lower and upper triangular portions der Matrix. Sie erhalten diesen "undefinierten" Fehler, weil Sie A noch nicht definiert haben. A definiert, dann den Code ausführen:

A = rand(6,6); % For example 
% Rest of your code goes here.... 

LU und werden die l ower enthalten und u pper Teile der Matrix A.

Minor Hinweis: Sie verwenden size falsch. Der erste Ausgabeparameter sind die Zeilen, während der zweite Ausgabeparameter die Spalten ist. Tauschen Sie die Variablen:

[rows, columns] = size(A); 
+0

Danke. Wie genau enthält, sagen wir, L den unteren Teil der Matrix? – Monty

+0

@Monty 'L' durchläuft alle Zeilen, erfasst aber nur von der ersten Spalte bis zum Diagonalelement. "U" macht dasselbe, aber für die Spalte gehen wir vom diagonalen Element zur letzten Spalte. Sie können es im Code sehen. Übrigens, wenn Ihnen das geholfen hat, sollten Sie diese Antwort akzeptieren, damit jeder weiß, dass Sie zu diesem Thema nicht mehr Hilfe brauchen. Viel Glück! – rayryeng