Übung 9 Hausübung (Matrix)

kechler
Mausschubser
Mausschubser
Beiträge: 46
Registriert: 21. Nov 2004 22:33
Wohnort: Darmstadt

Beitrag von kechler »

Hallo,

also laut Derive kommt für eine Matrix hoch 0 die Einheitsmatrix heraus (=> Elemente auf der Hauptdiagonalen = 1, der Rest = 0)!

Wenn man eine Zahl hoch 0 nimmt, kommt ja auch immer 1, also das neutrale Element der Potenzierung, heraus.

Benutzeravatar
Robert
Ehemalige Fachschaftler
Beiträge: 511
Registriert: 6. Okt 2004 17:38
Wohnort: DA

Beitrag von Robert »

ja, da kommt die einheitsmatrix raus.

das ist glaub ich alles nur so definiert damit die ganzen potenz gesetze weiterhin gelten.

Benutzeravatar
MisterD123
Geek
Geek
Beiträge: 811
Registriert: 31. Okt 2006 20:04
Wohnort: Weiterstadt

Beitrag von MisterD123 »

einheitsmatrix wohl?

Benutzeravatar
Anne
Mausschubser
Mausschubser
Beiträge: 74
Registriert: 2. Jan 2007 20:39

Danke!

Beitrag von Anne »

Vielen Dank!
(Hätte ich mir eigentlich denken können... Hab irgendwie verdrängt, dass die Dinger sowieso quadratisch sein müssen, damit man sie mit sich selbst multiplizieren kann, und Einheitsmatrix von daher durchaus Sinn macht... :-) => Danke!)

banshee
Nerd
Nerd
Beiträge: 684
Registriert: 22. Okt 2006 18:46

Beitrag von banshee »

wieso soll das definiert sein? M^0 ist doch das gleiche wie M*M^-1 und da ja bekanntlicherweise die identitätsmatrix rauskommt wenn man eine matrix mit ihrer inversen matrix multipliziert passt das doch wunderbar ;)

Wetterfrosch
Mausschubser
Mausschubser
Beiträge: 72
Registriert: 20. Jan 2007 15:51

Beitrag von Wetterfrosch »

Hallo,
ich hänge am letzten Testfall der Hausübung fest:

System.out.println(m1.pow(3).determinant());

Mein Ergebnis ist:
86003856
Should be:
5832
Das hier ist die vorgegebne Matrix:
1 2 1
2 6 6
7 7 2


Wenn ich die pow(3) alleine ausrechne bekomme ich folgendes Ergebnis:
159 255 168
570 954 648
546 861 561

Das scheint richtig zu sein.
Die determinant() ist wohl auch nicht falsch. Die anderen Testfälle stimmen.
Selbst wenn ich die determinant per hand ausrechne komme ich auf ein falsches Ergebnis.
159*954*561=85095846
255*570*561=81541350
168*570*861=82449360

85095846-81541350+82449360=86003856

Wo ist das Problem? Hab ich hier irgendwo einen Denkehler gemacht?

Benutzeravatar
gobbledygook
Windoof-User
Windoof-User
Beiträge: 26
Registriert: 11. Nov 2006 14:15

Beitrag von gobbledygook »

ja, einfach die determinante falsch berechnet,

Code: Alles auswählen

  (159 * 954 * 561)
+ (255 * 648 * 546) 
+ (168 * 570 * 861) 
- (546 * 854 * 648)
- (861 * 648 * 159)
- (561 * 570 * 255)
---------------------------
                   5832
wenn die vorher gestimmt haben wars bestimmt nur zufall !!!
schau dir die regel von sarrus ode besser den entwicklungssatz (bzw deine implementierung) noch mal genauer an!!!




Ich mag keine Vegetarier.
Die essen meinem Essen das Essen weg.

Wetterfrosch
Mausschubser
Mausschubser
Beiträge: 72
Registriert: 20. Jan 2007 15:51

Beitrag von Wetterfrosch »

danke, hat ne Ewigkeit gedauert bis ich es gemerkt habe.

Meine Determinante war falsch. Das ist halt schwierig zu finden wenn die anderen Testfälle stimmen.


