Оптимизатор теперь не делает, что делать с другими входными данными least1(ydata,xdata,x,y1,w,A,sz,yprime,y)
.
Вам необходимо указать значения, когда вы назначаете его как функцию стоимости, то есть
@(A) least1(ydata,xdata,x,y1,w,A,sz,yprime,y)
Ключевое слово: дескриптор анонимной функции (то, что у вас есть, это просто дескриптор функции .
Меня очень раздражает то, как вы настраиваете оптимизацию проблема (может быть, это новый путь?).
Я бы сделал это прямо так:
% anonymous function handle to original function
fnc_ogl = @(A) least1(ydata,xdata,x,y1,w,A,sz,yprime,y) -u1;
% create least-squares cost function (you need to have a single cost value
% for fminsearch)
fnc_cst = @(A) sum( fnc_ogl.^2 );
% initial guess
A0 = [11.959,0.069,3.53,4.118*10^(-3)]
% call unconstrained local optimization
[A_opt, fval, exitflag] = fminsearch(fnc,A0)
BTW
- Вы должны выделить размер
U2
заранее с U2 = NaN(1,1000)
для ускорения функции стоимости - Ваш пример не работает, так как отсутствуют все входные данные для
least1
least1
не использует переменные xdata
, x
, y1
и sz
.