exponenta event banner

подгонка

Подгонка кривой или поверхности к данным

Описание

пример

fitobject = fit(x,y,fitType) создает вписывание в данные в x и y с моделью, указанной fitType.

пример

fitobject = fit([x,y],z,fitType) создает поверхность, вписываемую в данные в векторах x, y, и z.

пример

fitobject = fit(x,y,fitType,fitOptions) создает вписывание в данные с использованием параметров алгоритма, заданных fitOptions объект.

пример

fitobject = fit(x,y,fitType,Name,Value) создает вписывание в данные с использованием библиотечной модели fitType с дополнительными опциями, указанными одним или несколькими Name,Value аргументы пары. Использовать fitoptions отображение доступных имен свойств и значений по умолчанию для конкретной модели библиотеки.

пример

[fitobject,gof] = fit(x,y,fitType) возвращает статистику соответствия в структуре gof.

пример

[fitobject,gof,output] = fit(x,y,fitType) возвращает информацию алгоритма подгонки в структуре output.

Примеры

свернуть все

Загрузить некоторые данные, подогнать квадратичную кривую к переменным cdate и popи постройте график соответствия и данных.

load census;
f=fit(cdate,pop,'poly2')
f = 
     Linear model Poly2:
     f(x) = p1*x^2 + p2*x + p3
     Coefficients (with 95% confidence bounds):
       p1 =    0.006541  (0.006124, 0.006958)
       p2 =      -23.51  (-25.09, -21.93)
       p3 =   2.113e+04  (1.964e+04, 2.262e+04)
plot(f,cdate,pop)

Figure contains an axes. The axes contains 2 objects of type line. These objects represent data, fitted curve.

Список имен библиотечных моделей см. в разделе fitType.

Загрузить некоторые данные и подогнать полиномиальную поверхность степени 2 в x и степень 3 в y. Постройте график посадки и данных.

load franke
sf = fit([x, y],z,'poly23')
     Linear model Poly23:
     sf(x,y) = p00 + p10*x + p01*y + p20*x^2 + p11*x*y + p02*y^2 + p21*x^2*y 
                    + p12*x*y^2 + p03*y^3
     Coefficients (with 95% confidence bounds):
       p00 =       1.118  (0.9149, 1.321)
       p10 =  -0.0002941  (-0.000502, -8.623e-05)
       p01 =       1.533  (0.7032, 2.364)
       p20 =  -1.966e-08  (-7.084e-08, 3.152e-08)
       p11 =   0.0003427  (-0.0001009, 0.0007863)
       p02 =      -6.951  (-8.421, -5.481)
       p21 =   9.563e-08  (6.276e-09, 1.85e-07)
       p12 =  -0.0004401  (-0.0007082, -0.0001721)
       p03 =       4.999  (4.082, 5.917)
plot(sf,[x,y],z)

Figure contains an axes. The axes contains 2 objects of type surface, line.

Загрузить franke и преобразовать его в таблицу MATLAB ® .

load franke
T = table(x,y,z);

Укажите переменные в таблице в качестве входных данных для fit и постройте график посадки.

f = fit([T.x, T.y],T.z,'linearinterp');
plot( f, [T.x, T.y], T.z )

Figure contains an axes. The axes contains 2 objects of type surface, line.

Загрузка и печать данных, создание опций подгонки и тип подгонки с помощью fittype и fitoptions затем создайте и выведите на печать аппроксимацию.

Загрузка и печать данных в census.mat.

load census
plot(cdate,pop,'o')

Figure contains an axes. The axes contains an object of type line.

Создайте объект опций подгонки и тип подгонки для пользовательской нелинейной модели y = a (x-b) n, где a и b - коэффициенты, а n - зависящий от проблемы параметр.

fo = fitoptions('Method','NonlinearLeastSquares',...
               'Lower',[0,0],...
               'Upper',[Inf,max(cdate)],...
               'StartPoint',[1 1]);
