fsolve не работает с параметризованными дескрипторами функций

Например, я определил следующие дескрипторы функций:

F = @(x, y, z)[x+y+z; x*y*z];  
funcc = @(x, y)F(x, y, 0);  

Звонок

res = fsolve(funcc, [10; 10]);  

Приводит к ошибке:

Error using @(x,y)F(x,y,0)
Not enough input arguments.

Error in fsolve (line 219)
        fuser = feval(funfcn{3},x,varargin{:});

Caused by:
Failure in initial user-supplied objective function evaluation. FSOLVE cannot continue.

Как я могу это исправить?


person ProkopenkoV    schedule 28.05.2016    source источник


Ответы (1)


Перечитайте требования к целевой функции в документации. . Функция должна принимать один входной вектор и возвращать вектор. Вы пытаетесь передать два скаляра. Вместо:

F = @(x, y, z)[x+y+z; x*y*z];
funcc = @(x)F(x(1), x(2), 0);  

Входные данные целевой функции должны соответствовать вашему первоначальному предположению x0 ([10; 10]).

person horchler    schedule 28.05.2016