У меня есть система уравнений ...Matlab: Решение линейной системы анонимных функций
dF(a,b,c)/da = 0;
dF(a,b,c)/db = 0;
dF(a,b,c)/dc = 0;
где a
, b
, c
неизвестные переменные константы и dF/d*
анонимные функции переменных. Я должен решить для a
, b
и c
в проблеме оптимизации. Когда система сводится к одному уравнению, я использую Matlab's fzero
для решения этой переменной, и она работает. Например
var_a = fzero(@(a) dF(a)/da,0);
После заметив, что fzero
и fsolve
дают совершенно разные ответы для некоторых случаев я сделал некоторый поиск. От чего я gather, fzero
работает только для одного уравнения одной переменной? Поэтому, перейдя к системе уравнений, я бы хотел выбрать наиболее подходящий метод. Я использовал Matlab's solve
в прошлом, но я считаю, что это только для символических выражений? Какой метод наилучшим образом метод решения линейной системы анонимных функций, которые равны нулю?
Я попытался следующие, и вернулись результаты
vars = fsolve(@(V)[dF(V)/da;dF(V)/db;dF(V)/dc],zeros(1,3));
где vars
содержит все 3 переменные, но после прочтения примеров, приведенных в предыдущем link, Fsolve
не мог точно найти нули при х^2 и х^3. Вектор решения в представленной выше системе I - это все нули, а функции - многочлены. Объединив все это, мне интересно, не fsolve
- не лучший выбор?
Могу ли я построить систему звонков на fzero
? Что-то вдоль линий
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)];
, которые я не думаю, что будет работать (как бы каждый dF/d*
получить другие 2 входа переменного?) Или это?
Любые мысли?
Fwiw, я раньше не использовал fsolve, но похоже, что он также может решить проблему. У Mathworks была довольно похожая настройка, 2 переменные, здесь: http://www.mathworks.com/help/optim/ug/fsolve.html – Pursuit