Gleichungssystem innerhalb eines Wertebereichs lösen
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 30.12.2019, 10:34
Titel: Gleichungssystem innerhalb eines Wertebereichs lösen
Hallo zusammen,
ich habe folgendes Problem:
In meiner Studienarbeit befasse ich mich mit dem Doehlert Desing (zur Optimierung der Anzahl meiner wissenschaftlichen Experimente). Aktuell bin ich in der Phase wo ich versuche Rechnungen aus verschiedenen Papern nachzuvollziehen damit ich später selber meine Ergebnisse berechnen kann. Ich bin nun an einem Punkt angekommen, an dem ich ein GLS mit 3 Gleichungen und 3 Unbekannten lösen muss. Das Ergebnis ist mir bekannt, komme aber selber nicht auf die Lösung. Die Lösung die ich Suche ist:
x = -1 & y = -0,577 & z = 0,816
Code:
syms x y z
Y = vpasolve([0.54 + (2*(-1.413)*x) + (1.126*y) + (0.606*z) == 0, (-0.250) + (1.126*x) + (2*(-0.696)*y) + ((-1.005)*z) == 0, (-1.502) + (0.606*x) + ((-1.005)*y) + (2*(-0.267)*z) == 0], [x,y,z],'Random',true)
ich würde eine numerische Lösung über lsqlin versuchen.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
die Wahl von C und d ist gut, die von A und b erscheint mir nicht sinnvoll.
Untere und obere Schranken kannst du als Argumente lb und ub angeben, siehe Doku.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Damit bekomme ich ein Ergebnis, dessen Residuum besser ist als das des erwarteten Ergebnis. Gibt es zusätzliche Nebenbedingungen, die anfangs nicht erwähnt wurden?
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Gibt es zusätzliche Nebenbedingungen, die anfangs nicht erwähnt wurden?
Das ist die Frage. Ich hole nochmal ein bisschen aus:
Ich mache eine Parameterstudie in Verbindung mit dem Doehlert Design. Ich bekomme 13 Parametersätze (bei 3 zu variierenden Größen) die ich auswerte. Das was ausgewertet wird ist die relative Dichte eines Werkstoffes, was gleichzeitig den Ergebnisvektor meiner Regression ist.
Wenn ich die 13 Versuche ausgewertet habe, mache ich eine Regression um 10 Koeffizienten zu bestimmen und bekomme eine Gleichung mit 3 Unbekannten. Davon bilde ich jeweils die partiellen Ableitungen und setze diese = 0 um das Minimum/Maximum zu berechnen. In diesem Fall ein Maximum, da die relative Dichte maximal sein soll. Im Doehlert Design selber sind die Parameter codiert und bewegen sich zwischen -1 und 1 (daher die Grenzen).
Ob das Ergebnis nun sinnvoll ist muss also noch interpretiert werden. Wenn bspw. für die Codierung -0,0789 rauskommt, kann ich das a) gar nicht so genau in meinen Parametern später angeben und b) gibt es vllt. schon Parametersätze in denen ein ähnlicher Wert (z.B. 0) vorkam und das Ergebnis bescheiden war.
Ich hoffe die Umgebnung ist ein bisschen deutlich geworden.
Gibt es vllt die Möglichkeit mehrere Lösungen ausgeben zu lassen?
ich kenne mich mit der Anwendung nicht aus und kann daher nur begrenzt helfen.
Zitat:
Wenn ich die 13 Versuche ausgewertet habe, mache ich eine Regression um 10 Koeffizienten zu bestimmen
Da muss einem bewusst sein, dass die Regression sehr anfällig gegenüber Messungenauigkeiten in den Versuchen sein wird. Normalerweise möchte man deutlich mehr Versuche als Parameter haben.
Die Lösung ist hier (vermutlich) eindeutig. Insbesondere liefert die Lösung von lsqlin ein besseres Residuum als das eigentlich gewünschte Ergebnis. Meine Vermutung ist also, dass eine Herausforderung schon in der Formulierung des Problems liegt, und ich kann leider höchstens bei der Umsetzung in MATLAB helfen.
Wenn es um die Berechnung eines Minimums geht, kann man auch speziell dafür gedachte Funktionen wie linprog oder fmincon verwenden.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Der Sinn dieses Design of Experiments ist es ja, mit einer geringen Anzahl an Versuchen einen möglichst großen Raum halbwegs gut abzudecken. Das die Regression dann anfällig ist muss man hinnehmen.
Gibt es denn eine Möglichkeit, dass lsqlin z.B. 10 unterschiedliche mögliche Ergebnisse auf einmal ausgibt?
Gibt es denn eine Möglichkeit, dass lsqlin z.B. 10 unterschiedliche mögliche Ergebnisse auf einmal ausgibt?
Nein, es sei denn, du passt die Problemstellung (z.B. die Schranken) an.
Die von dir gesuchte Lösung ist jedenfalls keine Lösung dieses Problems, da das Residuum (deutlich) schlechter ist.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Einstellungen und Berechtigungen
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.