Diskussion:Matrizenmultiplikation

aus Wikipedia, der freien Enzyklopädie
Letzter Kommentar: vor 6 Monaten von Fritzudo in Abschnitt Programmierung
Zur Navigation springen Zur Suche springen

Lob und kleine Idee

[Quelltext bearbeiten]

Sehr schön geworden! Besonders didaktisch ist das toll gemacht, auch mit den Abbildungen und Beispielen, da werden sich viele Schüler und Studenten freuen. Bei den Anwendungen könnte noch angeführt werden, das Zeilen- und Spaltenumformungen durch Multiplikation mit Elementarmatrizen beschrieben werden können. -- HilberTraum (Diskussion) 09:10, 18. Aug. 2013 (CEST)Beantworten

Danke für das Lob! Ich war ziemlich erstaunt, dass uns ein Artikel zu einem so elementaren Thema noch fehlte und da dachte ich mir schreib ihn gleich vernünftig. Die Sache mit den Elementarmatrizen hatte ich in einer früheren Artikelversion schon drin, habe sie aber irgendwann wieder rausgeworfen und nun wieder rein. Wie weit man mit den Anwendungen geht, weiß ich noch nicht so recht. Es fehlen an sich auch noch Ähnlichkeit und Orthogonalität von Matrizen, man könnte was zur Umwandlung DGLs höherer Ordnung in Systeme erster Ordnung schreiben, in der Ökonomie gäbe es z.B. noch die Input-Output-Analyse usw. Auch die Determinanten kommen meiner Meinung nach noch etwas zu früh im Artikel, da weiß ich noch nicht so recht, ob und wie ich sie besser bei den algebraischen Strukturen unterbringe. Viele Grüße, --Quartl (Diskussion) 11:50, 18. Aug. 2013 (CEST)Beantworten
Ganz heiße Kandidaten wären auch noch die Kettenregel und Übergangsmatrizen bei Markow-Ketten. Ich fände es eigentlich schon gut und interessant, wenn man die wichtigsten Anwendungen alle zumindest kurz erwähnt. Ob die Elementarmatrizen allerdings momentan an der richigen Stelle stehen, weiß ich nicht: Dabei denkt man doch eigentlich nicht so sehr an die Hintereinanderausführung von Abbildungen. -- HilberTraum (Diskussion) 12:39, 18. Aug. 2013 (CEST)Beantworten
Hm, letztendlich passiert aber genau das. Lass uns die Anwendungen einfach mal relativ knapp beschrieben ergänzen, später kann man immer noch umstrukturieren. Viele Grüße, --Quartl (Diskussion) 14:18, 18. Aug. 2013 (CEST)Beantworten
An sich sollten die Anwendungen, die lediglich auf einer Potenzierung einer Matrix basieren, in den Artikel Matrixpotenz. Dazu gehören der Min-Plus-Algorithmus, die Übergangsmatrizen und der Satz von Cayley-Hamilton. Viele Grüße, --Quartl (Diskussion) 15:18, 18. Aug. 2013 (CEST)Beantworten
Stimmt, an Matrixpotenz habe ich gar nicht gedacht. Markow-Ketten gibt es zwar auch inhomogen mit zeitabhängigen Übergangsmatrizen, aber ich weiß nicht, ob die so wichtig sind. Eher nicht. Eine schöne kleine Anwendung wäre auch noch die Zweitortheorie. -- HilberTraum (Diskussion) 18:15, 18. Aug. 2013 (CEST)Beantworten
Jetzt sind es schon viele kleine Ideen geworden ;-). Ich schaue mal, was sich machen lässt. Viele Grüße, --Quartl (Diskussion) 18:58, 18. Aug. 2013 (CEST)Beantworten

Algorithmen

[Quelltext bearbeiten]

Hallo,

mir wurde an der Universität beigebracht, dass es eine Todsünde sei, in seinem Programm Matrizen mit dem Standardalgorithmus zu multiplizieren. Dies würde viel zu viel Rechenleistung benötigen und man solle im Einzelfall prüfen, wie man diese Operation rechenleistungsparend umsetzen könne. Haltet Ihr es für sinnvoll den Algorithmus hier zu präsentieren? Sollte man eventuell deutlicher darauf hinweisen, dass dieser Algorithmus zu viel Rechenleistung benötigt? Grüße--Christian1985 (Disk) 14:53, 20. Aug. 2013 (CEST)Beantworten

