|
|
nicht-lineare NB als m-file implementieren |
|
Anni12 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.11.2009, 16:34
Titel: nicht-lineare NB als m-file implementieren
|
 |
Hi Leute,
brauche dringend eure Hilfe: es geht um die Implementierung von nicht-lin. NB einer Funktion (sofern mehrere NB vorhanden sind, soll das m-file die einzelnen Fkt.-Werte in einem Vektor und bei Beadrf die Gradienten (diese in Matrix) zurückgeben.).
Es geht um die Funktion im R^2:
min (-3(x1) -2(x2)) u. d. N.: -(x1)^2 + (x2) + 1 <=0
mein ansatz: function [f_out, grad]= f(x)
=> wie komme ich nun weiter? x1 und x2 gibt man wie ein?
=> wie kann ich das ganze später im prompt aufrufen (passender befehl?)
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.11.2009, 16:48
Titel:
|
 |
Hallo,
schau dir doch mal das Beispiel unter
an. Da ist alles, was du brauchst.
Die Nebenbedingung dort ist zwar linear, eine nichtlineare kann aber ähnlich wie die Zielfunktion definiert werden.
Konkret:
x wird als Vektor übergeben, x1 ist dann x(1) und x2 ist x(2).
Vom Prompt brauchst du die NB gar nicht aufrufen. Mehr zum Aufruf siehe die besagte Doku.
Grüße,
Harald
|
|
|
Anni12 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.11.2009, 18:21
Titel:
|
 |
also mein Ansatz wäre nun folgender:
function [f_out,grad] = f(x)
f_out = -x(1,1)^2+x(2,1)+1;
if nargout == 2
grad = [-2*x(1,1) 1];
end
Leider kommt nachdem ich auf Run gedrückt habe immer diese Meldung:
Input argument "x" is undefined. woran kann das liegen und wie umgehe ich das?
Der Quelltext müsste m.E. stimmen.
Meine nächste Frage ist nun, was ich mit dieser Funktion machen kann und wie ich diese für eine Eingabe im Prompt verweden kann?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.11.2009, 18:57
Titel:
|
 |
Noch einmal: der Sinn der NB ist nicht, dass man sie für sich laufen lässt.
Wenn du sie unbedingt für sich laufen lassen willst, musst du auch x übergeben. Sonst weiß MATLAB, wie die Fehlermeldung ja auch sagt, nicht, was x ist. Beispielaufruf:
Zum Rest, bitte meinen vorherigen Post bzw. die Doku von fmincon noch einmal lesen.
Grüße,
Harald
|
|
|
Anni12 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.11.2009, 20:46
Titel:
|
 |
ok danke. möchte allerdings nicht unbedingt mit fmincon arbeiten. kann ich meinen ansatz (siehe aufgabenstellung) so lassen? ich muss es ja schließlich auch verstehen.
bitte um hilfe.
gruß
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.11.2009, 21:01
Titel:
|
 |
Hallo,
also bis jetzt hast du die NB implementiert... vielleicht auch die Zielfunktion... aber wie willst du die beiden selber miteinander verknüpfen? Ich wüsste zumindest nicht wie.
Der Sinn der Toolboxen (wie Optimization Toolbox) ist eben, dass man nicht den Ablauf im tiefsten Inneren der Funktion verstehen muss, sondern lediglich, was die Eingabeargumente sind und wie die Ausgabeargumente zu interpretieren sind.
Grüße,
Harald
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.
|
|