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

nicht-lineare NB als m-file implementieren

 

Anni12

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.11.2009, 16:34     Titel: nicht-lineare NB als m-file implementieren
  Antworten mit Zitat      
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

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.11.2009, 16:48     Titel:
  Antworten mit Zitat      
Hallo,

schau dir doch mal das Beispiel unter
Code:
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Anni12

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.11.2009, 18:21     Titel:
  Antworten mit Zitat      
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

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.11.2009, 18:57     Titel:
  Antworten mit Zitat      
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:
Code:


Zum Rest, bitte meinen vorherigen Post bzw. die Doku von fmincon noch einmal lesen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Anni12

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.11.2009, 20:46     Titel:
  Antworten mit Zitat      
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

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.11.2009, 21:01     Titel:
  Antworten mit Zitat      
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
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.