fit

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

Описание

пример

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 function, и постройте график подгонки.

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, и возвращает качество подгонки информацию и структуру output. Постройте график подгонки и невязки относительно данных.

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 function, и постройте график результатов:

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 (для поверхностей) объект. Смотрите Fit Postprocessing для функций для графического изображения, оценки, вычисления доверительных интервалов, интеграции, дифференциации или изменения вашего объекта подгонки.

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

Область

Значение

sse

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

rsquare

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

dfe

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

adjrsquare

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

rmse

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

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

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

Область

Значение

numobs

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

numparam

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

residuals

Вектор невязок

Jacobian

Якобийская матрица

exitflag

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

iterations

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

funcCount

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

firstorderopt

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

algorithm

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

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