ft = fittype('a*(x-b)^n','problem','n','options',fo);

Подгоните данные, используя опции подгонки и значение n = 2.

[curve2,gof2] = fit(cdate,pop,ft,'problem',2)
curve2 = 
     General model:
     curve2(x) = a*(x-b)^n
     Coefficients (with 95% confidence bounds):
       a =    0.006092  (0.005743, 0.006441)
       b =        1789  (1784, 1793)
     Problem parameters:
       n =           2
gof2 = struct with fields:
           sse: 246.1543
       rsquare: 0.9980
           dfe: 19
    adjrsquare: 0.9979
          rmse: 3.5994

Подгоните данные, используя опции подгонки и значение n = 3.

[curve3,gof3] = fit(cdate,pop,ft,'problem',3)
curve3 = 
     General model:
     curve3(x) = a*(x-b)^n
     Coefficients (with 95% confidence bounds):
       a =   1.359e-05  (1.245e-05, 1.474e-05)
       b =        1725  (1718, 1731)
     Problem parameters:
       n =           3
gof3 = struct with fields:
           sse: 232.0058
       rsquare: 0.9981
           dfe: 19
    adjrsquare: 0.9980
          rmse: 3.4944

Постройте график результатов подгонки вместе с данными.

hold on
plot(curve2,'m')
plot(curve3,'c')
legend('Data','n=2','n=3')
hold off

Figure contains an axes. The axes contains 3 objects of type line. These objects represent Data, n=2, n=3.

Загрузите некоторые данные и поместите и постройте график кубического многочлена с центром и масштабом (Normalize) и надежные варианты подгонки.

load census;
f=fit(cdate,pop,'poly3','Normalize','on','Robust','Bisquare')
f = 
     Linear model Poly3:
     f(x) = p1*x^3 + p2*x^2 + p3*x + p4
       where x is normalized by mean 1890 and std 62.05
     Coefficients (with 95% confidence bounds):
       p1 =     -0.4619  (-1.895, 0.9707)
       p2 =       25.01  (23.79, 26.22)
       p3 =       77.03  (74.37, 79.7)
       p4 =       62.81  (61.26, 64.37)
plot(f,cdate,pop)

Figure contains an axes. The axes contains 2 objects of type line. These objects represent data, fitted curve.

Определите функцию в файле и используйте ее для создания типа подгонки и подгонки кривой.

Определите функцию в файле MATLAB ®.

function y = piecewiseLine(x,a,b,c,d,k)
% PIECEWISELINE   A line made of two pieces
% that is not continuous.

y = zeros(size(x));

% This example includes a for-loop and if statement
% purely for example purposes.
for i = 1:length(x)
    if x(i) < k,
        y(i) = a + b.* x(i);
    else
        y(i) = c + d.* x(i);
    end
end
end

Сохраните файл.

Определите некоторые данные, создайте тип посадки, определяющий функцию piecewiseLine, создание посадки с использованием типа посадки ftи постройте график результатов.

x = [0.81;0.91;0.13;0.91;0.63;0.098;0.28;0.55;...
0.96;0.96;0.16;0.97;0.96];
y = [0.17;0.12;0.16;0.0035;0.37;0.082;0.34;0.56;...
0.15;-0.046;0.17;-0.091;-0.071];
ft = fittype( 'piecewiseLine( x, a, b, c, d, k )' )
f = fit( x, y, ft, 'StartPoint', [1, 0, 1, 0, 0.5] )
plot( f, x, y ) 

Загрузите некоторые данные и поместите пользовательское уравнение, определяющее точки для исключения. Постройте график результатов.

Загрузите данные и определите пользовательское уравнение и некоторые начальные точки.

[x, y] = titanium;

gaussEqn = 'a*exp(-((x-b)/c)^2)+d'
gaussEqn = 
'a*exp(-((x-b)/c)^2)+d'
startPoints = [1.5 900 10 0.6]
startPoints = 1×4

    1.5000  900.0000   10.0000    0.6000

