Полиномиальными моделями для кривых дают
где n + 1 является порядком полинома, n является степенью полинома и 1 ≤ n ≤ 9. Порядок дает количество коэффициентов, чтобы быть подходящим, и степень дает самую высокую степень переменного предиктора.
В этом руководстве многочлены определены в терминах их степени. Например, (кубическим) полиномом третьей степени дают
Полиномы часто используются, когда простая эмпирическая модель требуется. Можно использовать полиномиальную модель для интерполяции или экстраполяции, или охарактеризовать данные с помощью глобальной подгонки. Например, преобразование температуры к напряжению для термопары Типа J в от 0 до 760o диапазон температур описан полиномом седьмой степени.
Примечание
Если вы не требуете глобальной параметрической подгонки и хотите максимизировать гибкость подгонки, кусочные полиномы могут обеспечить лучший подход. Обратитесь к Непараметрическому Подбору кривой для получения дополнительной информации.
Основные преимущества аппроксимаций полиномом включают разумную гибкость для данных, которые являются не слишком сложными, и они линейны, что означает, что подходящий процесс прост. Основной недостаток - то, что подгонки высокой степени могут стать нестабильными. Кроме того, полиномы любой степени могут обеспечить хорошую подгонку в области значений данных, но могут отличаться дико вне той области значений. Поэтому проявите осторожность при экстраполировании полиномами.
Когда вы соответствуете полиномам высокой степени, подходящая процедура использует значения предиктора в качестве базиса для матрицы с очень большими значениями, которые могут привести к масштабирующимся проблемам. Чтобы обработать это, необходимо нормировать данные путем центрирования его в нулевом среднем значении и масштабирования его к модульному стандартному отклонению. Нормируйте данные путем выбора Center и флажка шкалы в приложении Curve Fitting.
Откройте приложение Curve Fitting путем ввода cftool
. В качестве альтернативы нажмите Curve Fitting на вкладке Apps.
В приложении Curve Fitting выберите кривую или поверхностные данные.
Если вы выбираете данные о кривой (X data и Y data, или только Y data против индекса), приложение Curve Fitting создает подгонку кривой по умолчанию, Polynomial
.
Если вы выбираете поверхностные данные (X data, Y data и Z data), приложение Curve Fitting создает поверхностную подгонку по умолчанию, Interpolant
. Измените тип модели от Interpolant
к Polynomial
.
Для кривых, Polynomial
модель приспосабливает полином в x.
Для поверхностей, Polynomial
модель приспосабливает полином в x и y.
Можно задать следующие опции:
Степень для x и входных параметров y:
Для кривых степень x может быть до 9
.
Для поверхностей степень x и y может быть до 5
.
Степень полинома является максимумом x and y степени. См. Условия Полинома Определения для Полиномиальных Поверхностных Подгонок.
Устойчивый линейный метод наименьших квадратов подходящий метод, чтобы использовать (Off
, LAR
, или Bisquare
). Для получения дополнительной информации смотрите Robust
на fitoptions
страница с описанием.
Установите границы или исключите термины путем нажатия на Fit Options. Можно исключить любой термин путем установки его границ на 0.
Посмотрите в панели Results, чтобы видеть термины модели, значения коэффициентов и статистику качества подгонки.
Совет
Если ваши входные переменные имеют совсем другие шкалы, выберите и снимите флажок Center and scale, чтобы видеть различие в подгонке. Сообщения в панели Results предлагают вам, когда масштабирование может улучшить вашу подгонку.
Для примера, сравнивающего различные аппроксимации полиномом, смотрите, Выдерживают сравнение, Помещается в Приложение Curve Fitting.
В этом примере показано, как использовать fit
функционируйте, чтобы соответствовать полиномам к данным. Подгонка шагов и кривые полинома графика и поверхность, задайте подходящие опции, возвратите статистику качества подгонки, вычислите предсказания и покажите доверительные интервалы.
Полиномиальная модель библиотеки является входным параметром к функциям fittype и подгонке. Задайте тип модели poly
сопровождаемый степенью в области x (до 9) или X и Y (до 5). Например, вы задаете квадратичную кривую с 'poly2'
, или кубическая поверхность с 'poly33'
.
Создайте и постройте квадратичную полиномиальную кривую
Загрузите некоторые данные и соответствуйте квадратичному полиному. Задайте квадратичный, или полином второй степени со строкой 'poly2'
.
load census; fitpoly2=fit(cdate,pop,'poly2') % Plot the fit with the plot method. plot(fitpoly2,cdate,pop) % Move the legend to the top left corner. legend('Location','NorthWest' );
fitpoly2 = Linear model Poly2: fitpoly2(x) = p1*x^2 + p2*x + p3 Coefficients (with 95% confidence bounds): p1 = 0.006541 (0.006124, 0.006958) p2 = -23.51 (-25.09, -21.93) p3 = 2.113e+04 (1.964e+04, 2.262e+04)
Создайте кубическую кривую
Соответствуйте кубическому полиному 'poly3'
.
fitpoly3=fit(cdate,pop,'poly3')
plot(fitpoly3,cdate,pop)
Warning: Equation is badly conditioned. Remove repeated data points or try centering and scaling. fitpoly3 = Linear model Poly3: fitpoly3(x) = p1*x^3 + p2*x^2 + p3*x + p4 Coefficients (with 95% confidence bounds): p1 = 3.855e-06 (-4.078e-06, 1.179e-05) p2 = -0.01532 (-0.06031, 0.02967) p3 = 17.78 (-67.2, 102.8) p4 = -4852 (-5.834e+04, 4.863e+04)
Задайте подходящие опции
Кубическое соответствие предупреждает, что уравнение плохо обусловливается, таким образом, необходимо попытаться сосредоточиться и масштабироваться путем определения 'Normalize'
опция. Соответствуйте кубическому полиному и центром и шкалой и устойчивыми подходящими опциями. Устойчивый 'on'
ярлык, эквивалентный 'Bisquare'
, метод по умолчанию для устойчивого линейного метода наименьших квадратов подходящий метод.
fit3=fit(cdate, pop,'poly3','Normalize','on','Robust','on') plot(fit3,cdate,pop)
fit3 = Linear model Poly3: fit3(x) = p1*x^3 + p2*x^2 + p3*x + p4 where x is normalized by mean 1890 and std 62.05 Coefficients (with 95% confidence bounds): p1 = -0.4619 (-1.895, 0.9707) p2 = 25.01 (23.79, 26.22) p3 = 77.03 (74.37, 79.7) p4 = 62.81 (61.26, 64.37)
Узнать, какие параметры можно установить для модели 'poly3'
библиотеки , используйте функцию fitoptions.
fitoptions poly3
ans = Normalize: 'off' Exclude: [] Weights: [] Method: 'LinearLeastSquares' Robust: 'Off' Lower: [1x0 double] Upper: [1x0 double]
Получите статистику качества подгонки
Задайте 'gof'
выходной аргумент, чтобы получить статистику качества подгонки для подгонки кубического полинома.
[fit4, gof]=fit(cdate, pop,'poly3','Normalize','on'); gof
gof = struct with fields: sse: 149.7687 rsquare: 0.9988 dfe: 17 adjrsquare: 0.9986 rmse: 2.9682
Постройте остаточные значения, чтобы оценить подгонку
Чтобы построить остаточные значения, задайте 'residuals'
как тип графика в методе графика.
plot(fit4,cdate, pop,'residuals');
Исследуйте подгонку вне области значений данных
По умолчанию подгонка построена в области значений данных. Чтобы построить подгонку в различной области значений, установите x-пределы осей прежде, чем построить подгонку. Например, чтобы видеть значения, экстраполируемые от подгонки, установите верхний x-предел 2 050.
plot( cdate, pop, 'o' ); xlim( [1900, 2050] ); hold on plot( fit4 ); hold off
Постройте границы предсказания
Чтобы построить границы предсказания, используйте 'predobs'
или 'predfun'
как тип графика.
plot(fit4,cdate,pop,'predobs')
Постройте границы предсказания для кубического полинома до года 2050.
plot( cdate, pop, 'o' ); xlim( [1900, 2050] ) hold on plot( fit4, 'predobs' ); hold off
Получите доверительные границы в новых точках запроса
Оцените пригодное для некоторых новых точек запроса.
cdateFuture = (2000:10:2020).'; popFuture = fit4( cdateFuture )
popFuture = 276.9632 305.4420 335.5066
Вычислите 95% доверительных границ на предсказании для населения в будущем, с помощью метода перед вмятиной.
ci = predint( fit4, cdateFuture, 0.95, 'observation' )
ci = 267.8589 286.0674 294.3070 316.5770 321.5924 349.4208
Постройте предсказанное будущее население, с доверительными интервалами, против подгонки и данных.
plot(cdate, pop, 'o'); xlim([1900, 2040]) hold on plot(fit4) h = errorbar(cdateFuture,popFuture,popFuture-ci(:,1),ci(:,2)-popFuture,'.'); hold off legend('cdate v pop','poly3','prediction','Location','NorthWest')
Соответствуйте и постройте полиномиальную поверхность
Загрузите некоторые поверхностные данные и приспособьте полином четвертой степени в X и Y.
load franke; fitsurface=fit([x,y],z, 'poly44','Normalize','on') plot(fitsurface, [x,y],z)
Linear model Poly44: fitsurface(x,y) = p00 + p10*x + p01*y + p20*x^2 + p11*x*y + p02*y^2 + p30*x^3 + p21*x^2*y + p12*x*y^2 + p03*y^3 + p40*x^4 + p31*x^3*y + p22*x^2*y^2 + p13*x*y^3 + p04*y^4 where x is normalized by mean 1982 and std 868.6 and where y is normalized by mean 0.4972 and std 0.2897 Coefficients (with 95% confidence bounds): p00 = 0.3471 (0.3033, 0.3909) p10 = -0.1502 (-0.1935, -0.107) p01 = -0.4203 (-0.4637, -0.377) p20 = 0.2165 (0.1514, 0.2815) p11 = 0.1717 (0.1175, 0.2259) p02 = 0.03189 (-0.03351, 0.09729) p30 = 0.02778 (0.00749, 0.04806) p21 = 0.01501 (-0.002807, 0.03283) p12 = -0.03659 (-0.05439, -0.01879) p03 = 0.1184 (0.09812, 0.1387) p40 = -0.07661 (-0.09984, -0.05338) p31 = -0.02487 (-0.04512, -0.004624) p22 = 0.0007464 (-0.01948, 0.02098) p13 = -0.02962 (-0.04987, -0.009366) p04 = -0.02399 (-0.0474, -0.0005797)
Все подходящие методы имеют значение по умолчанию properties Normalize
, Exclude
, Weights
, и Method
. Для примера см. Опции Подгонки Определения в Командной строке.
Полиномиальные модели имеют Method
значение свойства LinearLeastSquares
, и дополнительные подходящие свойства опций, показанные в следующей таблице. Для получения дополнительной информации на всех подходящих опциях, смотрите fitoptions
страница с описанием.
Свойство | Описание |
---|---|
| Задает устойчивый линейный метод наименьших квадратов подходящий метод, чтобы использовать. Значениями является |
| Вектор из нижних границ на коэффициентах, которые будут адаптированы. Значением по умолчанию является пустой вектор, указывая, что подгонка неограничена нижними границами. Если границы заданы, длина вектора должна равняться количеству коэффициентов. Отдельные неограниченные нижние границы могут быть заданы |
| Вектор из верхних границ на коэффициентах, которые будут адаптированы. Значением по умолчанию является пустой вектор, указывая, что подгонка неограничена верхними границами. Если границы заданы, длина вектора должна равняться количеству коэффициентов. Отдельные неограниченные верхние границы могут быть заданы |
Можно управлять терминами, чтобы включать в полиномиальную поверхностную модель путем определения степеней для входных параметров X и Y. Если i является степенью в области x, и j является степенью в области y, общая степень полинома является максимумом i и j. Степень x в каждом термине меньше чем или равна i, и степень y в каждом термине меньше чем или равна j. Максимум и для i и для j равняется пяти.
Например:
poly21 Z = p00 + p10*x + p01*y + p20*x^2 + p11*x*y
poly13 Z = p00 + p10*x + p01*y + p11*x*y + p02*y^2 + p12*x*y^2 + p03*y^3
poly55 Z = p00 + p10*x + p01*y +...+ p14*x*y^4 + p05*y^5
Например, если вы задаете x степень 3
и y степень 2
, именем модели является poly32
. Термины модели следуют за формой в этой таблице.
Степень термина | 0 | 1 | 2 |
---|---|---|---|
0 | 1 | y | y2 |
1 | x | x, y | x, y 2 |
2 | x2 | x2y | N/A |
3 | x3 | N/A | N/A |
Общая степень полинома не может превысить максимум i и j. В этом примере, термины, такие как x3y и x2y2 исключены, потому что их степени суммируют к больше, чем 3
. В обоих случаях общей степенью является 4
.
fit
| fittype
| fitoptions
| Имена полиномиальной модели и уравнения