Полиномиальное аппроксимирование кривыми
p = polyfit(x,y,n)
[p,S] =
polyfit(x,y,n)
[p,S,mu]
= polyfit(x,y,n)
[
также возвращает p
,S
,mu
]
= polyfit(x
,y
,n
)mu
, который является двухэлементным вектором с центрированием и масштабированием значений. mu(1)
является mean(x)
, и mu(2)
является std(x)
. Используя эти значения, polyfit
сосредотачивает x
в нуле и масштабирует его, чтобы иметь модульное стандартное отклонение,
Это центрирование и преобразование масштабирования улучшают числовые свойства и полинома и алгоритма подбора.
В проблемах со многими точками, увеличивая степень аппроксимации полиномом с помощью polyfit
не всегда приводит к лучшей подгонке. Старшие полиномы могут быть колебательными между точками данных, ведя к более плохой подгонке к данным. В тех случаях вы можете использовать аппроксимацию полиномом младшего разряда (который имеет тенденцию быть более сглаженным между точками), или различный метод, в зависимости от проблемы.
Полиномы являются неограниченными, колебательными функциями по своей природе. Поэтому они не являются подходящими к экстраполированию ограниченных данных или монотонными (увеличение или уменьшение) данные.
polyfit
использует x
, чтобы сформировать матричный V
Вандермонда со столбцами n+1
и строками m = length(x)
, приводящими к линейной системе
который polyfit
решает с p = V\y
. Поскольку столбцы в матрице Вандермонда являются степенями векторного x
, количество условия V
является часто большим для старших подгонок, приводящих к сингулярной матрице коэффициентов. В тех случаях центрирование и масштабирование могут улучшить числовые свойства системы произвести более надежную подгонку.