Dabei sind u_opt, nf_opt,n0_opt,nW_opt und fW_opt Vektoren der Größe 1100x1.
Nun möchte ich gerne noch eine Nebenbedingung mit einer fünften Unbekannte x(5) implementieren. Mein Ansatz ist:
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 ;)
Osbor
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 15.11.2023, 08:20
Titel:
Hallo Harald,
danke für den Hinweis. Leider erhalte ich aber immer noch dieselbe Fehlermeldung.
Code:
Error using
@(x)(exp(x(1)-x(4).*x(2)) .*(u_opt) .^ x(2) .*(x(3) .*(nf_opt - n0_opt) - (nW_opt))) - fW_opt;
Too many input arguments.
kannst du bitte ein reproduzierbares Beispiel (d.h. insbesondere auch die beteiligten Vektoren als .mat-Datei) zur Verfügung stellen?
Beim nochmaligen Lesen ist mir aufgefallen: nonlcon sollte zwei Rückgabeargumente zurückgeben mit Gleichungen und Ungleichungen.
Zudem ist die Nebenbedingung linear. Soll es eine Gleichung oder Ungleichung sein? : Besser umgesetzt wäre es im Fall einer Gleichung dann so:
Wenn x(5) ansonsten nicht vorkommst, warum errechnest du es dann nicht einfach aus den anderen Variablen?
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 ;)
Osbor
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 15.11.2023, 09:06
Titel:
Hallo Harald,
danke für den Hinweis. Es soll eine Gleichung sein. Ich hatte es auch schon mit Aeq und Beq versucht, das führt aber zum gleichen Fehler.
Die Nebenbedingung an der Stelle ist nur als Versuchsfall und Platzhalter gedacht und wird später durch eine kompliziertere Bedingung ersetzt. Mir ging es erstmal um die grundlegende Systematik.
Neben dem schon angesprochenen Problem, dass die nichtlineare Nebenbedingungsfunktion 2 Ausgabeargumente zurückgeben muss, muss x0 entsprechend auch 5 Elemente haben.
Ich muss zugeben, ich verstehe nicht, warum du diese Fehlermeldung bekommst. Noch zwei Rückfragen:
- Welches Release verwendest du?
- Wurden, evtl. versehentlich, Änderungen in lsqnonlin.m vorgenommen? Schau mal, wann die Datei zuletzt geändert wurde. Wo die Datei liegt, findest du heraus mit
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 ;)
Osbor
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 15.11.2023, 13:49
Titel:
Hallo Harald,
interessant, danke. Ich verwende Release 2021a. Dort läuft der Code leider immer noch nicht.
lsqnonlin wurde auch nicht verändert.
Und auch in 2023a gibt er die Warnung:
Code:
Warning: Constraints not supported by selected algorithm. Switching algorithm to interior-point.
die Warnung besagt "nur", dass trust-region reflective keine Nebenbedingungen unterstützt und stattdessen interior-point verwendet wird. Das finde zumindest ich jetzt aber nicht weiter schlimm.
In R2021a hat lsqnonlin noch keine Nebenbedingungen unterstützt.
Empfehlung: immer die Doku aus MATLAB heraus nutzen oder, wenn du die Online-Doku nutzt, sichergehen, dass du sie dir für das verwendete Release ansiehst.
https://www.mathworks.com/help/rele.....a/optim/ug/lsqnonlin.html
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 ;)
Osbor
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 15.11.2023, 15:33
Titel:
Hallo Harald,
alles klar. Vielen Dank für die Unterstützung und Hilfe.
Beste Grüße
Osbor
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.