Das kommt drauf an. Zwei 1000 × 1000 Matrizen miteinander zu multiplizieren ist sicherlich keine gute Idee, aber 4 × 4 Matrizen werden in jedem 3D-Computerspiel pro Sekunde x-mal miteinander multipliziert (das ist gerade eine Aufgabe der Grafikhardware). Was du wahrscheinlich gelernt hast ist folgendes: zur Berechnung von sollte man niemals klammern, sondern immer rechnen. Die erste Klammerung macht nur dann Sinn, wenn man das Produkt ganz oft für gleichbleibende Matrizen und unterschiedliche Vektoren berechnen muss.
In jedem Fall ist der vorgestellte Algorithmus ein Standardverfahren, das sich in jedem Buch zur numerischen linearen Algebra findet. Die Autoren zerbrechen sich zum Teil den Kopf darüber, in welcher der sechs möglichen Reihenfolgen man die drei For-Schleifen anordnen sollte, damit das Verfahren unter Ausnutzung von Cache-Effekten möglichst schnell läuft. Den Algorithmus aufzuschreiben ist auch eine beliebte Klausuraufgabe für Numerikvorlesungen ;-). Viele Grüße, --Quartl (Diskussion) 15:22, 20. Aug. 2013 (CEST)Beantworten
In meiner Numerikvorlesung sollten wir immer so tun, als würden wir mit riesigen Matrizen rechnen, auch wenn wir unsere Algorithmen nur an 3x3-Matrizen getestet haben. Wohl aus diesem Grund wurde bei uns mehrfach eindringlich darauf hingewiesen, dass wir Matrizen nicht miteinander multiplizieren dürfen.--Christian1985 (Disk) 15:31, 20. Aug. 2013 (CEST)Beantworten
Hilft nur nichts, was soll man denn sonst tun, wenn man berechnen muss? Wie gesagt, das einzige was man aus numerischer Sicht nicht machen „darf“ ist ein Matrizenprodukt auszurechnen, wenn man das Ergebnis lediglich auf einen Vektor anwenden möchte. Ich vermute ganz stark, dass es das war, was der Dozent euch einbläuen wollte. Viele Grüße, --Quartl (Diskussion) 15:39, 20. Aug. 2013 (CEST)Beantworten
Im englischen Artikel en:Strassen algorithm steht ein bisschen was dazu (am Ende vom Abschnitt "Algorithm"). -- HilberTraum (Diskussion) 16:04, 20. Aug. 2013 (CEST)Beantworten

Formulierungen

[Quelltext bearbeiten]

Hallo, der Artikel ist sehr schön und anschaulich geworden - vielen Dank! Ich fände es noch gut, die "Man-Formulierungen" durch "neutralere" zu ersetzen, und habe schon mal damit angefangen. Das klingt sonst irgendwie (nicht negativ verstehen, bitte) nach einem "Man-Nehme-Kuchenrezept". OK? Grüße, --Marianne 09:06, 5. Sep. 2013 (CEST)Beantworten

Kein Problem, verbessere die Formulierungen einfach so wie du es am besten findest, im Zweifelsfall gehe ich dann auch nochmal drüber. Vielen Dank für's Korrekturlesen, --Quartl (Diskussion) 09:20, 5. Sep. 2013 (CEST)Beantworten

Ring oder Halbring

[Quelltext bearbeiten]

Ich habe die Halbringe nun in einen eigenen Abschnitt Verallgemeinerungen gestellt. Ich sehe ein, dass vom algebraischen Standpunkt Halbringe ausreichen, aber für den unbedarfteren Leser sind Ringe einfach etwas verständlicher. Auch in der Literatur wird fast ausschließlich der Ring der Matrizen über einem Ring und nicht der Halbring der Matrizen über einem Halbring betrachtet. Viele Grüße, --Quartl (Diskussion) 10:07, 6. Sep. 2013 (CEST)Beantworten

Frage zur Anwendung

[Quelltext bearbeiten]

Hallo, ich frage mich gerade, ob bei der Input-Output-Analyse nicht nur eine Matrix-Vektor-Multiplikation vorliegt statt Matrix-Matrix? Oder lässt sich das hier einfach mit einbeziehen? Grüße, --Marianne 10:53, 6. Sep. 2013 (CEST)Beantworten

