Ich habe ein System von Gleichungen ...Matlab: ein lineares System von anonymen Funktionen Solving
dF(a,b,c)/da = 0;
dF(a,b,c)/db = 0;
dF(a,b,c)/dc = 0;
wo a
, b
, c
sind unbekannte Variable Konstanten und dF/d*
sind anonyme Funktionen der Variablen. Ich muss für a
, b
und c
in einem Optimierungsproblem lösen. Wenn das System auf nur eine Gleichung reduziert wird, verwende ich Matlabs fzero
, um nach der Variablen zu suchen, und es funktioniert. Zum Beispiel
var_a = fzero(@(a) dF(a)/da,0);
Nachdem ich bemerkte, dass fzero
und fsolve
für einige Fälle dramatisch unterschiedliche Antworten gebe ich einige der Suche tat. Von was ich gather, fzero
funktioniert nur für eine einzelne Gleichung einer einzelnen Variablen? Wenn ich zu einem Gleichungssystem übergehe, würde ich gerne die am besten geeignete Methode wählen. Ich habe Matlab solve
in der Vergangenheit verwendet, aber ich glaube, dass das nur für symbolische Ausdrücke ist? Was ist die beste Methode zur Lösung eines linearen Systems von anonymen Funktionen, die alle gleich Null sind?
habe ich versucht, die folgenden, und bekam zurück Ergebnisse
vars = fsolve(@(V)[dF(V)/da;dF(V)/db;dF(V)/dc],zeros(1,3));
wo vars
alle drei Variablen enthält, aber nach den Beispielen in der vorherigen link Lesen, Fsolve
nicht genau die Nullstellen für x^2 finden konnte, und x^3. Der Lösungsvektor in dem oben dargestellten System ist nur Nullen und die Funktionen sind Polynome. Wenn ich das alles zusammenlege, frage ich mich, ob fsolve
nicht die beste Wahl ist?
Kann ich ein System von Anrufen zu fzero
aufbauen? Etwas nach dem Vorbild von
vars = [fzero(@(a) dF(a,b,c)/da,0);
fzero(@(b) dF(a,b,c)/db,0);
fzero(@(c) dF(a,b,c)/dc,0)];
die ich glaube nicht funktionieren würde (wie jeder dF/d*
die anderen 2 variable Eingaben bekommen würde?) Oder wäre es?
Irgendwelche Gedanken?
Fwiw, ich habe fsolve vorher noch nicht benutzt, aber es sieht so aus, als könnte es auch das Problem lösen. Mathworks hatte ein ziemlich ähnliches Setup, 2 Variablen, hier: http://www.mathworks.com/help/optim/ug/fsolve.html – Pursuit