Matlab Programm < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 12:35 So 14.11.2004 | Autor: | Nilez |
Hallo!
Ich soll folgenden Algorithmus in Matlab implementieren.
Hier die Aufgabenstellung:
Rekursives Matrizenprodukt:
Gegeben sei eine m x k-Matrix A und eine k x n-Matrix B. Das Produkt C := AB
(eine m x n-Matrix) erhält man in Matlab sehr einfach. In diesem Beispiel soll eine alternative Berechnungsweise für das Matrizenprodukt
implementiert werden. Man denkt sich A in Böcke partitioniert:
A = A11 A12
A21 A22
Die Untermatrizen Aij bestehen aus m/2 Zeilen und k/2 Spalten oder (m+ (-)1)/2 Zeilen und (k + (-) 1)/2 Spalten, je nachdem ob m bzw. k gerade oder ungerade ist. Analog partitioniert man B und auch das Matrizenprodukt C. Dann berechnet man C Block für Block, d.h.
C11 = A11B11 + A12B21; C12 = : : :
Diese Idee soll rekursiv angewendet werden, d.h. die einzelnen Blöcke werde wieder zerlegt usw. Man entwickle eine rekursive Funktion, die diese Methode realisiert.
Die gegebenen Dimensionen m, k und n sind beliebig. Die Rekursion wird abgebrochen, wenn bei der Unterteilung eine der Dimensionen gleich 1 wird und der Rekursionsanfang erreicht ist. Hier
arbeitet man mit der gewöhnlichen Multiplikation.
Programmiertechnische Spezifikationen:
Programmtyp: Matlab-Funktion
Ein- und Ausgangsparameter: zu überlegen.
Meine Fragen:
Wie lässt sich das durch eine rekursive Funktion realisieren?
In der Angabe wird verlangt C anfangs ebenfalls zu partitionieren (2. Absatz).
Ist das für die Berechnung überhaupt von Nutzen? C soll ja mit Untermatrizen von A, und B ermittelt werden? Was würde dann die im Vorfeld durchgeführte Viertelteilung von C für Sinn machen?
Im 3. Absatz liest man, die Rekursion wird abgebrochen, wenn eine der Dimensionen bei einer Teilung gleich eins wird und der Rekursionsanfang erreicht ist.
Würde die Vereinigung der bis dahin berechneten Untermatrizen von C schon das tatsächliche Matrizenprodukt ergeben?
Was ist mein Rekursionsanfang? (die Anfangsbedingung für meine Funktion?, also Dimensionen, welche bei Teilung >1 wären)
Es soll dann mit der gewöhnlichen Multiplikation weitergerechnet werden.
Was ist mit gewöhnlich gemeint; werden Matrizen, welche zu kleine Dimension besitzen, mit A*B berechnet?
Ich würde mich über Anregungen und Hilfe wirklich sehr freuen!
Vielen Dank im Vorhinein, herzliche Grüße,
Nilez
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 17:40 So 14.11.2004 | Autor: | Nilez |
Mir wäre schon unheimlich geholfen, wenn man mir bez. des Algorithmus was mittteilen könnte. Bitte helft mir doch!
Herzlichen Gruß, Nilez
|
|
|
|
|
Hallo Nilez,
es tut mir leid, aber bislang wurde noch niemand auf deine Frage aktiv - wohl weil Matlab hier weniger bekannt ist?
Vielleicht stellst du deine Frage mal bei Matheplanet? Da scheint es Leute zu geben, die mit matlab arbeiten.
|
|
|
|