exponenta event banner

fitoptions

Создание или изменение объекта параметров посадки

Описание

пример

fitOptions = fitoptions создает объект параметров вписывания по умолчанию fitOptions.

пример

fitOptions = fitoptions(libraryModelName) создает объект параметров вписывания по умолчанию для библиотечной модели.

пример

fitOptions = fitoptions(libraryModelName,Name,Value) создает опции вписывания для указанной библиотечной модели с дополнительными опциями, заданными одним или несколькими Name,Value аргументы пары.

пример

fitOptions = fitoptions(fitType) получает объект параметров вписывания для указанного fitType. Этот синтаксис используется для работы с опциями подгонки для пользовательских моделей.

пример

fitOptions = fitoptions(Name,Value) создает опции вписывания с дополнительными опциями, заданными одним или несколькими Name,Value аргументы пары.

пример

newOptions = fitoptions(fitOptions,Name,Value) изменяет существующий объект параметров вписывания fitOptions и возвращает обновленные параметры вписывания в newOptions с новыми опциями, указанными одним или несколькими Name,Value аргументы пары.

пример

newOptions = fitoptions(options1,options2) объединяет существующие объекты параметров вписывания options1 и options2 в newOptions.

  • Если Method соглашается, непустые значения для свойств в options2 переопределить соответствующие значения в options1 в newOptions.

  • Если Method отличается, newOptions содержит options1 значение для Method и значения из options2 для Normalize, Exclude, и Weights.

Примеры

свернуть все

Создайте объект опций вписывания по умолчанию и задайте параметр для центрирования и масштабирования данных перед подгонкой.

options = fitoptions;
options.Normal = 'on'
options =

    Normalize: 'on'
      Exclude: [1x0 double]
      Weights: [1x0 double]
       Method: 'None'
options = fitoptions('gauss2')
options =

        Normalize: 'off'
          Exclude: []
          Weights: []
           Method: 'NonlinearLeastSquares'
           Robust: 'Off'
       StartPoint: [1x0 double]
            Lower: [-Inf -Inf 0 -Inf -Inf 0]
            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 = fitoptions('poly3', 'Normalize', 'on', 'Robust', 'Bisquare')
options =

    Normalize: 'on'
      Exclude: []
      Weights: []
       Method: 'LinearLeastSquares'
       Robust: 'Bisquare'
        Lower: [1x0 double]
        Upper: [1x0 double]
options = fitoptions('Method', 'LinearLeastSquares')
options =

    Normalize: 'off'
      Exclude: []
      Weights: []
       Method: 'LinearLeastSquares'
       Robust: 'Off'
        Lower: [1x0 double]
        Upper: [1x0 double]

Изменение объекта опций вписывания по умолчанию полезно, если требуется задать Normalize, Exclude, или Weights свойства, а затем подгонка данных с использованием одних и тех же параметров с различными методами подгонки. Например, в следующем примере используются одни и те же опции подгонки для подгонки к различным типам библиотечных моделей.

load census
options = fitoptions;
options.Normalize = 'on';
f1 = fit(cdate,pop,'poly3',options);
f2 = fit(cdate,pop,'exp1',options);
f3 = fit(cdate,pop,'cubicspline',options)
f3 = 
     Cubic interpolating spline:
       f3(x) = piecewise polynomial computed from p
       where x is normalized by mean 1890 and std 62.05
     Coefficients:
       p = coefficient structure

Найдите параметр сглаживания. Зависящие от данных параметры подгонки, такие как smooth возвращены в третьем выходном аргументе fit функция.

load census
[f,gof,out] = fit(cdate,pop,'SmoothingSpline');
smoothparam = out.p
smoothparam = 0.0089

Измените параметр сглаживания по умолчанию для нового вписывания.

options = fitoptions('Method','SmoothingSpline',...
                     'SmoothingParam',0.0098);
[f,gof,out] = fit(cdate,pop,'SmoothingSpline',options);

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

Создайте шумную сумму из двух гауссовых пиков, один с малой шириной, а другой с большой шириной.

a1 = 1; b1 = -1; c1 = 0.05;
a2 = 1; b2 = 1; c2 = 50;
x = (-10:0.02:10)';
gdata = a1*exp(-((x-b1)/c1).^2) + ...
        a2*exp(-((x-b2)/c2).^2) + ...
        0.1*(rand(size(x))-.5);
plot(x,gdata)

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

Подгоните данные, используя двухсрочную модель библиотеки Гаусса.

gfit = fit(x,gdata,'gauss2') 
gfit = 
     General model Gauss2:
     gfit(x) =  a1*exp(-((x-b1)/c1)^2) + a2*exp(-((x-b2)/c2)^2)
     Coefficients (with 95% confidence bounds):
       a1 =      -0.145  (-1.486, 1.195)
       b1 =       9.725  (-14.71, 34.16)
       c1 =       7.117  (-15.84, 30.07)
       a2 =       14.06  (-1.957e+04, 1.96e+04)
       b2 =         607  (-3.193e+05, 3.205e+05)
       c2 =       375.9  (-9.737e+04, 9.812e+04)
plot(gfit,x,gdata)

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

