Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi einfache Matrix lösen (https://www.delphipraxis.net/88012-einfache-matrix-loesen.html)

blablab 8. Mär 2007 20:38


einfache Matrix lösen
 
Hallo!

Weiß jemand, wie ich eine solche Matrix berechnen kann?

a*x1 + b*x1 + c*x3 = 0
d*x1 + e*x2 + f*x3 = 0

ich benötige nur eine Lösung, wobei sie nicht x1=0, x2=0, x3=0 sein soll.

Das Problem ist, dass a,b,c,d,e,f teilweis auch 0 sein können.

Kann mir da jemand helfen, wie ich da auf eine Lösung komme??

Danke schonmal!
Simon

fwsp 8. Mär 2007 20:43

Re: einfache Matrix lösen
 
Code:
a*x1 + b*x1 + c*x3 = 0
d*x1 + e*x2 + f*x3 = 0 

a*x1 + b*x1 + c*x3 = d*x1 + e*x2 + f*x3

0 = d*x1 + e*x2 + f*x3 - (a*x1 + b*x1 + c*x3)
0 = (d-a)x1 + (e-b)x2 + (f-c)x3
reicht dir das als ansatz?

blablab 8. Mär 2007 20:53

Re: einfache Matrix lösen
 
Stimmt das, dass ich dann nur noch gucken muss, was von (d-a), (e-b) oder (f-c) <> 0 ist.
Und dann kann ich die anderen beiden auf einen beliebeigen wert setzen und dementsprechen das letzte ausrechnen...

ist das richtig???

fwsp 8. Mär 2007 21:08

Re: einfache Matrix lösen
 
das einfachste wäre zu sagen:
a = b = c = d = e = f.
dann kannst du sagen die sind beliebig, eine lösung wäre 1 oder 2 oder 3 oder ...

blablab 8. Mär 2007 21:11

Re: einfache Matrix lösen
 
ich glaub ich habs net ganz verstanden, was du meinst...
denn die werte a b c d e f sind doch gegeben. Ich muss ja x1, x2 und x3 ausrechnen

fwsp 8. Mär 2007 21:15

Re: einfache Matrix lösen
 
aso, dann musst du das nach den Xi umstellen.

3_of_8 8. Mär 2007 21:18

Re: einfache Matrix lösen
 
Das ist ein homogenes LGS. Du überführst die Matrix in TNF, nimmst dir den Spaltenvektor rechts als spezielle Lösung lambda, streichst alle Nullzeilen, fügst Nullzeilen so ein, dass alle Pivotelemente auf der Diagonale stehen, ersetzt alle Nullen auf der Diagonale durch -1 und merkst dir alle Spaltenvektoren (v1,...,vn), in denen du eine 0 durch eine -1 ersetzt hast. Die Lösungsmenge ist dann die Menge der Summe aus lambda und allen Vektoren des Vektorraums <v1,...,vn>.

Oder in Kurzform: In TNF überführen und den Spaltenvektor ganz rechts nehmen. Der ist eine nicht-triviale Lösung.

blablab 8. Mär 2007 21:21

Re: einfache Matrix lösen
 
Sorry, aber ich versteh nur bahnhof! :stupid:

3_of_8 8. Mär 2007 21:29

Re: einfache Matrix lösen
 
Okay, wenn du von Matrizen sprichst, gehe ich davon aus, dass du das Grundwissen in linearer Algebra hast. Auch nicht schlimm, ich erkläre es kurz.

Du überführst die erweiterte Koeffizientenmatrix (also die Matrixdarstellung der Koeffizienten plus ganz rechts eine Nullspalte für die Nullen im Ergebnis) in Treppennormalform. Dann nimmst du dir die Spalte ganz rechts als Lösung.

blablab 8. Mär 2007 21:57

Re: einfache Matrix lösen
 
aber die treppennormalform ist doch so, oder? (der link geht net)
Delphi-Quellcode:
g*x1   h*x2   i*x3
      j*x2   k*x3
wie nehme ich da die rechte spalte?


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:45 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