Создайте две посадки, используя пользовательское уравнение и начальные точки, и определите два различных набора исключенных точек, используя вектор индекса и выражение. Использовать Exclude для удаления отклонений из посадки.

f1 = fit(x',y',gaussEqn,'Start', startPoints, 'Exclude', [1 10 25])
f1 = 
     General model:
     f1(x) = a*exp(-((x-b)/c)^2)+d
     Coefficients (with 95% confidence bounds):
       a =       1.493  (1.432, 1.554)
       b =       897.4  (896.5, 898.3)
       c =        27.9  (26.55, 29.25)
       d =      0.6519  (0.6367, 0.6672)
f2 = fit(x',y',gaussEqn,'Start', startPoints, 'Exclude', x < 800)
f2 = 
     General model:
     f2(x) = a*exp(-((x-b)/c)^2)+d
     Coefficients (with 95% confidence bounds):
       a =       1.494  (1.41, 1.578)
       b =       897.4  (896.2, 898.7)
       c =       28.15  (26.22, 30.09)
       d =      0.6466  (0.6169, 0.6764)

Постройте график обоих вариантов.

plot(f1,x,y)
title('Fit with data points 1, 10, and 25 excluded')

Figure contains an axes. The axes with title Fit with data points 1, 10, and 25 excluded contains 2 objects of type line. These objects represent data, fitted curve.

figure
plot(f2,x,y)
title('Fit with data points excluded such that x < 800')

Figure contains an axes. The axes with title Fit with data points excluded such that x < 800 contains 2 objects of type line. These objects represent data, fitted curve.

Исключенные точки можно определить как переменные, прежде чем вводить их как входные данные в функцию аппроксимации. Следующие шаги позволяют заново создать посадки в предыдущем примере и вывести на печать исключенные точки, а также данные и аппроксимацию.

Загрузите данные и определите пользовательское уравнение и некоторые начальные точки.

[x, y] = titanium;

gaussEqn = 'a*exp(-((x-b)/c)^2)+d'
gaussEqn = 
'a*exp(-((x-b)/c)^2)+d'
startPoints = [1.5 900 10 0.6]
startPoints = 1×4

    1.5000  900.0000   10.0000    0.6000

Определите два набора точек для исключения с помощью вектора индекса и выражения.

exclude1 = [1 10 25];
exclude2 = x < 800;

Создайте две посадки, используя пользовательское уравнение, начальные точки и две различные исключенные точки.

f1 = fit(x',y',gaussEqn,'Start', startPoints, 'Exclude', exclude1);
f2 = fit(x',y',gaussEqn,'Start', startPoints, 'Exclude', exclude2);

Постройте график и поместите, и выделите исключенные данные.

plot(f1,x,y,exclude1)
title('Fit with data points 1, 10, and 25 excluded')

Figure contains an axes. The axes with title Fit with data points 1, 10, and 25 excluded contains 3 objects of type line. These objects represent data, excluded data, fitted curve.

figure; 
plot(f2,x,y,exclude2)
title('Fit with data points excluded such that x < 800')

Figure contains an axes. The axes with title Fit with data points excluded such that x < 800 contains 3 objects of type line. These objects represent data, excluded data, fitted curve.

Для примера фитинга поверхности с исключенными точками загрузите некоторые данные поверхности и создайте и выведите на печать подгонку, определяющую исключенные данные.

load franke
f1 = fit([x y],z,'poly23', 'Exclude', [1 10 25]);
f2 = fit([x y],z,'poly23', 'Exclude', z > 1);

figure
plot(f1, [x y], z, 'Exclude', [1 10 25]);
title('Fit with data points 1, 10, and 25 excluded')

Figure contains an axes. The axes with title Fit with data points 1, 10, and 25 excluded contains 3 objects of type surface, line.

figure
plot(f2, [x y], z, 'Exclude', z > 1);
title('Fit with data points excluded such that z > 1')