Алгоритм испытывает трудности, о чем свидетельствуют широкие доверительные интервалы для нескольких коэффициентов.

Чтобы помочь алгоритму, укажите нижние границы для неотрицательных амплитуд a1 и a2 и ширины c1, c2.

options = fitoptions('gauss2', 'Lower', [0 -Inf 0 0 -Inf 0]);

Можно также задать свойства опций вписывания с помощью формы options.Property = NewPropertyValue.

options = fitoptions('gauss2');
options.Lower = [0 -Inf 0 0 -Inf 0];

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

gfit = fit(x,gdata,'gauss2',options) 
gfit = 
     General model Gauss2:
     gfit(x) =  a1*exp(-((x-b1)/c1)^2) + a2*exp(-((x-b2)/c2)^2)
     Coefficients (with 95% confidence bounds):
       a1 =       1.005  (0.966, 1.044)
       b1 =          -1  (-1.002, -0.9988)
       c1 =      0.0491  (0.0469, 0.0513)
       a2 =      0.9985  (0.9958, 1.001)
       b2 =      0.8059  (0.3879, 1.224)
       c2 =        50.6  (46.68, 54.52)
plot(gfit,x,gdata)

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

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

Создайте параметры подгонки и задайте нижние границы.

options = fitoptions('gauss2', 'Lower', [0 -Inf 0 0 -Inf 0])
options =

        Normalize: 'off'
          Exclude: []
          Weights: []
           Method: 'NonlinearLeastSquares'
           Robust: 'Off'
       StartPoint: [1x0 double]
            Lower: [0 -Inf 0 0 -Inf 0]
            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

Создайте новую копию опций посадки и измените надежный параметр.

newoptions = fitoptions(options, 'Robust','Bisquare')
newoptions =

        Normalize: 'off'
          Exclude: []
          Weights: []
           Method: 'NonlinearLeastSquares'
           Robust: 'Bisquare'
       StartPoint: [1x0 double]
            Lower: [0 -Inf 0 0 -Inf 0]
            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

Комбинирование опций подгонки.

options2 = fitoptions(options, newoptions)
options2 =

        Normalize: 'off'
          Exclude: []
          Weights: []
           Method: 'NonlinearLeastSquares'
           Robust: 'Bisquare'
       StartPoint: [1x0 double]
            Lower: [0 -Inf 0 0 -Inf 0]
            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

Создайте линейный тип аппроксимации модели.

lft = fittype({'x','sin(x)','1'})
lft = 
     Linear model:
     lft(a,b,c,x) = a*x + b*sin(x) + c

Получение параметров подгонки для типа подгонки lft.

fo = fitoptions(lft)
fo =

    Normalize: 'off'
      Exclude: []
      Weights: []
       Method: 'LinearLeastSquares'
       Robust: 'Off'
        Lower: [1x0 double]
        Upper: [1x0 double]

Задайте опцию нормализованного вписывания.

fo.Normalize = 'on'
fo =

    Normalize: 'on'
      Exclude: []
      Weights: []
       Method: 'LinearLeastSquares'
       Robust: 'Off'
        Lower: [1x0 double]
        Upper: [1x0 double]

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

свернуть все

Библиотечная модель для подгонки, заданная как символьный вектор. В этой таблице приведены некоторые общие примеры.

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

Описание

'poly1'

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

'poly11'

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

'poly2'

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

'linearinterp'

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

'cubicinterp'

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

'smoothingspline'

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

'lowess'

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

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

Пример: 'poly2'

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

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

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

Параметры алгоритма для объединения, созданные с помощью fitoptions функция.

Параметры алгоритма для объединения, созданные с помощью fitoptions функция.

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

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

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

свернуть все

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

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

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

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

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

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

Примеры см. в разделе fit.

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

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

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

Метод подгонки

Описание

'NearestInterpolant'

Интерполяция ближайшего соседа

'LinearInterpolant'

Линейная интерполяция

'PchipInterpolant'

Кусочно-кубическая эрмитовая интерполяция (только кривые)

'CubicSplineInterpolant'

Интерполяция кубического сплайна

'BiharmonicInterpolant'

Биармоническая интерполяция поверхности

'SmoothingSpline'

Сглаживание сплайна

'LowessFit'

Бесступенчатое сглаживание (только поверхности)

'LinearLeastSquares'

Линейные наименьшие квадраты

'NonlinearLeastSquares'

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

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

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

свернуть все

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

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

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

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

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

Если начальные точки (значение по умолчанию пустого вектора) не передаются в fit начальные точки для некоторых библиотечных моделей определяются эвристически. Для рациональных моделей и моделей Вейбулла, а также для всех пользовательских нелинейных моделей панель инструментов выбирает начальные значения по умолчанию для коэффициентов, равномерно случайным образом, из интервала (0,1). В результате множественные посадки, использующие одни и те же данные и модель, могут привести к различным подходящим коэффициентам. Во избежание этого укажите начальные значения для коэффициентов со значением вектора для 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

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

свернуть все

Параметры алгоритма, возвращенные как fitoptions объект.

Новые параметры алгоритма, возвращенные как fitoptions объект.

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