Я пытаюсь подогнать кривую, используя опцию создания подгонки. Я использую метод NonlinearLeastSquares
Я приложил код ниже. Я пытаюсь вызвать функцию создания соответствия, используя функцию, указанную ниже.
Здесь z_f1
и y_f1
- матрицы порядка 1x101
, p
имеет значение 0.0080
.
Когда я запускаю код, он выдает ошибку:
Комплексное значение, вычисленное функцией модели, примерка не может быть продолжена.
Попробуйте использовать или ужесточить верхнюю и нижнюю границы коэффициентов.
function [fitresult, gof] = createFit_zk_u20_20141113(z_f1, y_f1, p)
[xData, yData] = prepareCurveData( z_f1, y_f1 );
fnc = ['f_ort+sqrt(x_sch^2-l_ort^2)*tan(alpha_ort)+' num2str(p)
'*asin(l_ort/x_sch)'];
ft = fittype( fnc, 'independent', 'x_sch', 'dependent', 'z_sch' );
opts = fitoptions( 'Method', 'NonlinearLeastSquares' );
opts.Display = 'Off';
opts.StartPoint = [0.0357116785741896 0.000849129305868777
0.000933993247757551];
% Fit model to data.
[fitresult, gof] = fit( xData, yData, ft, opts );