Figure contains an axes. The axes with title Fit with data points excluded such that z > 1 contains 3 objects of type surface, line.

Загрузка некоторых данных и подгонка сглаживающей сплайновой кривой через переменные month и pressureи вернуть достоверность информации о соответствии и структуру вывода. Постройте график соответствия и остатков данным.

load enso;
[curve, goodness, output] = fit(month,pressure,'smoothingspline');
plot(curve,month,pressure);
xlabel('Month');
ylabel('Pressure');

Figure contains an axes. The axes contains 2 objects of type line. These objects represent data, fitted curve.

Постройте график остатков по x-данным (month).

plot( curve, month, pressure, 'residuals' )
xlabel( 'Month' )
ylabel( 'Residuals' )

Figure contains an axes. The axes contains 2 objects of type line. These objects represent data, zero line.

Использовать данные в output структура для построения графика остатков по данным y (pressure).

plot( pressure, output.residuals, '.' )
xlabel( 'Pressure' )
ylabel( 'Residuals' )

Figure contains an axes. The axes contains an object of type line.

Создание данных с экспоненциальным трендом, а затем подгонка данных с использованием первого уравнения в библиотеке аппроксимации кривых экспоненциальных моделей (одномерный экспоненциальный). Постройте график результатов.

x = (0:0.2:5)';
y = 2*exp(-0.2*x) + 0.5*randn(size(x));
f = fit(x,y,'exp1');
plot(f,x,y)

Figure contains an axes. The axes contains 2 objects of type line. These objects represent data, fitted curve.

Можно использовать анонимные функции, чтобы упростить передачу других данных в fit функция.

Загрузить данные и набор Emax кому 1 перед определением анонимной функции:

data = importdata( 'OpioidHypnoticSynergy.txt' );
Propofol      = data.data(:,1);
Remifentanil  = data.data(:,2);
Algometry     = data.data(:,3);
Emax = 1;

Определите уравнение модели как анонимную функцию:

Effect = @(IC50A, IC50B, alpha, n, x, y) ...
    Emax*( x/IC50A + y/IC50B + alpha*( x/IC50A )...
    .* ( y/IC50B ) ).^n ./(( x/IC50A + y/IC50B + ...
    alpha*( x/IC50A ) .* ( y/IC50B ) ).^n  + 1);

Использовать анонимную функцию Effect в качестве входных данных для fit и постройте график результатов:

AlgometryEffect = fit( [Propofol, Remifentanil], Algometry, Effect, ...
    'StartPoint', [2, 10, 1, 0.8], ...
    'Lower', [-Inf, -Inf, -5, -Inf], ...
    'Robust', 'LAR' )
plot( AlgometryEffect, [Propofol, Remifentanil], Algometry )

Дополнительные примеры использования анонимных функций и других пользовательских моделей для фитинга см. в разделе fittype функция.

Для свойств Upper, Lower, и StartPoint, необходимо найти порядок записей для коэффициентов.

Создайте тип посадки.

ft = fittype('b*x^2+c*x+a');

Получение имен и порядка коэффициентов с помощью coeffnames функция.

coeffnames(ft)
ans = 3x1 cell
    {'a'}
    {'b'}
    {'c'}

Обратите внимание, что это отличается от порядка коэффициентов в выражении, используемом для создания ft с fittype.

Загрузите данные, создайте посадку и задайте начальные точки.

load enso
fit(month,pressure,ft,'StartPoint',[1,3,5])
ans = 
     General model:
     ans(x) = b*x^2+c*x+a
     Coefficients (with 95% confidence bounds):
       a =       10.94  (9.362, 12.52)
       b =   0.0001677  (-7.985e-05, 0.0004153)
       c =     -0.0224  (-0.06559, 0.02079)

Это присваивает начальные значения коэффициентам следующим образом: a = 1, b = 3, c = 5.

Можно также получить опции подгонки и задать начальные точки и нижние границы, а затем отказаться от использования новых опций.

