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

Nebenbedingungen b. nichtlineare Gleichungs- u. Diff-Systeme

 

Tomaig2000

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.10.2018, 11:27     Titel: Nebenbedingungen b. nichtlineare Gleichungs- u. Diff-Systeme
  Antworten mit Zitat      
Hallo,

kann mir jemand sagen, wie folgender code bei der fmincon funktion in MatLab zu implementieren wäre?

Code:


function y=f(x)

cA0=2; cB0=2;
k1=15E-1;k2=2;

# NB
x(1)=cA0-x(4);
x(2)=cB0-x(4)-x(6);
x(3)=x(4)-x(6);
x(5)=x(6);

# Gleichungen
y(1)=(x(3)*x(4)-k1*x(1))*x(2);
y(2)=x(5)*x(6)-k2*x(2)*x(3);
endfunction

#lb=[0;0];
#ub=[2;2];

[x,obj, info]=fmincon("f", [1; 1]);            #  Wie würde man hier die NB angeben??

display(info);
printf(' Konz. D: %f', x(1,1)); # 1.Spalte erstes Element
printf(' Konz. X: %f', x(2,1)); # 1.Spalte zweites Element
 


Ich selbst benutze nur Octave, möchte aber wissen wie das bei Matlab aussehen würde, entweder würde ich dann wechseln oder überlegen, ob sich das selbst matlab kompatibel programmieren lässt für Octave.
Ich habe mir schon diverse Beispiele für fmincon angesehen, sehe aber nicht, wie diese genannten Bedingungen da einzubringen wären.

Desweiteren: wenn das zu lösende System ein Differentialgleichungssystem mit ähnlichen Nebenbedingungen wäre, welche Funktion ließe sich dann von Matlab verwenden? Wie wäre die anzuwenden?
Dies wäre mir wichtig zu wissen, weil ich ein sehr komplexes Beisspiel habe,
wo ich dieses Feature benötigen würde.

Danke im voraus

Tomagic2000


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.10.2018, 17:59     Titel:
  Antworten mit Zitat      
Hallo,

die unter #NB angegebenen Bedingungen sind linear. Du kannst sie in Matrix-Vektor-Form bringen und dann als Paar Aeq, beq in der Standardsyntax von fmincon angeben.
Die verbleibenden Gleichungen sind nichtlinear und müssen als Function Handle nonlcon in der Standardsyntax von fmincon angegeben werden.

Für DGLen mit Nebenbedingungen siehe das Beispiel "Solve Robertson Problem as Semi-Explicit Differential Algebraic Equations (DAEs)" in der Doku von ode15s. Alternativer Löser ist ode23t.

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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Tommy7571

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.10.2018, 08:36     Titel: Nebenbedingungen b. nichtlineare Gleichungs- u. Diff-Systeme
  Antworten mit Zitat      
Danke für die Antwort.

Leider habe ich einige Probleme mit Deinem Beispiel. Die Funktion Roberts.m des angegebenen Beispiels ist nicht vorhanden. Die Links sind MatLab-Links, die mit Octave nicht funktionieren. Der angegebene Code funktioniert so natürlich nicht. Andere Webseiten mit dem Beispiel scheint es nicht zu geben.
Könntest Du mir den Code des robertsdae,m Skript für MatLAb geben'?

Grüße

Tomagic2000
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.10.2018, 13:38     Titel:
  Antworten mit Zitat      
Hallo,

der gesamte Code wird so nur in MATLAB funktionieren. Die von dir genannte Datei ist direkt in dem Link abgedruckt.

Zitat:
Save robertsdae.m in your current folder to run the example.

und in den Zeilen drunter steht die Datei.

Wenn du noch kein MATLAB hast, lade dir doch eine Testlizenz runter um das auszuprobieren?

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 ;)
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.