Verfasst am: 12.03.2013, 18:17
Titel: lin Gleichungssystem mit Variablen lösen
Hallo ich hätte eine kleine Frage:
Bis jetzt hab ich Gleichungssysteme noch nie in Matlab behandelt deswegen hab ich vermutlich eine viel zu leichte Frage für euch
Zum Beispiel habe ich 4 Gleichungen mit 4 Unbekannten(c1 bis c4) und mehreren Variablen (a bis h), denen feste Werte zugeordnet worden sind.
Code:
% d*c4 - a*c1 - e = 0 % a*c1 - b*c2 - f = 0 % b*c2 - c*c3 - g = 0 % c*c3 - d*c4 - h = 0
nun möchte ich ein numerisches Ergebnis für c1 bis c4 erhalten. Bei meinen bisherigen solver-Versuchen kamen nur weitere Gleichungen heraus und keine festen Werte(kein subs möglich).
z.B
wie genau stellst du dir das vor? Soll MATLAB deine Gedanken lesen?
Wenn die Matrix nach irgendeiner Vorschrift erstellt werden soll, müsste man wissen, welche das ist.
Grüße,
Harald
MarcusH
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 13.03.2013, 23:14
Titel:
Wenn ich das Beispielsgleichungen und damit die Unbekannten lösen will muss ich die Matrix A aufstellen?
Das Problem besteht darin das mein Programm darauf abziehlt eben eine solche Matrix zu vermeiden!
wenn du die Matrix vermeiden willst, wie soll es dann gemacht werden?
Grüße,
Harald
MarcusH
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 14.03.2013, 17:28
Titel:
Mein Programm beschreibt einen Dampfturbinenkreislauf die nacheinander geschalteten Anlagenkomponenten mit den Zu- und Abströmen könnten mit so einer Matrix beschrieben werden. Allerdings habe ich mein Programm dahingegen gelenkt nicht eine solche Matrix zu erstellen, da diese extrem groß und umständlich zu werden droht, sondern durch Abfrage einen Vektor zu bekommen der die Abfolge der Komponenten speichert und diese abarbeitet.
Meine Frage ist jetzt wie ich für die bestehenden Gleichungen eine Lösung finde sei es durch solver oder andere Befehle. Bzw. wie ich aus den bestehenden Gleichungen eine Matrix formen kann ohne sie per Hand eingeben zu müssen!
Aber ich glaub kaum, dass die Inputs als Kommentarzeilen in einem M-File stehen.
Was genau bedeutet "extrem groß"? Manche Forums-User finden 100x100 Matrizen schon groß, andere brauchen schon eine Seitenlänge von 1e6 dafür.
Gruß, Jan
MarcusH
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 14.03.2013, 18:54
Titel:
ja die Gleichungen sind vereinfacht indem z.B. "a" gleich dem Ausgangswert der Temperatur der Turbine entspricht und "d" dem Eingangswert und "e" für die Lösung einer Kostenfunktion einer Komponente steht.
(diese Beispielsfunktionen hatte ich für Versuche mit solver erstellt und sind deshalb mit % versehen)
"extrem groß" ist dabei eher der Aufwand welcher betrieben werden muss um die Matrix per Hand einzugeben bzw. weil sich man erst alle Strömungen und deren Ein- und Ausgänge vorab überlegen muss!
versuche dich doch mal bitte in unsere Situation zu versetzen. Wie soll man dir mit den Informationen, die du lieferst, weiterhelfen?
Klar ist ja, dass du das Gleichungssystem in irgendeiner Form definieren musst. Matrizen und Vektoren sind die sinnvollste Form, das Problem zu lösen. Wenn du das Problem in einer anderen Form dargestellt hast, musst du uns zumindest mal sagen, in welcher Form. Schließlich wirst du kaum sämtliche Gleichungen hingeschrieben haben und dann sagen, dass es dir zu aufwändig ist, die Koeffizienten in eine Matrix einzutragen.
Grüße,
Harald
MarcusH
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 14.03.2013, 22:11
Titel:
Okay ich versuchs anders
also ich habe einen Vektor in dem die Reihenfolge meiner Komponenten steht. Dieser wird nun in einer for-Schleife abgefragt und somit alle Komponenten nacheinander berechnet sodass ich letztendlich eine Matrix mit allen Ergebnissen habe.
Nun will ich an die Auswertung und dafür würde ich wieder in einer for_Schleife alle Komponenten nacheinander abfragen. Dabei ergeben sich für jede Komponente die gleichen Gleichungen (es unterscheiden sich a -f diese sind aber schon berechnet für die einzelnen Komponenten) wie in den Beispielen die ich genannt habe zu sehen ist.
Letztendlich habe ich nun diese zb 4 Gleichungen allerdings ohne eine dazugehörige Matrix A. Da das ganze automatisch ablaufen soll kann ich diese nicht per Hand eintragen (was wie gesagt auch äußerst langwierig werden könnte).
Die Beschreibungen als Text sind nicht wirklich hilfreich. Während "Dieser [Vektor] wird in einer FOR-Schleife abgefragt" nicht klar ist, wäre ewtas wie dies sofort erhellend:
Code:
A = zeror(10, 10);
for k=1:10
A(:, k) = myFunction(); % Oder rand(10,1) end
Auf die Bedeutung der Elemente kommt es ja aus programiertechnischer Sicht gar nicht an.
Nun schreibst Du:
Zitat:
...sodass ich letztendlich eine Matrix mit allen Ergebnissen habe.
Was bedeutet hier "Ergebnis"?
Zitat:
Letztendlich habe ich nun diese zb 4 Gleichungen allerdings ohne eine dazugehörige Matrix A.
Das verstehe ich nicht.
Zitat:
Da das ganze automatisch ablaufen soll kann ich diese nicht per Hand eintragen (was wie gesagt auch äußerst langwierig werden könnte).
Auch das ist für Dich sonnenklar, aber als Leser hat man keine Ahnung, was es bedeutet. Wie können denn 4 Gleichungen eine "äußerst langwierige" Arebti erfordern? Und wieso kann Matlab das gewünschte nicht automatisch machen?
Wir benötigen:
1. Inputs in valider Matlab Syntax
2. Exakte Beschreibung der gewünschten Berechnung, z.B. eine Formel. Ein Minimal-Beispiel ist auch hilfreich.
3. Eine erklärung, wie genau der Output aussehen soll.
Dann ist eine Antwort effizient möglich.
Gruß, Jan
MarcusH
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 17.03.2013, 19:02
Titel:
Okay dann hab ich jetzt eine konkrete Frage:
Meine Mathekenntnisse lassen gerade nach und ich frage mich ob die Matrix (alle Buchstaben sind bekannt)
Code:
A = [a 00000 -b
0 a 0000 -b
0 c 00 d -e 0 00 c 0 d -e 0 00 f -g 000 000 g -d 00
-e 0000 e 0];
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.