options = fitoptions(ft)
options =

        Normalize: 'off'
          Exclude: []
          Weights: []
           Method: 'NonlinearLeastSquares'
           Robust: 'Off'
       StartPoint: [1x0 double]
            Lower: [1x0 double]
            Upper: [1x0 double]
        Algorithm: 'Trust-Region'
    DiffMinChange: 1.0000e-08
    DiffMaxChange: 0.1000
          Display: 'Notify'
      MaxFunEvals: 600
          MaxIter: 400
           TolFun: 1.0000e-06
             TolX: 1.0000e-06
options.StartPoint = [10 1 3];
options.Lower = [0 -Inf 0];
fit(month,pressure,ft,options)
ans = 
     General model:
     ans(x) = b*x^2+c*x+a
     Coefficients (with 95% confidence bounds):
       a =       10.23  (9.448, 11.01)
       b =   4.335e-05  (-1.82e-05, 0.0001049)
       c =   5.523e-12  (fixed at bound)

Входные аргументы

свернуть все

Данные для подгонки, заданные как матрица с одним (фитинг кривой) или двумя (фитинг поверхности) столбцами. Можно указать переменные в таблице MATLAB с помощью tablename.varname. Не может содержать Inf или NaN. В подгонке используются только реальные части сложных данных.

Пример: x

Пример: [x,y]

Типы данных: double

Данные для подгонки, указанные как вектор столбца с тем же количеством строк, что и x. Можно указать переменную в таблице MATLAB с помощью tablename.varname. Не может содержать Inf или NaN. В подгонке используются только реальные части сложных данных.

Использовать prepareCurveData или prepareSurfaceData если данные не находятся в векторной форме столбца.

Типы данных: double

Данные для подгонки, указанные как вектор столбца с тем же количеством строк, что и x. Можно указать переменную в таблице MATLAB с помощью tablename.varname. Не может содержать Inf или NaN. В подгонке используются только реальные части сложных данных.

Использовать prepareSurfaceData если данные не находятся в векторной форме столбца. Например, если имеется 3 матрицы или данные находятся в форме вектора сетки, где length(X) = n, length(Y) = m и size(Z) = [m,n].

Типы данных: double

Тип модели для подгонки, указанный как символьный вектор имени модели библиотеки, выражение MATLAB, массив ячеек из членов линейных моделей, анонимная функция или fittype построен с помощью fittype функция. Можно использовать любой из допустимых первых входных данных для fittype в качестве входных данных для fit.

Список имен библиотечных моделей см. в разделе Имена и уравнения моделей. В этой таблице приведены некоторые общие примеры.

Имя модели библиотеки

Описание

'poly1'

Линейная полиномиальная кривая

'poly11'

Линейная полиномиальная поверхность

'poly2'

Квадратичная полиномиальная кривая

'linearinterp'

Кусочно-линейная интерполяция

'cubicinterp'

Кусочно-кубическая интерполяция

'smoothingspline'

Сглаживание сплайна (кривой)

'lowess'

Локальная линейная регрессия (поверхность)

Чтобы подогнать пользовательские модели, используйте выражение MATLAB, массив ячеек из членов линейной модели, анонимную функцию или создайте fittype с fittype и использовать его в качестве fitType аргумент. Пример см. в разделе Вписывание пользовательской модели с помощью анонимной функции. Примеры членов линейной модели см. в разделе fitType функция.

Пример: 'poly2'

Параметры алгоритма, созданные с помощью fitoptions функция. Это альтернатива заданию аргументов пары имя-значение для опций вписывания.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'Lower',[0,0],'Upper',[Inf,max(x)],'StartPoint',[1 1] задает метод подгонки, границы и начальные точки.
Опции для всех методов фитинга

свернуть все

Опция для центрирования и масштабирования данных, заданная как разделенная запятыми пара, состоящая из 'Normalize' и 'on' или 'off'.