Gruß

Tom

banshee
Nerd
Nerd
Beiträge: 684
Registriert: 22. Okt 2006 18:46

Beitrag von banshee »

10% programmieren, 90% fehler beheben, gewöhn dich besser dran ;)

Ondori
Mausschubser
Mausschubser
Beiträge: 89
Registriert: 28. Okt 2006 19:50

Beitrag von Ondori »

erstmal finde ich es sehr beruhigend, dass es menschen gibt, die ihre aufgaben auch erst am wochenende erledigen ;)

jetzt zu meiner frage bzgl. des vorzeichens der summanden:
wenn ich nach der ersten spalte entwickle, kann ich davon ausgehen, dass immer bei einer geraden zeilenzahl (+1), bei einer ungeraden (-1) als vorzeichen verwendet werden muss?
es scheint zu funktionieren, aber man weiß ja nie...

Christoph B
Computerversteher
Computerversteher
Beiträge: 370
Registriert: 15. Okt 2006 18:28
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Christoph B »

joa, so solls sein.

Btw.
Ich hatte auch einige Probs mit der Determinantenimplementierung (vorallem bei Matrizen > 3 x 3) , un hab daher noch einige eigene Tests dazu geschrieben.
Falls jemand daran interesse hat sein Prog weiter zu testen, anbei die Test datei.
Einfach ins startup package zur vorgegebenen "Start.java" reinhaun, und evtl. die Imports anpassen (bei mir wurden die packages beim importieren mit nem src.* am Anfang versehen).

ich hoffe weitere Testfälle zu posten verstößt gegen keine Regel :S

edit: Da jemand probs mit dem *.rar Format hatte un *.java posten nich erlaubt is, sin die Testfälle jetz als *.txt angehängt
Dateianhänge
EigeneTests.txt
(4.49 KiB) 36-mal heruntergeladen
Zuletzt geändert von Christoph B am 20. Jan 2007 21:56, insgesamt 1-mal geändert.

Benutzeravatar
gobbledygook
Windoof-User
Windoof-User
Beiträge: 26
Registriert: 11. Nov 2006 14:15

Beitrag von gobbledygook »

kommt drauf an, beginnst du dein index in der matrix mit null zu zaehlen (wie im array abgelegt), und nennst 0 eine gerade zahl, dann koennte deine beschreibung hinkommen

die formel fuer das vorzeichen ist: (-1)^(zeilenindex+spaltenindex),
Wikipedia (Determinante)
d.h. wenn (zeilenindex+spaltenindex) gerade ist, dann ist es positiv - ansonsten eben negativ


die matrizen indizes werden aber in der mathematik eher mit 1 begonnen zu zaehlen, nicht mit 0
--> gerade zeile/spalte (-1), ungerade zeile/spalte (+1) (wenn nach erster spalte/zeile entwickelt wird)




Ich mag keine Vegetarier.
Die essen meinem Essen das Essen weg.

Ondori
Mausschubser
Mausschubser
Beiträge: 89
Registriert: 28. Okt 2006 19:50

Beitrag von Ondori »

danke für die antworten und ja, ich fange meine indizes bei 0 an, wie das auch in den get und set -methoden gemacht wird...

Christoph B
Computerversteher
Computerversteher
Beiträge: 370
Registriert: 15. Okt 2006 18:28
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Christoph B »

joa, un bei den vorzeichen isses eigentlich nur wesentlich, das die wechseln, also + - + - + - + -, was man sehr einfach (ohne zeilenindex + spaltenindex etc) umsetzen kann.

die testfälle sind jetz übrigens im txt format da es wohl probs mit dem rar format gab

banshee
Nerd
Nerd
Beiträge: 684
Registriert: 22. Okt 2006 18:46

Beitrag von banshee »

Ondori hat geschrieben:erstmal finde ich es sehr beruhigend, dass es menschen gibt, die ihre aufgaben auch erst am wochenende erledigen ;)
also ich mach die erstens in der bahn, zweitens hab ich in der woche keine zeit weil andere hausübungen und jede vorlesung nachbereiten muss *auge bis zum boden runterzieh* :D

Antworten

Zurück zu „Archiv“