Matrixmultiplikation
Nina2
- sonstiges
Hi,
was ist die effizienteste Methode, mehrere Matrizen der Reihe nach miteinander zu multiplizieren?
Dafür gab es eine hilfreiche Faustregel, die in etwa besagt, dass man zuerst die Matrix mit geringer Breite mit der Matrix mit geringer Höhe multiplizieren soll o.ä. um sich dadurch einige Rechenschritte zu sparen.
Wie lautet die "Regel" richtig?
Danke,
Nina
Hi
Wie lautet die "Regel" richtig?
keine Ahnung, das Thema heißt aber "Matrizenmultiplikation"!
SCNR
LanX
Hi,
was ist die effizienteste Methode, mehrere Matrizen der Reihe nach miteinander zu multiplizieren?
IMHO den Computer anschmeißen und ihn rechnen lassen? Dem ist es i.d.R. egal, ob irgendwo ein Rechenschritt gespart wird ... ;-)
Gruß, Cy-"SCNR"-baer
@@Cybaer:
IMHO den Computer anschmeißen und ihn rechnen lassen? Dem ist es i.d.R. egal, ob irgendwo ein Rechenschritt gespart wird ... ;-)
Du hast noch nie was mit Echtzeit-3D-Grafik zu tun gehabt?
Live long and prosper,
Gunnar
Hi,
Du hast noch nie was mit Echtzeit-3D-Grafik zu tun gehabt?
Als Programmierer vermutlich? Nein. Ich bevorzuge seit je her vorberechnete 3D-Grafik! :)
CPUs sind IMHO prinzipiell nicht schnell genug (waren nicht, sind nicht, werden nicht sein ;->). Und mit GPU/Shader-Programming kenne ich mich nicht aus.
Gruß, Cybaer
Ich würde vorschlagen die Multiplikationen so zu ordnen, dass die Anzahl der Spalten mal Anzahl der Zeilen des Resultates möglichst immer kleiner wird.
Bei Ketten von Multiplikationen quadratischer Matrizen ist das natürlich kein Unterscheidungskriterium. Es kann dann ferner sinnvoll sein, die Multiplikationen so zu ordnen, dass die Anzahl von 0 Einträgen im Resultat möglichst immer größer wird.
Ich behaupte aber, dass diese Erwägungen nur dann interessant sind, wenn man entweder mit sehr großen (>= 10000 Einträge) oder mit sehr vielen Matrizen hantiert.