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);

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

Создать шумную сумму двух Гауссовых peaks, одну с малой шириной и одну с большой шириной.

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