Quantcast
Channel: Mein MATLAB Forum - goMatlab.de
Viewing all articles
Browse latest Browse all 28441

Mit lsqnonlin einen struct optimieren

$
0
0
Hallo zusammen! :D Ich versuche mich gerade an nicht-lineare Optimierung mit struct2vector und vector2struct. Die PseudoCode-Struktur sieht folgendermassen aus: main.m state.variable1 = ...; [statevector, template] = struct2vector(state);[state_final, d_final] = lsqnonlin(@mylossfun, statevector, [], [], options, varargin, template); mylossfun.m function loss = mylossfun(statevector, varargin, template) state = vector2struct(statevector, template); variable1 = state.variable1; output = f(variable1); % f ist eine beliebige Funktion % % Code um variable1 zu plotten % loss = g(output); % g ist eine beliebige Funktion Wenn ich mir jetzt die Plots anschaue, verändert sich die variable variable1 über mehrere Iterationen gar nicht. Jetzt frage ich mich, was ich falsch gemacht habe. Meine Vermutung ist, dass loss, welches minimiert werden muss, die Verbindung zu statevector nicht kennt (bzw. die Relation f(x) zu x ist nicht da) und daher alles konstant bleibt. Hat jemand hier einen Vorschlag? Nebenfrage: Wird der Gradient denn von lsqnonlin intern berechnet oder kann man denn in mylossfun als Beihilfe ausrechnen (um die Berechnung zu beschleunigen?)

Viewing all articles
Browse latest Browse all 28441

Trending Articles