![]() |
Gleichungssysteme lösen?
Hallo, ich hab da ein kleines Problem:
Ich möchte dynamische Gleichungssysteme lösen, die zB. wie folgt aussehen: 3b = 2e 3a + b = 2c + e 2a = c + d a wird 1 gesetzt. Die Matrix wird umgewandelt in einen array of array of extended: 0 3 0 0 -2 0 3 1 -2 0 -1 0 2 0 -1 -1 0 0 1 0 0 0 0 1 (a = 1) Setzung Wenn ich den normalen Gaussalgorithmus drüberlaufen lasse, kommt meistens "System unlösbar" heraus, obwohl die Systeme eigentlich noch recht einfach sind und auf jedenfall eine Lösung haben. Bei der Matrix oben fehlt eine Zeile zum Quadrat, aber woher soll die Gleichung kommen? Nur a soll 1 sein... Helft mir... :roll: das ist die Anwendung -> ![]() |
Re: Gleichungssysteme lösen?
Es würde helfen, wenn du den code posten würdest. Dann kann man auch Fehler suchen...
|
Re: Gleichungssysteme lösen?
Ich glaube nicht, dass es ein Fehler ist... Irgendwie muss man die Matrix noch verändern, damit es klappt..
Der Hauptcode:
Delphi-Quellcode:
-----------------------------
Matrix.SolveLinearSystem(Array,m,n);
//m,n sind die Dimensionen, die Funktion hab ich aus dem Internet. var sol,auf : array of array of extended; rechts,links : array of array of extended; // rechte und linke Seite begin // --- Füllen der Matrix setlength(Auf,elemente.Count+1,anzahled+anzahlpr+1); for i := 0 to elemente.Count - 1 do begin for j := 0 to anzahled-1 do begin auf[i,j] := links[i,j]; end; end; for i := 0 to elemente.Count - 1 do begin for j := 0 to anzahlpr - 1 do begin auf[i,j+anzahled] := - rechts[i,j]; // negativ Werte end; end; // a = 1 reihe setzen for i := 0 to anzahlpr + anzahled do begin if i = 0 then Auf[elemente.count,i] := 1 ELSE if i = anzahlpr + anzahled then Auf[elemente.count,i] := 1 ELSE Auf[elemente.count,i]:= 0 ; end; //---- Berechnung.... Matrix := Mathe.init; try sol := Matrix.SolveLinearSystem(Auf,elemente.count+1 anzahled+anzahlpr+1); except erroradd('[Mathematik] Das Gleichungssystem ist nicht lösbar oder'); erroraddline(' hat unendlich viele Lösungen'); end; [edit=sakura]Delphi-Tags eingefügt. Mfg, sakura[/edit] |
Re: Gleichungssysteme lösen?
Na da hat wohl jemand LK Mathe.
Mh, also erhlich gesagt hab ich mir dein code nicht genau angesehen, aber schreib doch lieber was total eigenes, als was ausm Netz. Vom Prinzip her kann st du nach dem Gauß doch gehen. Du baust dir dein Dreieck indem du immer das Kgv der Koeffizienten suchst und durch entprechende Multiplikation und anschließender Addition/Subtraktion alle Variablen schrittweise eliminierst, bis du dann eine Variable genau bestimmen kannst. Das sind auch vom programmieren her nicht wirklich schwere Operationen, oder? Ich werd mich auch mal ransetzen, Czapie. |
Re: Gleichungssysteme lösen?
hallo,
was ist denn ein dynamisches Gleichungssystem? ( der alte Gauss dreht sich im Grabe rum ) Bitte erklärs mir! nimoee |
Re: Gleichungssysteme lösen?
Zitat:
Ein solches System in sich ist natürlich nicht dynamisch! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz