Создайте или измените объект опций подгонки
создает объект опций подгонки по умолчанию 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)
Подгонка данных с помощью двухмерной модели библиотеки Гауссова.
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
- Библиотечная модель для подгонкиПодбираемая модель библиотеки, заданная как вектор символов. В этой таблице показаны некоторые общие примеры.
Имя модели библиотеки | Описание |
---|---|
| Линейная полиномиальная кривая |
| Линейная полиномиальная поверхность |
| Квадратичная полиномиальная кривая |
| Кусочно-линейная интерполяция |
| Кусочно-кубическая интерполяция |
| Сглаживание сплайна (кривая) |
| Локальная линейная регрессия (поверхность) |
Список имен библиотечных моделей см. в разделе Имена моделей и уравнения.
Пример: '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'
и один из методов подгонки в этой таблице.
Метод подбора кривой | Описание |
---|---|
| Интерполяция по ближайшему соседу |
| Линейная интерполяция |
| Кусочно-кубическая эрмитовая интерполяция (только кривые) |
| Кубическая сплайн интерполяция |
| Интерполяция поверхности бигармонии |
| Сглаживание сплайна |
| Низкое сглаживание (только поверхности) |
| Линейный метод наименьших квадратов |
| Нелинейные методы наименьших квадратов |
Типы данных: 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
.
Типы данных: logical
'StartPoint'
- Начальные значения для коэффициентовНачальные значения для коэффициентов, заданные как разделенная разделенными запятой парами, состоящая из 'StartPoint'
и вектор. Найдите порядок значений коэффициентов в векторе значении при помощи coeffnames
функция. Для получения примера см. fit
.
Если никакие начальные точки (значение по умолчанию пустого вектора) не передаются в fit
функция, начальные точки для некоторых библиотечных моделей определяются эвристически. Для рациональных моделей и моделей Вейбула и всех пользовательских нелинейных моделей тулбокс выбирает начальные значения по умолчанию для коэффициентов равномерно случайным образом из интервала (0,1). В результате множественные подгонки, использующие одни и те же данные и модель, могут привести к различным подобранным коэффициентам. Чтобы избежать этого, задайте начальные значения для коэффициентов с вектором значением для StartPoint
свойство.
Доступно, когда Method
является NonlinearLeastSquares
.
Типы данных: double
'Algorithm'
- Алгоритм, используемый для процедуры аппроксимацииАлгоритм для использования в процедуре аппроксимации, заданный как разделенная разделенными запятой парами, состоящая из 'Algorithm'
и любой из них 'Levenberg-Marquardt'
или 'Trust-Region'
.
Доступно, когда Method
является NonlinearLeastSquares
.
Типы данных: char
'DiffMaxChange'
- Максимальное изменение коэффициентов для конечных градиентов различия0.1
(по умолчанию)Максимальное изменение коэффициентов для конечных градиентов различия, заданное как разделенная разделенными запятой парами, состоящая из 'DiffMaxChange'
и скаляром.
Доступно, когда Method
является NonlinearLeastSquares
.
Типы данных: double
'DiffMinChange'
- Минимальное изменение коэффициентов для конечных градиентов различия10–8
(по умолчанию)Минимальное изменение коэффициентов для конечных градиентов различия, заданное как разделенная разделенными запятой парами, состоящая из 'DiffMinChange'
и скаляром.
Доступно, когда Method
является NonlinearLeastSquares
.
Типы данных: double
'Display'
- Отобразить опцию в Командном окне'notify'
(по умолчанию) | 'final'
| 'iter'
| 'off'
Параметр отображения в командном окне, заданная как разделенная разделенными запятой парами, состоящая из 'Display'
и один из следующих опций:
'notify'
отображает вывод только, если подгонка не сходится.
'final'
отображает только окончательные выходы.
'iter'
отображает вывод при каждой итерации.
'off'
не отображает выход.
Доступно, когда Method
является NonlinearLeastSquares
.
Типы данных: char
'MaxFunEvals'
- Максимально допустимое количество оценок модели600
(по умолчанию)Максимально допустимое количество вычислений модели, заданное как разделенная разделенными запятой парами, состоящая из 'MaxFunEvals'
и скаляром.
Доступно, когда Method
является NonlinearLeastSquares
.
Типы данных: double
'MaxIter'
- Максимальное количество итераций, допустимых для подгонки 400
(по умолчанию)Максимальное количество итераций, допустимых для подгонки, задается как разделенная разделенными запятой парами, состоящая из 'MaxIter'
и скаляром.
Доступно, когда Method
является NonlinearLeastSquares
.
Типы данных: double
'TolFun'
- Допуск завершения по значению модели10–6
(по умолчанию)Допуск завершения для значения модели, заданный как разделенная разделенными запятой парами, состоящая из 'TolFun'
и скаляром.
Доступно, когда Method
является NonlinearLeastSquares
.
Типы данных: double
'TolX'
- Допуск на разрыв по значениям коэффициентовДопуск на разрыв значений коэффициентов, заданный как разделенная разделенными запятой парами, состоящая из 'TolX'
и скаляром.
Доступно, когда Method
является NonlinearLeastSquares
.
Типы данных: double
fitOptions
- Опции алгоритмаfitoptions
Опции алгоритма, возвращенные как fitoptions
объект.
newOptions
- Новые опции алгоритмаfitoptions
Новые опции алгоритма, возвращенные как fitoptions
объект.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.