fsolve анонимная функция с двумя входами - PullRequest
4 голосов
/ 27 августа 2010

У меня есть следующая функция:

Eq = @(x1, x2) [x1-6, x2+3];
fsolve(Eq, [4 1])

, но появляется следующая ошибка:

??? Input argument "x2" is undefined.

Error in ==> @(x1,x2)[x1-6,x2+3]


Error in ==> fsolve at 193
    fuser = feval(funfcn{3},x,varargin{:});

Error in ==> Untitled at 6
fsolve(Eq, [4, 1])

Она отлично работает, когда я меняю функцию на функцию с одним входом.Кто-нибудь знает, что здесь происходит?

1 Ответ

8 голосов
/ 27 августа 2010

Вы передаете вектор [4 1] в качестве аргумента x1.

Сделайте это вместо:

Eq = @(x) [x(1)-6, x(2)+3];
fsolve(Eq, [4 1])

fsolve ожидает функцию с одним аргументом (вектором или матрицей), поэтому функция с двумя аргументами не будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...