Полином аппроксимирования кривыми
[
также возвращается 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
часто является большим для аппроксимаций высокого порядка, получая матрицу сингулярных коэффициентов. В этих случаях центрирование и масштабирование могут улучшить числовые свойства системы, чтобы получить более надежную подгонку.