AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Lösungsweg herausfinden

Ein Thema von Admirandis · begonnen am 16. Jan 2007 · letzter Beitrag vom 16. Jan 2007
Antwort Antwort
Admirandis
(Gast)

n/a Beiträge
 
#1

Lösungsweg herausfinden

  Alt 16. Jan 2007, 18:56
Hi an alle zusammen!

Ich habe folgendes Problem: Ich schreibe ein Programm, welches Matrizen lösen soll. Also mehrere Gleichungssysteme und damit rechnen. Nun habe ich folgendes Problem: Man muss bei meinem Algorithmus bestimmte Lösungsvariablen herausfinen, welche in jeder Zeile und Spalte jeweils nur einmal vorkommen dürfen und welche nicht Null sein dürfen.
Nun muss man also eine Art "Pfad" heraussuchen, welcher festlegt, welche Variablen benutzt werden dürfen und welche nicht.

Hierbei muss natürlich darauf geachtet werden, dass man keine Variablen benutzt, welche eine 0 als Wert haben und man muss für jede Lösungsvariable einen Wert finden.

Bis jetzt hab es einfach immer von oben nach unten durchlaufen lassen und es hat eigtl immer funktioniert... Bis jetzt...

Heute bin ich auf dieses Beispiel getroffen:

1x +0y + 0z = 3
3x -1y + 9z = 9
0x +2y + 0z = 6

Mein Programm würde jetzt mit der ersten Gleichung anfangen und sich weiter nach unten arbeiten. Bei der 3. Gleichung würde jedoch ein Problem entstehen und es würde meckern, da es nur eine Variable gibt, die ungleich 0 ist, diese Reihe aber schon von der darüberliegenen Variablen genutzt wird.

Obwohl es ja einen Weg gibt! Man muss die Variablen folgendermaßen auswählen:

+1x +0y +0z = + 3
+3x -1y +9z = +9
+0x +2y +0z = + 6

Ich suche jetzt eine Methode, wie ich diese Wege auswählen kann... Wenn irgendjemand eine Idee hat, so möge er sich bitte melden, weil ich mit meinem Latein am Ende bin...

Gruß

Admirandis
  Mit Zitat antworten Zitat
IngoD7

Registriert seit: 16. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Lösungsweg herausfinden

  Alt 16. Jan 2007, 19:38
Ich habe von diesem Matrizenzeug aber auch nicht ein Wörtchen verstanden ...
Müssen für x, y und z eigentlich später auch Ergebnisse herauskommen? Na, egal ...

Verstanden habe ich (hoffe ich jedenfalls):

a.) Dein Programm arbeitet die Gleichungen von oben nach unten ab.
b.) Dein Programm muss in jeder Gleichung eine Variable mit Wert ungleich 0 finden.
c.) Diese Variable darf aber vorher - also in den Gleichungen weiter oben - noch nicht gefunden worden sein.


Nachdem ich im ersten Ansatz ganz schönen Müll geschrieben habe , hier der nächste Versuch:
Mache es quasi rekursiv. Immer wenn du in einer Gleichung keine Variable finden kannst, die nicht schon zuvor dran war, dann springe eine Gleichung nach oben und wähle dort eine andere Variable aus.
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#3

Re: Lösungsweg herausfinden

  Alt 16. Jan 2007, 19:53
@Admirandis: Ich finde deinen Text ebenfalls ein wenig unverständlich, was auch zu einem Teil an deiner Verwürfelung von "Variable" und "Koeffizient" liegt . Insegesamt stellt sich mir die Frage: warum benutzt du nicht das Gaußsche Eliminationsverfahren?

PS: Matrizen kann man im Allgemeinen nicht lösen .
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Admirandis
(Gast)

n/a Beiträge
 
#4

Re: Lösungsweg herausfinden

  Alt 16. Jan 2007, 21:08
Hi!

Sorry, wenn ich mich unverständlich ausgedrückt habe... Ist eben ein wenig schwierig zu erklären.

Also, ich nutze das Gauß'sche Eliminationsverfahren. Genauer gesagt den Gauß-Jordan-Algorithmus. Ist aber auch nicht mehr so wichtig! Habe nämlich schon eine Lösung gefunden!

Und zwar, dass man die Gleichungen untereinander austauscht. Hab evor lauter Bäumen den Wald nicht gesehen. Falls irgendjemand nochmal genauere Informationen wünscht, dann werde ich gerne nochmal versuchen das genauer zu erklären.

Und noch was: Falls man Matrizen nicht lösen kann, dann lügt mein Mathe-LK Lehrer! Hab nämlich mit ihm das Thema besprochen (Weils meine Facharbeit ist!).

Nochmals danke an alle, die sich die Mühe gemacht haben, meinen Eintrag zu lesen und nur Bahnhof verstanden haben ^^

Grüße

Admirandis
  Mit Zitat antworten Zitat
Flare

Registriert seit: 26. Jan 2006
Ort: Leipzig
529 Beiträge
 
Delphi 7 Professional
 
#5

Re: Lösungsweg herausfinden

  Alt 16. Jan 2007, 21:15
Zitat von Admirandis:
Falls man Matrizen nicht lösen kann, dann lügt mein Mathe-LK Lehrer!
Lügen ist da so ne Sache...
Matrizen kann man umformen um so die Lösungen von einem Gleichungssystem besser ablesen zu können, das darf man aber nicht mit Matrizen lösen gleichsetzen!
Eine Matrix ist ja bloß ein Konstrukt von mehreren Zahlen in das wir umgestellte Gleichungen eingetragen haben um das lösen der Gleichungen uns zu vereinfachen.


Flare
Willy Scheibel
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#6

Re: Lösungsweg herausfinden

  Alt 16. Jan 2007, 21:25
Zitat von Admirandis:
Genauer gesagt den Gauß-Jordan-Algorithmus
Ah, ok. Ich kannte nur den Grundalgorithmus. Deine Lösung ließe sich allerdings auch in der Wikipedia finden :
Zitat:
Ist die oberste Zahl der gewählten Spalte eine Null, so vertauscht man die erste Zeile mit einer anderen Zeile, in der in dieser Spalte keine Null steht.
Zitat:
Und noch was: Falls man Matrizen nicht lösen kann, dann lügt mein Mathe-LK Lehrer!
Wie gesagt, im Allgemeinen kann man Matrizen genau so wenig lösen wie einen Vektor oder Skalar. Es kommt immer auf die Interpretation an, "Lösen einer Matrix" würde ich es trotzdem nie nennen.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Admirandis
(Gast)

n/a Beiträge
 
#7

Re: Lösungsweg herausfinden

  Alt 16. Jan 2007, 23:08
Ok, dann sagen wir einfach, dass man Matrizen im Allgemeinen nicht lösen kann, und dann sind alle zufrieden, ok?

Will hier ja keinen Aufstand anzetteln... ^^

Aber nochmals Danke an alle für die sehr hilfreichen Aufklärungen!

Grüße
Admirandis
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz