WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Lösen von Gleichungssystemen mit Randbedingungen in Matlab

 

Sven1904
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 18.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.10.2013, 10:10     Titel: Lösen von Gleichungssystemen mit Randbedingungen in Matlab
  Antworten mit Zitat      
Guten Morgen

Ich hätte mal eine Frage bzgl. des Lösens von Gleichungssystemen mit Randbedingungen in Matlab

Ich habe ein Gleichungssystem mit 8 Gleichungen und 8 Unbekannten. Dieses kann ich ja normal wie beschrieben lösen.

Code:

A = [8x8]

X = [8x1]

B = [8x1]

%lineares Gleichungssystem
A * X = B

%Lösen des lineares Gleichungssystem
X = A\B
 



Dabei kommen aber für den Lösungsvektor X zu große Werte heraus. Diese sollen in einem Toleranzbereich liegen:

-5 < X < 5

Dafür kann der B-Vektor auch in einem Toleranzbereich liegen:

-2 < B < 2

Gibt es eine Funktion oder ein Programm oder eine Toolbox bei der ich Randbedingungen ebenfalls mit einbeziehen kann, oder wie würdet ihr dort vorgehen.

Ich wäre euch für eure Hilfe sehr dankbar!


Schöne Grüße
Sven
Private Nachricht senden Benutzer-Profile anzeigen


Sven1904
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 18.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.10.2013, 10:39     Titel:
  Antworten mit Zitat      
Soweit ich das jetzt verstanden habe löse ich das ganze über den lsqlin-Befehl.

Habe mich probiert dort einzulesen, leider ist mein Englisch nicht so gut.

Code:


lb=zeros(8,1); %X1,X2,X3,X4,X5,X6,X7,X8 >=-5
ub=zeros(8,1); %X1,X2,X3,X4,X5,X6,X7,X8 >=5

[x,resnorm,residual,exitflag,output]=lsqlin(A,B,[],[],Aeq,beq,lb,ub);

 


Wie würde es jetzt weiter gehen, dass ich für den B-Vektor ebenfalls einen Bereich angebe?

Entschuldigung nochmal für die vielen Fragen, mir fällt das nur leider ziemlich schwer
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 18.10.2013, 11:28     Titel:
  Antworten mit Zitat      
Hallo,

du kannst nur für die Lösung ein zulässiges Intervall angeben. Für den B-Vektor ist das so nicht möglich.

Eine Möglichkeit wäre, die Berechnung für verschiedene B-Vektoren durchzuführen. Natürlich bekommst du dann jedes Mal ein anderes Ergebnis.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Sven1904
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 18.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.10.2013, 11:47     Titel:
  Antworten mit Zitat      
Guten Morgen Harald,

vielen Dank mal wieder für deine schnelle Antwort!

Also muss ich den B-Vektor fest bestimmen. Im ersten Fall die optimale Lösung.

Code:

B = [0,0,0,0,0,0,0,0]
 


Jetzt schaue ich, ob X immer im Toleranzbereich liegt. Falls nicht, ändere ich den B-Vektor z.B

Code:

B = [1,1,1,1,1,1,1,1]
 


und schaue wieder ob jetzt der X-Vektor im Toleranzbereich liegt. Das würde ich mit einer If-Funktion machen und schaue solange, bis X im Toleranzbereich liegt?

Gibt es denn dafür keine Optimierungsprogramm der mir die beste Möglichkeit zeigt?

Vielen Dank!!!
Private Nachricht senden Benutzer-Profile anzeigen
 
Sven1904
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 18.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.10.2013, 13:13     Titel:
  Antworten mit Zitat      
Wenn ich für den X Vektor einen Toleranzbereich angebe, dann kann ich doch auch ein überbestimmtes System betrachten oder?

Also z.b 16 Gleichungen mit 8 Unbekannten.?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 18.10.2013, 15:49     Titel:
  Antworten mit Zitat      
Hallo,

es gibt eine ganze Optimization Toolbox. Bevor man diese nutzt, muss man sich aber genau überlegen, was man eigentlich möchte.

Aktuell scheint das zu sein: bestimme B so, dass A \ B bestimmte Bedingungen erfüllt. Das wäre ein "normales" Optimierungsproblem, d.h. lösbar z.B. mit fmincon - kommt eben auf die genaue Formulierung an.

Und ja, man kann auch überbestimmte Systeme sogar betrachten. Man braucht dazu nicht mal einen Toleranzbereich.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.