Da ich 5 Gleichungen aber 8 Unbekannte habe, sollte ich ja unendlich viele Lösungen herausbekommen (falls es lösbar ist). Ich lasse das ganze nun mit A\b lösen und erhalte:
Dies ist ja nun eine spezielle Lösung. Wie kommt Matlab überhaupt darauf? Zweitens will ich eigentlich nur Lösungen mit x_1,x_2,x_3,X-4,x_5,x_6,x_7,x_8 >=0. (es geht hier konkret um eine Konvexkombination, deshalb auch die letzte Zeile der Matrix, dass sich x_1 bis x_8 auf 1 aufsummieren müssen). Wie kann ich das in meine Matrix mit einarbeiten?
Was genau meinst du damit?
Mit null(A) bekommst du zusätzlich den Nullraum und kannst daraus alle Lösungen bestimmen.
Zitat:
Zweitens will ich eigentlich nur Lösungen mit x_1,x_2,x_3,X-4,x_5,x_6,x_7,x_8 >=0. (es geht hier konkret um eine Konvexkombination, deshalb auch die letzte Zeile der Matrix, dass sich x_1 bis x_8 auf 1 aufsummieren müssen). Wie kann ich das in meine Matrix mit einarbeiten?
Dafür kannst du lsqlin verwenden.
Grüße,
Harald
Ph91
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 31.03.2015, 10:01
Titel:
Hey,
vielen Dank für deine schnelle Antwort. Ich habe mal ein bisschen rumgespielt heute morgen. Mit dem Nullraum von A kam ich nicht ganz so klar, allerdings habe ich das ganze nun mittels rref([A,b]) in eine Zeilen Stufenform gebracht und dann folgendes erhalten:
Setzt man nun speziell x_8=0 x_7= 6/7 x_6= -3/10 und x_5 = 0 so ergibt sich auch die von mir oben erwähnte spezielle Lösung.
Nun würde ich jedoch gerne noch sehen, dass es keine Lösung gibt bei der die x_i alle größer gleich 0 sind, d.h. mindestens ein x_i ist immer negativ.
Betrachtet man dazu beispielsweise x_2 und x_4 so ergibt sich falls x_8 =0 und x_6 = 0 ist gerade:
Damit ist diese Aussage natürlich bestätigt. Irgendwie kann ich dies den Gleichungen aber nicht allgemein entnehmen. Deshalb habe ich mir mal ein kleines Programm geschrieben, dass nun überprüft ob diese These zumindest stimmt:
Es sollte also x nur ausgeben falls alle Komponten von x>=0 sind und dann "gefunden!!!" schreiben. Dies tut es für die obige Stückelung der vorgegebenen Werte x_5 bis x_8 in 0.1er Schritten nicht. Es stützt meine These also. Jedoch sehe ich wie gesagt leider nicht an diesen 4 Gleichungen, dass dies so sein muss!
Ansonsten: wenn x_2 >= 0 sein soll und x_4 >= 0, dann auch x_2 + x_4 >= 0, also
-x_6 - x_8 >= 0
Damit muss entweder x_6 oder x_8 negativ sein, wenn x_2 und x_4 positiv sind.
Grüße,
Harald
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.