Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Algorithmus zum Lösen eines LGS (https://www.delphipraxis.net/110337-algorithmus-zum-loesen-eines-lgs.html)

Kytrix 16. Mär 2008 18:46


Algorithmus zum Lösen eines LGS
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi ich wollte ein Programm entwickeln womit man ein LinearesGleichungsSystem variabler Größe lösen kann d.h. sowohl die Spaltenanzahl als auch die Zeilenanzahl ist variabel.

Jedes Feld hat seinen eignen Namen z.B. Das erste Feld hat als Namen "Feld_1_1" das daneben "Feld_1_2" etc. bis zum untersten rechten Feld "Feld_n_m"

So nun habe ich überall nach einem verständlich erklärtem Algorithmus gesucht den ich nutzen könnte und nach einem Weg meine Werte aus den Editfeldern auszulesen und in einen Array zu übertragen (soweit ich das verstanden haben ist ein Array wohl von nöten).

PS: Ein stück quellcode wäre natürlich ideal aber ein theoretischer ansatz wäre auch gut =) danke euch

3_of_8 16. Mär 2008 18:47

Re: Logaritmus zum Lösen eines LGS
 
Logaritmus? Du meinst einen Algorithmus, oder?

Zum Lösen von Linearen Gleichungssystemen eignet sich der Gauß-Algorithmus sehr gut.

Kytrix 16. Mär 2008 19:07

Re: Logaritmus zum Lösen eines LGS
 
:lol: :oops: ja meine ich natürlich !

Ja aber ich habe bis jetz nur unverständliche Gaussalgorithmen gefunden.... ich habe nur verstanden das ich es mit Arrays machen muss aber mehr auch nicht :(

3_of_8 16. Mär 2008 19:13

Re: Algorithmus zum Lösen eines LGS
 
Nur unverständliche? Es gibt nur einen.

Der Gauß-Algorithmus basiert darauf, dass man das Lineare Gleichungssystem zuerst in Matrixform bringt. Das bedeutet, man verwendet eine m*(n+1)-Matrix, wobei m die Anzahl der Gleichungen und n die Anzahl der Variablen ist. Man schreibt dann erst einmal alle Gleichungen untereinander, wobei die Variablen immer in der gleichen Spalte stehen sollten, also zum Beispiel:

Code:
2x+3y=5
 x- y=2
Jetzt schreibt man die Koeffizienten in die ersten n Spalten der Matrix und die rechte Seite der Gleichung in die n+1. Spalte und macht zur besseren Unterscheidung noch einen Trennstrich hinter die n. Spalte:

Code:
(2  3 | 5)
 1 -1 | 2
Jetzt hast du das ganze in Matrixform. Mithilfe bestimmter Operationen (Skalierung, Addition und Tausch der Zeilenvektoren) bringst du das ganze dann in Treppennormalform. Dann kannst du das Ergebnis schön ablesen.

Wie das genau geht, steht in der Wikipedia.


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