Создайте или измените подходящий объект опций
создает подходящий объект fitOptions
= fitoptionsfitOptions
опций по умолчанию.
создает подходящий объект опций по умолчанию для модели библиотеки.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.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)
Алгоритм испытывает затруднения, как обозначено широкими доверительными интервалами для нескольких коэффициентов.
Чтобы помочь алгоритму, задайте нижние границы для неотрицательных амплитуд 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]
libraryModelName
— Модель Library, чтобы соответствоватьМодель Library, чтобы соответствовать в виде вектора символов. Эта таблица показывает некоторые типичные примеры.
Имя модели библиотеки | Описание |
---|---|
| Линейная полиномиальная кривая |
| Линейная полиномиальная поверхность |
| Квадратичная полиномиальная кривая |
| Кусочная линейная интерполяция |
| Кусочная кубичная интерполяция |
| Сглаживание сплайна (кривая) |
| Локальная линейная регрессия (поверхность) |
Для списка имен модели библиотеки смотрите Имена модели и уравнения.
Пример: 'poly2'
Типы данных: char
fitType
— Тип модели, чтобы соответствоватьfittype
Тип модели, чтобы соответствовать в виде fittype
созданный с fittype
функция. Используйте это, чтобы работать с подходящими опциями для пользовательских моделей.
fitOptions
— Опции алгоритмаfitoptions
Опции алгоритма в виде fitoptions
объект создал использование fitoptions
функция.
options1
— Опции алгоритма, чтобы объединитьсяfitoptions
Опции алгоритма, чтобы объединиться, созданное использование fitoptions
функция.
options2
— Опции алгоритма, чтобы объединитьсяfitoptions
Опции алгоритма, чтобы объединиться, созданное использование fitoptions
функция.
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
'Method','NonlinearLeastSquares','Lower',[0,0],'Upper',[Inf,max(x)],'Startpoint',[1 1]
задает подходящий метод, границы и стартовые точки.'Normalize'
— Опция, чтобы сосредоточиться и масштабировать данные'off'
(значение по умолчанию) | 'on'
Опция, чтобы сосредоточиться и масштабировать данные в виде разделенной запятой пары, состоящей из 'Normalize'
и 'on'
или 'off'
.
Типы данных: char
'Exclude'
— Точки, чтобы исключить из подгонкиТочки, чтобы исключить из подгонки в виде разделенной запятой пары, состоящей из 'Exclude'
и один из:
Выражение, описывающее логический вектор, например, x > 10
.
Вектор из целых чисел, индексирующих точки, вы хотите исключить, например, [1 10 25]
.
Логический вектор для всех точек данных, где true
представляет выброс, созданный excludedata
.
Для примеров смотрите fit
.
'Weights'
— Веса для подгонкиВеса для подгонки в виде разделенной запятой пары, состоящей из 'Weights'
и вектор тот же размер как количество точек данных.
Типы данных: double
'Method'
— Подходящий метод'None'
(значение по умолчанию) | вектор символовПодходящий метод в виде разделенной запятой пары, состоящей из 'Method'
и один из подходящих методов в этой таблице.
Подбор кривой методу | Описание |
---|---|
| Интерполяция по ближайшему соседу |
| Линейная интерполяция |
| Кусочная кубическая интерполяция Эрмита (изгибается только), |
| Интерполяция кубическим сплайном |
| Бигармоническая поверхностная интерполяция |
| Сглаживание сплайна |
| Сглаживание Lowess (появляется только), |
| Линейный метод наименьших квадратов |
| Нелинейный метод наименьших квадратов |
Типы данных: char
'SmoothingParam'
— Сглаживание параметраСглаживание параметра в виде разделенной запятой пары, состоящей из 'SmoothingParam'
и скалярное значение между 0 и 1. Значение по умолчанию зависит от набора данных. Только доступный, если Method
SmoothingSpline
.
Типы данных: double
'Span'
— Пропорция точек данных, чтобы использовать в локальных регрессияхПропорция точек данных, чтобы использовать в локальных регрессиях в виде разделенной запятой пары, состоящей из 'Span'
и скалярное значение между 0 и 1. Только доступный, если Method
LowessFit
.
Типы данных: double
'Robust'
— Устойчивый линейный метод наименьших квадратов подходящий метод'off'
(значение по умолчанию) | 'LAR'
| 'Bisquare'
Устойчивый линейный метод наименьших квадратов подходящий метод в виде разделенной запятой пары, состоящей из 'Robust'
и одно из этих значений:
'LAR'
задает наименее абсолютный остаточный метод.
'Bisquare'
задает bisquare метод весов.
Доступный, когда Method
LinearLeastSquares
или NonlinearLeastSquares
.
Типы данных: char
'Lower'
— Нижние границы на коэффициентах, которые будут адаптированыНижние границы на коэффициентах, которые будут адаптированы в виде разделенной запятой пары, состоящей из 'Lower'
и вектор. Значением по умолчанию является пустой вектор, указывая, что подгонка неограничена нижними границами. Если границы заданы, длина вектора должна равняться количеству коэффициентов. Найдите порядок записей для коэффициентов в векторном значении при помощи coeffnames
функция. Для примера смотрите fit
. Отдельные неограниченные нижние границы могут быть заданы -Inf
.
Доступный, когда Method
LinearLeastSquares
или NonlinearLeastSquares
.
Типы данных: double
'Upper'
— Верхние границы на коэффициентах, которые будут адаптированыВерхние границы на коэффициентах, которые будут адаптированы в виде разделенной запятой пары, состоящей из 'Upper'
и вектор. Значением по умолчанию является пустой вектор, указывая, что подгонка неограничена верхними границами. Если границы заданы, длина вектора должна равняться количеству коэффициентов. Найдите порядок записей для коэффициентов в векторном значении при помощи coeffnames
функция. Для примера смотрите fit
. Отдельные неограниченные верхние границы могут быть заданы +Inf
.
Доступный, когда Method
LinearLeastSquares
или NonlinearLeastSquares
.
Типы данных: логический
'StartPoint'
— Начальные значения для коэффициентовНачальные значения для коэффициентов в виде разделенной запятой пары, состоящей из 'StartPoint'
и вектор. Найдите порядок записей для коэффициентов в векторном значении при помощи coeffnames
функция. Для примера смотрите fit
.
Если никакие стартовые точки (значение по умолчанию пустого вектора) не передаются fit
функция, начальные точки для некоторых моделей библиотеки определяются эвристическим образом. Для рационального и моделей Weibull и всех пользовательских нелинейных моделей, тулбокс выбирает начальные значения по умолчанию для коэффициентов однородно наугад от интервала (0,1). В результате несколько подгонок с помощью тех же данных и силы модели приводят к различным подходящим коэффициентам. Чтобы избежать этого, задайте начальные значения для коэффициентов с векторным значением для StartPoint
свойство.
Доступный, когда Method
NonlinearLeastSquares
.
Типы данных: double
'Algorithm'
— Алгоритм, чтобы использовать для подходящей процедурыАлгоритм, чтобы использовать для подходящей процедуры в виде разделенной запятой пары, состоящей из 'Algorithm'
и любой 'Levenberg-Marquardt'
или 'Trust-Region'
.
Доступный, когда Method
NonlinearLeastSquares
.
Типы данных: char
'DiffMaxChange'
— Максимальное изменение в коэффициентах для градиентов конечной разности
(значение по умолчанию)Максимальное изменение в коэффициентах для градиентов конечной разности в виде разделенной запятой пары, состоящей из 'DiffMaxChange'
и скаляр.
Доступный, когда Method
NonlinearLeastSquares
.
Типы данных: double
'DiffMinChange'
— Минимальное изменение в коэффициентах для градиентов конечной разности
(значение по умолчанию)Минимальное изменение в коэффициентах для градиентов конечной разности в виде разделенной запятой пары, состоящей из 'DiffMinChange'
и скаляр.
Доступный, когда Method
NonlinearLeastSquares
.
Типы данных: double
'Display'
— Параметр отображения в Командном окне'notify'
(значение по умолчанию) | 'final'
| 'iter'
| 'off'
Параметр отображения в командном окне в виде разделенной запятой пары, состоящей из 'Display'
и одна из этих опций:
'notify'
отображает вывод, только если подгонка не сходится.
'final'
отображает только окончательный вывод.
'iter'
отображает вывод в каждой итерации.
'off'
не отображает вывода.
Доступный, когда Method
NonlinearLeastSquares
.
Типы данных: char
'MaxFunEvals'
— Максимальное количество оценок модели позволено
(значение по умолчанию)Максимальное количество оценок модели, позволенной в виде разделенной запятой пары, состоящей из 'MaxFunEvals'
и скаляр.
Доступный, когда Method
NonlinearLeastSquares
.
Типы данных: double
'MaxIter'
— Максимальное количество итераций допускало подгонку
(значение по умолчанию)Максимальное количество итераций допускало подгонку в виде разделенной запятой пары, состоящей из 'MaxIter'
и скаляр.
Доступный, когда Method
NonlinearLeastSquares
.
Типы данных: double
'TolFun'
— Допуск завершения на значении модели
(значение по умолчанию)Допуск завершения на значении модели в виде разделенной запятой пары, состоящей из 'TolFun'
и скаляр.
Доступный, когда Method
NonlinearLeastSquares
.
Типы данных: double
'TolX'
— Допуск завершения на содействующих значенияхДопуск завершения на содействующих значениях в виде разделенной запятой пары, состоящей из 'TolX'
и скаляр.
Доступный, когда Method
NonlinearLeastSquares
.
Типы данных: double
fitOptions
— Опции алгоритмаfitoptions
Опции алгоритма, возвращенные как fitoptions
объект.
newOptions
— Новые опции алгоритмаfitoptions
Новые опции алгоритма, возвращенные как fitoptions
объект.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.