Hat sich eigentlich schon von selbst geklärt ;) --Marianne 11:17, 6. Sep. 2013 (CEST)Beantworten
Bei der Input-Output-Analyse braucht man die Matrizenmultiplikation z.B. wenn man eine Matrix mit der Anzahl der Bauteile pro Komponente und eine Matrix mit der Anzahl der Komponenten pro Produkt hat und man dann am Ende die Anzahl der Bauteile pro Produkt ausrechnen möchte. Die Anwendung mit der Leslie-Matrix gehört eigentlich in den Artikel Matrixpotenz, siehe dazu auch den obersten Diskussionsabschnitt. Alternativ könnte man auch in Matrix-Vektor-Produkt einen Abschnitt Anwendungen aufmachen, damit in diesem Artikel tatsächlich nur Anwendungen mit Matrix-Matrix-Produkten aufscheinen. Viele Grüße, --Quartl (Diskussion) 11:37, 6. Sep. 2013 (CEST)Beantworten
Jetzt ist das noch klarer für mich. Danke dir + Grüße aus Gö, --Marianne 12:18, 6. Sep. 2013 (CEST)Beantworten

Abbildung mittels Zeilenvektoren

[Quelltext bearbeiten]

Hallo, ich habe, bevor ich mich mathematisch mit Matrizen beschäftig habe, bereits in der Programmierung, zum Beispiel mit DirectX, mit Matrizen zu tun gehabt. Dort erfolgt eine Lineare Abbildung von Vektoren mittels Matrizen genau umgekehrt, also der Vektor wird mit der Matrix multipliziert. Das geht, solange man mittels Zeilenvektoren abbildet, also den Vektor transponiert und mit der ebenfalls transponierten Matrix multipliziert. Das kann durchaus verwirren, da bei mathematischen Betrachtungen in der Regel nicht auf dieses Phänomen hingewiesen wird. Ich habe das deswegen im Abschnitt "Komposition linearer Abbildungen" mal angemerkt. --MitjaStachowiak (Diskussion) 13:57, 10. Sep. 2013 (CEST)Beantworten

Danke für den Input, ich habe deinen Beitrag etwas kürzer formuliert. Die Sache mit der Vektor-Matrix-Multiplikation findet sich bereits im Abschnitt Matrizenmultiplikation#Matrix mal Vektor und die Transpositionsformel unter Matrizenmultiplikation#Weitere Rechenregeln. Grüße, --Quartl (Diskussion) 15:46, 10. Sep. 2013 (CEST)Beantworten
Ah, den Teil bei "Matrix mal Vektor" habe ich nicht gesehen. Wie gesagt: In einfach allem, was ich bisher über Matrizen gelesen oder gehört habe (Außer es war extra zu dieser Formel) wurde entweder die eine oder die andere Konvention benutzt, ohne dies näher zu erwähnen. Deswegen hielt ich es für angemessen, darauf noch einmal einzugehen.--78.51.98.199 12:35, 11. Sep. 2013 (CEST)Beantworten
Ist alles absolut legitim. Ich versuche nur darauf zu achten, dass der Artikel nicht zerfasert. Grüße, --Quartl (Diskussion) 15:10, 11. Sep. 2013 (CEST)Beantworten

Matrix mal Vektor

[Quelltext bearbeiten]

Im Abschnitt 'Matrix mal Vektor' wird das Produkt Matrix mal Spaltenvektor vorgeführt, was aber nur ein Spezialfall von Matrix mal Matrix ist. Also nichts neues. Es sollte eigentlich handeln von Matrix mal Vektor, was zwar ziemlich ähnlich ausschaut wie Matrix mal Spaltenvektor, aber prinzipiell etwas anderes ist. Madyno (Diskussion) 23:35, 3. Sep. 2020 (CEST)Beantworten

Programmierung

[Quelltext bearbeiten]

Betrifft: Löschung meiner kurzen, prägnanten Ergänzung des Kapitels Programmierung:

"Die 9 letzten Textänderungen von Fritzudo und Invisigoth67 wurden verworfen und die Version 244904995 von Mathze wiederhergestellt. Diesen Spezialfall dermaßen prominent in diesen kurzen allgemeinen Abschnitt zur Programmierung einzubauen, ist enzyklopädisch nicht sachgerecht und sieht nach Literaturspam für das eigene Buch des Autors aus. Bitte zuerst Zustimmung auf der Disk einholen."

Antwort:

