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

Ungleichungen symbolisch lösen - fmincon?

 

mkl
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 31.07.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.07.2008, 11:20     Titel: Ungleichungen symbolisch lösen - fmincon?
  Antworten mit Zitat      
Liebe Masters,

ich bin noch relativ unerfahren mit MatLab und habe evtl. auch überzogene Hoffnungen, was das Produkt angeht, aber bisher konnte MatLab alles lösen. Diesmal möchte ich eine Ungleichung symbolisch lösen, wobei ich für die "Hilfsvariablen" nur grobe Ungleichungen angeben möchte (>0).

Die Funktion fmincon schien die passende zu sein, funktioniert aber nicht. Ich habe nach der Doku folgendes gemacht:

Im Hauptprogram:

Code:
syms x y f1 f2 a b L k

x0 = [0,.5];
y0 = [0,.5];
options = optimset('LargeScale','off');
h1 = @(x) (-k)*(L -x)^2 ... (ziemlich lang mit allen syms);
[x, fval] = fmincon(h1,x0,[],[],[],[],[],@confun,options)


und die confun entsprechend:

Code:
function [c, ceq] = confun(x, a, b, k, L)
c = [y - x; f2 - f1; -a; -b; -k; -L];
ceq = [];


MatLab quitiert das Ganze mit
Zitat:
FMINCON only accepts inputs of data type double.


Bedeutet dies nur einen kleinen Fehler meinerseits oder kann fmincon keine Ungleichungssysteme symbolisch lösen?

Vielen Dank!

Mark
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: 31.07.2008, 16:57     Titel:
  Antworten mit Zitat      
Hallo Mark,

leider letzteres: fmincon kann nicht symbolisch rechnen, sondern minimiert numerisch die gewählte Zielfunktion unter Nebenbedingungen. Eine Alternative hab ich auch grad nicht parat, aber vielleicht fällt mir noch was ein. Kannst Du die Ungleichungen mal explizit angeben, so wie Du sie brauchst?

Herzliche Grüße
Bijick
_________________

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

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 31.07.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.07.2008, 17:43     Titel:
  Antworten mit Zitat      
Hallo Bijick,

vielen Dank für die schnelle Antwort. Ich hatte wohl doch zu unrealistische Erwartungen über MatLab (weil diese geniale Software bis jetzt alles gemacht hatte, wo ich auch dachte, dass die es nie schafft).

Meine Ungleichungen

1) Hauptungleichung (nach x) - sehr lang mit allen Symbolen aus 2) - 4)
2) y < x
3) f2 < f1
4) a > 0, b > 0, k > 0 und L>0.

4) sind wirkliche Koeffizente, y, f1 und f2 sind Modellvariablen von denen ich eben wissen will, welche Werte sie annehmen dürfen, damit 1) > 0 bleibt.

Ich könnte evtl. y, f1 und f2 auf Intervalle begrenzen - aber immer noch in R Sad

Vielen Dank!

Mark
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 - 2024 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.