fitoptions

Создайте или измените подходящий объект опций

Синтаксис

fitOptions = fitoptions
fitOptions = fitoptions(libraryModelName)
fitOptions = fitoptions(libraryModelName,Name,Value)
fitOptions = fitoptions(fitType)
fitOptions = fitoptions(Name,Value)
newOptions = fitoptions(fitOptions,Name,Value)
newOptions = fitoptions(options1,options2)

Описание

пример

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)

Соответствуйте данным с помощью модели библиотеки Gaussian 2D термина.

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.485, 1.195)
       b1 =       9.725  (-14.71, 34.15)
       c1 =       7.117  (-15.84, 30.07)
       a2 =       14.06  (-1.956e+04, 1.959e+04)
       b2 =         607  (-3.193e+05, 3.205e+05)
       c2 =       375.9  (-9.735e+04, 9.81e+04)
plot(gfit,x,gdata)

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

Чтобы помочь алгоритму, задайте нижние границы для неотрицательных амплитуд 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)

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

Создайте подходящие опции и установите нижние границы.

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]

Входные параметры

свернуть все

Модель Library, чтобы соответствовать, заданный как вектор символов. Эта таблица показывает некоторые типичные примеры.

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

Описание

'poly1'

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

'poly11'

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

'poly2'

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

'linearinterp'

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

'cubicinterp'

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

'smoothingspline'

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

'lowess'

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

Для списка имен модели библиотеки смотрите Имена модели и уравнения.

Пример: 'poly2'

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

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

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

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

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (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'

Сглаживание Lowess (появляется только),

'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.

Типы данных: логический

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

свернуть все

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

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

Для просмотра документации необходимо авторизоваться на сайте