Полиномиальные модели для кривых задаются
где n + 1 - порядок многочлена, n - степень многочлена и 1 ≤ n ≤ 9. Порядок даёт количество коэффициентов, которые нужно подогнать, а степень даёт наивысшую степень прогнозирующей переменной.
В этом руководстве полиномы описаны с точки зрения их степени. Например, многочлен третьей степени (кубический) задается как
p3x + p4
Многочлены часто используются, когда требуется простая эмпирическая модель. Модель полинома можно использовать для интерполяции или экстраполяции или для характеристики данных с помощью глобального вписывания. Например, преобразование температуры в напряжение для термопары типа J в диапазоне температур от 0 до 760o описывается многочленом седьмой степени.
Примечание
Если не требуется глобальное параметрическое вписывание и требуется максимизировать гибкость вписывания, кусочные многочлены могут обеспечить наилучший подход. Дополнительные сведения см. в разделе Непараметрический фитинг.
Основные преимущества полиномиальных посадок включают разумную гибкость для данных, которые не слишком сложны, и они линейны, что означает, что процесс подгонки прост. Главный недостаток заключается в том, что высокоградусные посадки могут стать нестабильными. Кроме того, многочлены любой степени могут обеспечить хорошую подгонку в пределах диапазона данных, но могут сильно расходиться за пределы этого диапазона. Поэтому будьте осторожны при экстраполяции с полиномами.
При подгонке многочленов высокой степени процедура подгонки использует предикторные значения в качестве основы для матрицы с очень большими значениями, что может привести к проблемам масштабирования. Чтобы справиться с этим, необходимо нормализовать данные путем центрирования их на нулевом среднем уровне и масштабирования до стандартного отклонения единицы измерения. Нормализуйте данные, установив флажок Центр и масштаб (Center and scale) в приложении Фитинг кривой (Curve Fitting).
Откройте приложение «Фитинг кривой», введя cftool. Либо щелкните Фитинг кривой (Curve Fitting) на вкладке Приложения (Apps).
В приложении «Фитинг кривой» выберите данные кривой или поверхности.
При выборе данных кривой (данных X и Y или только данных Y по индексу) приложение «Фитинг кривой» создает аппроксимацию кривой по умолчанию. Polynomial.
Если выбраны данные поверхности (данные X, данные Y и данные Z), приложение «Фитинг кривой» создает подгонку поверхности по умолчанию. Interpolant. Изменение типа модели с Interpolant кому Polynomial.
Для кривых: Polynomial модель соответствует многочлену в x.

Для поверхностей: Polynomial модель соответствует многочлену в x и y.

Можно задать следующие параметры:
Степень для входных данных x и y:
Для кривых степень x может быть до 9.
Для поверхностей степень x и y может быть до 5.
Степень многочлена равна максимуму x и y градусов. См. раздел Определение полиномиальных членов для посадок полиномиальных поверхностей.
Надежный линейный метод подгонки методом наименьших квадратов (Off, LAR, или Bisquare). Для получения более подробной информации см. Robust на fitoptions справочная страница.
Задайте границы или исключите термины, щелкнув Параметры вписывания (Fit Options). Можно исключить любой член, установив для его границ значение 0.
Просмотрите на панели Результаты (Results) термины модели, значения коэффициентов и статистику соответствия.
Совет
Если входные переменные имеют очень разные масштабы, установите и снимите флажок Центр и масштаб (Center and scale), чтобы увидеть разницу в посадке. Сообщения на панели Результаты (Results) показывают, что масштабирование может улучшить подгонку.
Пример сравнения различных полиномиальных посадок см. в разделе Сравнение посадок в приложении «Фитинг кривой».
В этом примере показано, как использовать fit для подгонки многочленов к данным. Шаги вписывают и строят полиномиальные кривые и поверхность, задают опции вписывания, возвращают достоверность статистики вписывания, вычисляют прогнозы и показывают доверительные интервалы.
Модель библиотеки полиномов является входным аргументом для функций 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' выходной аргумент для получения статистики goodness-of-fit для кубической полиномиальной аппроксимации.
[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. Например, чтобы увидеть значения, экстраполированные из аппроксимации, установите верхний предел х 2050.
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% доверительные границы на прогнозе для населения в будущем, используя метод predint.
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)

Все методы фитинга имеют свойства по умолчанию 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^3poly55 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 | xy | xy2 |
| 2 | x2 | x2y | Н/Д |
| 3 | x3 | Н/Д | Н/Д |
Общая степень многочлена не может превышать максимум i и j. В этом примере такие термины, как x3y и x2y2, исключаются, поскольку их степени составляют более 3. В обоих случаях общая степень составляет 4.
fit | fitoptions | fittype | Имена и уравнения полиномиальной модели