Lieber Mathze, da hast Du aber impulsiv zugelangt. Ich möchte Dich darauf aufmerksam machen, dass die Objektorientierte Modellierung und Programmierung bezogen auf das Problem kein Spezialfall ist, sondern vielmehr eine Verallgemeinerung zu der von Dir vorgestellten traditionellen "Tabellenkalkulation von Matrizen" darstellt. Mit dem zitierten Konzept ist es nämlich möglich, in modernen Computeralgorithmen mehrdimensionale Matrizen und Tensoren in Klassen zu fassen, arithmetisch zu verarbeiten und die Standardoperatoren, die Du ausführlich darstellst, durch entsprechende Klassenmethoden zu verallgemeinern. Ich wollte damit keinerlei Kritik an Deinem Beitrag auslösen, sondern habe stattdessen lediglich nur eine kurze bescheidene Anmerkung zur Vervollständigung Deiner Hinweisen auf bekannte Programmiermethoden ergänzt, die ich wegen der Bedeutung der von Dir unerwähnten Objektorientierung für notwendig halte.

Deinen diffamierenden Vorwurf des "Literaturspam" weise ich mit Entschiedenheit zurück! Vielleicht solltest du noch einmal gründlich die Wiki-Regeln studieren, die da lauten:

Wikipedia:Beteiligen:Wenig oder viel tun -> "Dir fällt in einem Artikel ein Qualitätsmangel auf und du meinst, diesen beheben zu können? Du stolperst über eine inhaltliche Lücke und denkst, sie schließen zu können? Sehr gut! Wir freuen uns über jeden, der versucht, Artikel zu verbessern und zu erweitern. Bitte beachte dabei aber Wikipedia:Belege, denn grundsätzliche Aussagen sollten immer mit Quellen belegt sein."

Der Quellennachweis ist ein wichtiger wissenschaftlicher Grundsatz, den ich eingehalten habe. Falls Du als Experte eine andere Quelle über die Numerik mehrdimensionaler Matrizen und Tensoren mit dem objektorientierten Überladen der Operatoren kennen solltest, darf Du die mir bitte übermitteln.

Zwecks offener Diskussion und Meinungsbildung habe ich mir erlaubt, die kurze Ergänzung des Kapitels nochmals einzustellen.

-- Fritzudo (Diskussion)

-- ME261 13:38, 18. Jun. 2024 (CEST)Beantworten

Betrifft: Erneute Löschung meiner kurzen, prägnanten Ergänzung des Kapitels Programme. "Änderung 246012485 von Fritzudo rückgängig gemacht; erneut zurückgesetzt, mit der gleichen Begründung wie zuvor. Bei nochmaligem Einstellen des eigenen Buches ohne vorgängige (!) ausreichende Zustimmung auf der Disk werde ich den Vorgang administrativ prüfen lassen"

Antwort: Lieber troubled @sset, Du hast Dich bei mir nicht vorgestellt. Daher ich weiß auch nicht wer Du bist und welche Kompetenzen Du Dir anmaßt. Ich möchte Dich darauf hinweisen, daß Du hier in Wikipedia keinerlei Autorenrechte besitzt, und deshalb ist es Dir als Nichtadministrator auch nicht gestattet, meine sachgerechte kurze Ergänzung zum Kapitel Programmierung willkürlich herauszustreichen! Die vorgeschlagnen Disk wurde bereits eröffnet und Du hast es vorgezogen, Dich dort bisher überhaupt nicht zu beteiligen und stattdessen lieber anonym zu agieren. Ich finde dieses Verhalten nicht angemessen und auch ziemlich enttäuschend.

Ich kann deshalb auch gar nicht nachvollziehen, was Dich motiviert, gegen meinen zweizeiligen Hinweis auf die Objektorientierte Modellierung in der weitvertreiteten Prammiersprache C++ mit der Überladung der Standardoperatoren, wie +,-,*,/,<<,>>, etc., in dieser Art und Weise zu opponieren, wo doch bereits vom Autor auf andere Programmiersprachen und kommerzielle Systeme ausdrücklich verwiesen wurde.

Ich möchte Dich bitten, dies in der offenen Diskussion über die Programmierung einmal auf wissenschaftlicher Grundlage verständlich zu erläutern. Bis dahin habe ich mir erlaubt, die gelöschten Zeilen, die auch in gar keiner Weise den inhaltlichen Darstellungen der anderen Autoren widersprechen, wiederherzustellen. -- Fritzudo (Diskussion) (nicht signierter Beitrag von Fritzudo (Diskussion | Beiträge) 14:55, 19. Jun. 2024 (CEST))Beantworten