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

Zulässigen Bereich eines Optimierungsproblems visualisieren

 

JeefoWin32
Forum-Anfänger

Forum-Anfänger


Beiträge: 44
Anmeldedatum: 24.12.09
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 14.04.2010, 17:06     Titel: Zulässigen Bereich eines Optimierungsproblems visualisieren
  Antworten mit Zitat      
Hallo,

brauch mal einen kleinen Anstoss in die richtige Richtung:

Es soll der zulässige Bereich eines Optimierungsproblems mit Matlab visualisiert werden. 3 Nebenbedingungen sind gegeben.

Code:
soll bei sowas helfen können, leider bekomme ich nicht das Bild, was ich haben will, sondern nur ein paar bunte Linien.
Wie verwendet man den Befehl zur Visualisierung des Bereiches unter den 3 NB's richitg?

MfG
Private Nachricht senden Benutzer-Profile anzeigen


Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 14.04.2010, 22:23     Titel:
  Antworten mit Zitat      
Hallo JeefoWin32,

ich fände contour zu kompliziert und würde es eher mit dem plot-Befehl machen. Ich nehme an, Du hast zwei Variablen? Dann müsstest Du Deine Nebenbedingungen diskretisieren und nach einer Variablen auflösen. Beispielsweise für 3*x + y <= 1 möchtest Du ja die Gerade sehen, für die 3*x + y = 1 gilt. Das heißt dann y = 1-3*x.

Code:
x = linspace(-3,3,40); % hier problemgemäß definieren
y = 1-3*x;
plot(x,y)


Ebenso für die anderen Nebenbedingungen. Für die Schönheit kann man auch die Schnittpunkte berechnen (falls das so leicht geht) und das x dementsprechend wählen. So hat man dann keinen Überstand, sondern nur den Rand der zulässigen Menge.

Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
JeefoWin32
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 44
Anmeldedatum: 24.12.09
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 16.04.2010, 17:41     Titel:
  Antworten mit Zitat      
Das hat ja schon mal geklappt Smile
Lässt sich der "eingezäunte" Bereich auch farbig markieren?
Code:
gehorcht mir leider nicht...
Private Nachricht senden Benutzer-Profile anzeigen
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 16.04.2010, 17:54     Titel:
  Antworten mit Zitat      
Hallo JeefoWin32,

nimm lieber

Code:


Das ist für Polygone. Dazu brauchst Du dann aber wirklich die Schnittpunkte.

Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
JeefoWin32
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 44
Anmeldedatum: 24.12.09
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 16.04.2010, 18:27     Titel:
  Antworten mit Zitat      
Leider bekomme ich es immer noch nicht hin.
Alle Befehle Färben komplett die eingeschlossenen Flächen der Funktionen ein. Leider möchte ich nur die eine (welche den zul. Bereich für das Optiproblem darstellt) färben.

bereich.png
 Beschreibung:

Download
 Dateiname:  bereich.png
 Dateigröße:  5.12 KB
 Heruntergeladen:  646 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 16.04.2010, 19:29     Titel:
  Antworten mit Zitat      
Hallo JeefoWin32,

welches ist denn der zulässige Bereich? Wink Das Fünfeck? Ebenso wie ich kann auch der patch-befehl nicht entscheiden, was eingefärbt werden soll. Du musst schon die Ecken des zulässigen Bereichs selbst angeben. Bei linearen Funktionen kann man ja die Schnittpunkte leicht ausrechnen. Du hast ja schon alle Geraden in der Form y = m*x + b. Du musst nur die (nicht redundanten) wesentlichen Geraden auswählen und paarweise gleichsetzen. Daraus erhältst Du die drei oder fünf Schnittpunkte (erst die x-Werte, durch Einsetzen dann die y-Werte). Mit patch kannst Du den richtigen Bereich dann einfärben.

Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
JeefoWin32
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 44
Anmeldedatum: 24.12.09
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 16.04.2010, 19:43     Titel:
  Antworten mit Zitat      
Was Matlab da alles einfärben wollte, versteh ich auch noch nicht so recht...
Der zulässige Bereich wäre aber das mittig kleinere Dreieck gewesen (siehe Bild).
Hab es nun mit
Code:

vert=[3,5;6,2;8.4,6.8;];
fac=[1,2,3];
patch('Vertices',vert,'Faces',fac,'EdgeColor','black')
 

hinbekommen wie ich wollte.
Vielen Dank Smile

MfG

untitled.png
 Beschreibung:

Download
 Dateiname:  untitled.png
 Dateigröße:  4.21 KB
 Heruntergeladen:  675 mal
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.