Я подгоняю модель к экспериментальным данным. Для этой модели я хотел найти параметры, сводя к минимуму сумму квадратных вычетов между экспериментальным и модельным набором данных. Модель имеет вид, показанный ниже:
G (x) = G0 / (1+ (x / x_c) ^ (2 м))
где G0, x_c и m - параметры для оптимизации.
Чтобы определить параметры, я использовал оба инструмента lsqcurvefit и fminunc на Matlab. Для lsqcurvefit я использую выходную матрицу Якоби с инструментом nlparci для определения 95% доверительного интервала и обратного трека для расчета стандартных ошибок, как показано ниже.
[x,resnorm,residual,exitflag,output,lambda,jacobian] = lsqcurvefit(___)
ci = nlparci(x,residual,'Jacobian',J); %Returns 95% confidence interval
err = ((ci(:,2)-ci(:,1))./3.92); %Standard error
Затем я вычислил стандартную ошибку, используя функцию fminunc, минимизировав сумму квадратных остатков. С помощью этого процесса можно получить матрицу гессиана. Матрица гессиана использовалась для определения стандартной ошибки, как показано ниже:
err = sqrt(diag(inv(Hessian))); %Standard error
Проблема в том, что стандартные ошибки, которые я получаю от lsqcurvefit и fminunc, отличаются. Я не уверен, как поступить. Любая помощь будет оценена.
С уважением,
Vin