Типы данных: char

Точки для исключения из посадки, указанные как разделенная запятыми пара, состоящая из 'Exclude' и один из:

  • Выражение, описывающее логический вектор, например, x > 10.

  • Вектор целых чисел, индексирующий точки, которые требуется исключить, например, [1 10 25].

  • Логический вектор для всех точек данных, где true представляет отклонение, созданное excludedata.

Пример см. в разделе Исключение точек из подгонки.

Типы данных: logical | double

Веса для посадки, указанные как разделенная запятыми пара, состоящая из 'Weights' и вектор того же размера, что и данные ответа y (кривые) или z (поверхности).

Типы данных: double

Значения для назначения зависящим от проблемы константам, указанным как пара, разделенная запятыми, состоящая из 'problem' и массив ячеек с одним элементом на константу, зависящую от задачи. Для получения более подробной информации см. fittype.

Типы данных: cell | double

Параметры сглаживания

свернуть все

Параметр сглаживания, заданный как пара, разделенная запятыми, состоящая из 'SmoothingParam' и скалярное значение от 0 до 1. Значение по умолчанию зависит от набора данных. Доступно, только если тип посадки smoothingspline.

Типы данных: double

Доля точек данных для использования в локальных регрессиях, указанная как разделенная запятыми пара, состоящая из 'Span' и скалярное значение от 0 до 1. Доступно, только если тип посадки lowess или loess.

Типы данных: double

Линейные и нелинейные опции наименьших квадратов

свернуть все

Надежный линейный метод подгонки методом наименьших квадратов, определяемый как разделенная запятыми пара, состоящая из 'Robust' и одно из этих значений:

  • 'LAR' задает метод наименьшего абсолютного остатка.

  • 'Bisquare' задает метод весов bisquare.

Доступно, когда тип посадки Method является LinearLeastSquares или NonlinearLeastSquares.

Типы данных: char

Нижние границы устанавливаемых коэффициентов, определяемые как разделенная запятыми пара, состоящая из: 'Lower' и вектор. Значением по умолчанию является пустой вектор, указывающий, что посадка не ограничена более низкими границами. Если заданы границы, длина вектора должна равняться количеству коэффициентов. Найдите порядок записей коэффициентов в векторном значении с помощью coeffnames функция. Пример см. в разделе Поиск порядка коэффициентов для задания начальных точек и границ. Отдельные неограниченные нижние границы могут быть определены -Inf.

Доступно, когда Method является LinearLeastSquares или NonlinearLeastSquares.

Типы данных: double

Верхние границы устанавливаемых коэффициентов, определяемые как разделенная запятыми пара, состоящая из: 'Upper' и вектор. Значением по умолчанию является пустой вектор, указывающий, что посадка не ограничена верхними границами. Если заданы границы, длина вектора должна равняться количеству коэффициентов. Найдите порядок записей коэффициентов в векторном значении с помощью coeffnames функция. Пример см. в разделе Поиск порядка коэффициентов для задания начальных точек и границ. Отдельные неограниченные верхние границы могут быть определены +Inf.

Доступно, когда Method является LinearLeastSquares или NonlinearLeastSquares.

Типы данных: logical

Нелинейные опции наименьших квадратов

свернуть все

Начальные значения коэффициентов, указанные как разделенная запятыми пара, состоящая из 'StartPoint' и вектор. Найдите порядок записей коэффициентов в векторном значении с помощью coeffnames функция. Пример см. в разделе Поиск порядка коэффициентов для задания начальных точек и границ.

Если начальные точки (значение по умолчанию пустого вектора) не передаются в fit начальные точки для некоторых библиотечных моделей определяются эвристически. Для рациональных моделей и моделей Вейбулла, а также для всех пользовательских нелинейных моделей панель инструментов выбирает начальные значения по умолчанию для коэффициентов, равномерно случайным образом, из интервала (0,1). В результате множественные посадки, использующие одни и те же данные и модель, могут привести к различным подходящим коэффициентам. Чтобы избежать этого, укажите начальные значения для коэффициентов с fitoptions объект или значение вектора для StartPoint значение.

