Как указано в комментариях, fzero
был вызван со следующими аргументами.
drho0_dthetafi.mu = fzero( ...
'betadrho0_dthetaf' ...
, 0 ...
, optimset('fzero') ...
, dF_dthetafi.mu ...
, PHI2 ...
, F ...
, dPHI2_dZi ...
, dZi_dthetafi.mu ...
, dPHI2_drho0 ...
, detJ ...
, WIP ...
);
Из документации (help fzero
) видно, что указанный выше вызов не является действительным fzero
call:
-- fzero (FUN, X0, OPTIONS)
Find a zero of a univariate function
FUN is a function handle, inline function, or string containing the
name of the function to evaluate.
X0 should be a two-element vector specifying two points which
bracket a zero. If X0 is a single scalar then several nearby and distant
values are probed in an attempt to obtain a valid bracketing. If this is not
successful, the function fails.
OPTIONS is a structure specifying additional options.
To initialize an options structure with default values for 'fzero'
use 'options = optimset ("fzero")'.
Итак, как видите, дополнительные аргументы после 'optimset' вызывают ошибку.
Я предполагаю, что дополнительные аргументы были предназначены для быть аргументами функции betadrho0_dthetaf
. В общем случае функция FUN ожидает один аргумент (поскольку он одномерный). Если ваша функция betadrho0_dthetaf
ожидает ряд других параметров, то вместо использования ее в fzero через строку оберните ее вокруг дескриптора анонимной функции, который делает только один аргумент и использует вашу намеченную функцию внутри себя. чтобы рассчитать ожидаемый результат, например
drho0_dthetafi.mu = fzero( ...
@(x) betadrho0_dthetaf( ...
x ...
, dF_dthetafi.mu ...
, PHI2 ...
, F ...
, dPHI2_dZi ...
, dZi_dthetafi.mu ...
, dPHI2_drho0 ...
, detJ ...
, WIP ...
) ...
, 0 ...
, optimset('fzero') ...
);
или что-то в том же духе, в зависимости от того, как вы будете вызывать эту бета-функцию.