Доступно, когда Method является NonlinearLeastSquares.

Типы данных: double

Алгоритм, используемый для процедуры подгонки, указанный как разделенная запятыми пара, состоящая из 'Algorithm' и либо 'Levenberg-Marquardt' или 'Trust-Region'.

Доступно, когда Method является NonlinearLeastSquares.

Типы данных: char

Максимальное изменение коэффициентов для градиентов конечных разностей, указанных как пара, разделенная запятыми, состоящая из 'DiffMaxChange' и скаляр.

Доступно, когда Method является NonlinearLeastSquares.

Типы данных: double

Минимальное изменение коэффициентов для градиентов конечных разностей, указанных как пара, разделенная запятыми, состоящая из 'DiffMinChange' и скаляр.

Доступно, когда Method является NonlinearLeastSquares.

Типы данных: double

Опция отображения в окне команды, заданная как разделенная запятыми пара, состоящая из 'Display' и один из следующих вариантов:

  • 'notify' вывод отображается только в том случае, если посадка не сходится.

  • 'final' отображает только окончательный результат.

  • 'iter' отображает выходные данные в каждой итерации.

  • 'off' не отображает выходные данные.

Доступно, когда Method является NonlinearLeastSquares.

Типы данных: char

Максимально допустимое количество оценок модели, указанное как пара, разделенная запятыми, состоящая из 'MaxFunEvals' и скаляр.

Доступно, когда Method является NonlinearLeastSquares.

Типы данных: double

Максимальное число итераций, разрешенных для аппроксимации, указанное как пара, разделенная запятыми, состоящая из 'MaxIter' и скаляр.

Доступно, когда Method является NonlinearLeastSquares.

Типы данных: double

Допуск окончания для значения модели, указанного как разделенная запятыми пара, состоящая из 'TolFun' и скаляр.

Доступно, когда Method является NonlinearLeastSquares.

Типы данных: double

Допуск окончания для значений коэффициентов, указанных как разделенная запятыми пара, состоящая из 'TolX' и скаляр.

Доступно, когда Method является NonlinearLeastSquares.

Типы данных: double

Выходные аргументы

свернуть все

Результат подгонки, возвращенный как cfit (для кривых) или sfit (для поверхностей) объект. Функции печати, оценки, вычисления доверительных интервалов, интегрирования, дифференциации или изменения объекта подгонки см. в разделе Постобработка подгонки.

Статистика Goodness-of-fit, возвращенная как gof структура, включающая поля в этой таблице.

Область

Стоимость

sse

Сумма квадратов из-за ошибки

rsquare

R-квадрат (коэффициент определения)

dfe

Степени свободы в ошибке

adjrsquare

Скорректированный коэффициент определения степени свободы

rmse

Среднеквадратичная ошибка (стандартная ошибка)

Информация алгоритма подгонки, возвращенная как output структура, содержащая информацию, связанную с алгоритмом подгонки.

Поля зависят от алгоритма. Например, output структура для нелинейных алгоритмов наименьших квадратов включает в себя поля, показанные в этой таблице.

Область

Стоимость

numobs

Количество наблюдений (значения ответа)

numparam

Количество неизвестных параметров (коэффициентов) для подгонки

residuals

Вектор остатков

Jacobian

Матрица Якобиана

exitflag

Описывает условие выхода алгоритма. Положительные флаги указывают сходимость в пределах допусков. Нулевые флаги указывают, что превышено максимальное количество оценок или итераций функций. Отрицательные флаги указывают на то, что алгоритм не сходился к решению.

iterations

Количество итераций

funcCount

Количество оценок функций

firstorderopt

Мера оптимальности первого порядка (абсолютный максимум градиентных компонентов)

algorithm

Используемый алгоритм подгонки

Представлен до R2006a