numpy.ma.polyfit
-
numpy.ma.polyfit(x, y, deg, rcond=None, full=False, w=None, cov=False)[source] -
Наименьшие квадраты полиномиальной аппроксимации.
Находит полином
p(x) = p[0] * x**deg + ... + p[deg]степениdeg, аппроксимирующий точки(x, y). Возвращает вектор коэффициентовp, минимизирующий среднеквадратическую ошибку.Параметры: -
x : array_like, shape (M,) -
Координаты x M выборочных точек
(x[i], y[i]). -
y : array_like, shape (M,) or (M, K) -
Координаты y выборочных точек. Несколько наборов выборочных точек с одинаковыми координатами x можно подогнать одновременно, передавая двумерный массив, содержащий один набор данных в каждом столбце.
-
deg : int -
Степень аппроксимирующего полинома
-
rcond : float, optional -
Относительное число обусловленности аппроксимации. Сингулярные значения, меньшие этого значения по отношению к наибольшему сингулярному значению, будут игнорироваться. Значение по умолчанию равно len(x)*eps, где eps — относительная точность типа float, примерно 2e-16 в большинстве случаев.
-
full : bool, optional -
Переключатель, определяющий характер возвращаемого значения. Если значение False (значение по умолчанию), возвращаются только коэффициенты, если True — также возвращаются диагностические данные из разложения по сингулярным значениям.
-
w : array_like, shape (M,), optional -
Веса, применяемые к координатам y выборочных точек. Для гауссовых неопределённостей используйте 1/sigma (а не 1/sigma**2).
-
cov : bool, optional -
Возвращает оценку и ковариационную матрицу оценки. Если full = True, то cov не возвращается.
Возвращаемое значение: -
p : ndarray, shape (deg + 1,) or (deg + 1, K) -
Коэффициенты полинома, старший по степени вначале. Если
yбыло двумерным, коэффициенты дляk-го набора данных находятся вp[:,k]. - residuals, rank, singular_values, rcond
-
Присутствуют только если
full= True. Остатки полиномиальной аппроксимации, эффективный ранг матрицы коэффициентов Вандермонда, её сингулярные значения и указанное значениеrcond. Для более подробной информации см.linalg.lstsq. -
V : ndarray, shape (M,M) or (M,M,K) -
Присутствуют только если
full= False иcov`=True. The covariance matrix of the polynomial coefficient estimates. The diagonal of this matrix are the variance estimates for each coefficient. If y is a 2-D array, then the covariance matrix for the `k-й набор данных находится вV[:,:,k]
Предупреждения: - RankWarning
-
Ранг матрицы коэффициентов в аппроксимации наименьших квадратов недостаточен. Предупреждение выводится только если
full= False.Предупреждения можно отключить, используя
>>> import warnings >>> warnings.simplefilter('ignore', np.RankWarning)
См. также
-
polyval - Вычисление значений полинома.
-
linalg.lstsq - Вычисляет аппроксимацию наименьших квадратов.
-
scipy.interpolate.UnivariateSpline - Вычисляет аппроксимацию сплайнами.
Примечания
Любые значения, замаскированные в x, распространяются на y, и наоборот.
Решение минимизирует среднеквадратическую ошибку
-
<img alt="E = \sum_{j=0}^k |p(x_j) - y_j|^2" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4KPCEtLSBUaGlzIGZpbGUgd2FzIGdlbmVyYXRlZCBieSBkdmlzdmdtIDIuMy41IC0tPgo8c3ZnIGhlaWdodD0nMzUuODY1NDU5cHQnIHZlcnNpb249JzEuMScgdmlld0JveD0nMTc5Ljg5NDA3NyA3OS45MDAzNzEgMTA1Ljk2NTMwNSAzNS44NjU0NTknIHdpZHRoPScxMDUuOTY1MzA1cHQnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnPgo8ZGVmcz4KPHBhdGggZD0nTTcuODc4NDU2IC0yLjc0OTY4OUM4LjA4MTY5NCAtMi43NDk2ODkgOC4yOTY4ODcgLTIuNzQ5Njg5IDguMjk2ODg3IC0yLjk4ODc5MlM4LjA4MTY5NCAtMy4yMjc4OTUgNy44Nzg0NTYgLTMuMjI3ODk1SDEuNDEwNzFDMS4yMDc0NzIgLTMuMjI3ODk1IDAuOTkyMjc5IC0zLjIyNzg5NSAwLjk5MjI3OSAtMi45ODg3OTJTMS4yMDc0NzIgLTIuNzQ5Njg5IDEuNDEwNzEgLTIuNzQ5Njg5SDcuODc4NDU2WicgaWQ9J2cxLTAnLz4KPHBhdGggZD0nTTEuOTAwODcyIC04LjUzNTk5QzEuOTAwODcyIC04Ljc1MTE4MyAxLjkwMDg3MiAtOC45NjYzNzYgMS42NjE3NjggLTguOTY2Mzc2UzEuNDIyNjY1IC04Ljc1MTE4MyAxLjQyMjY2NSAtOC41MzU5OVYyLjU1ODQwNkMxLjQyMjY2NSAyLjc3MzU5OSAxLjQyMjY2NSAyLjk4ODc5MiAxLjY2MTc2OCAyLjk4ODc5MlMxLjkwMDg3MiAyLjc3MzU5OSAxLjkwMDg3MiAyLjU1ODQwNlYtOC41MzU5OVonIGlkPSdnMS0xMDYnLz4KPHBhdGggZD0nTTMuODk3Mzg1IC0yLjU0MjQ2NkMzLjg5NzM4NSAtMy4zOTUyNjggMy44MDk3MTQgLTMuOTEzMzI1IDMuNTQ2NyAtNC40MjM0MTJDMy4xOTYwMTUgLTUuMTI0NzgyIDIuNTUwNDM2IC01LjMwMDEyNSAyLjExMjA4IC01LjMwMDEyNUMxLjEwNzg0NiAtNS4zMDAxMjUgMC43NDEyMiAtNC41NTA5MzQgMC42Mjk2MzkgLTQuMzI3NzcxQzAuMzQyNzE1IC0zLjc0NTk1MyAwLjMyNjc3NSAtMi45NTY5MTIgMC4zMjY3NzUgLTIuNTQyNDY2QzAuMzI2Nzc1IC0yLjAxNjQzOCAwLjM1MDY4NSAtMS4yMTE0NTcgMC43MzMyNSAtMC41NzM4NDhDMS4wOTk4NzUgMC4wMTU5NCAxLjY4OTY2NCAwLjE2NzM3MiAyLjExMjA4IDAuMTY3MzcyQzIuNDk0NjQ1IDAuMTY3MzcyIDMuMTgwMDc1IDAuMDQ3ODIxIDMuNTc4NTggLTAuNzQxMjJDMy44NzM0NzQgLTEuMzE1MDY4IDMuODk3Mzg1IC0yLjAyNDQwOCAzLjg5NzM4NSAtMi41NDI0NjZaTTIuMTEyMDggLTAuMDU1NzkxQzEuODQxMDk2IC0wLjA1NTc5MSAxLjI5MTE1OCAtMC4xODMzMTMgMS4xMjM3ODYgLTEuMDIwMTc0QzEuMDM2MTE1IC0xLjQ3NDQ3MSAxLjAzNjExNSAtMi4yMjM2NjEgMS4wMzYxMTUgLTIuNjM4MTA3QzEuMDM2MTE1IC0zLjE4ODA0NSAxLjAzNjExNSAtMy43NDU5NTMgMS4xMjM3ODYgLTQuMTg0MzA5QzEuMjkxMTU4IC00Ljk5NzI2IDEuOTEyODI3IC01LjA3Njk2MSAyLjExMjA4IC01LjA3Njk2MUMyLjM4MzA2NCAtNS4wNzY5NjEgMi45MzMwMDEgLTQuOTQxNDY5IDMuMDkyNDAzIC00LjIxNjE4OUMzLjE4ODA0NSAtMy43Nzc4MzMgMy4xODgwNDUgLTMuMTgwMDc1IDMuMTg4MDQ1IC0yLjc0OTY4OUMzLjE4ODA0NSAtMi4xNjc4NyAzLjE4ODA0NSAtMS40NTA1NiAzLjA5MjQwMyAtMS4wMDQyMzRDMi45MjUwMzEgLTAuMTY3MzcyIDIuMzc1MDkzIC0wLjA1NTc5MSAyLjExMjA4IC0wLjA1NTc5MVonIGlkPSdnNC00OCcvPgo8cGF0aCBkPSdNMi4yNDc1NzIgLTEuNjI1OTAzQzIuMzc1MDkzIC0xLjc0NTQ1NSAyLjcwOTgzOCAtMi4wMDg0NjggMi44MzczNiAtMi4xMjAwNUMzLjMzMTUwNyAtMi41NzQzNDYgMy44MDE3NDMgLTMuMDEyNzAyIDMuODAxNzQzIC0zLjczNzk4M0MzLjgwMTc0MyAtNC42ODY0MjYgMy4wMDQ3MzIgLTUuMzAwMTI1IDIuMDA4NDY4IC01LjMwMDEyNUMxLjA1MjA1NSAtNS4zMDAxMjUgMC40MjI0MTYgLTQuNTc0ODQ0IDAuNDIyNDE2IC0zLjg2NTUwNEMwLjQyMjQxNiAtMy40NzQ5NjkgMC43MzMyNSAtMy40MTkxNzggMC44NDQ4MzIgLTMuNDE5MTc4QzEuMDEyMjA0IC0zLjQxOTE3OCAxLjI1OTI3OCAtMy41Mzg3MyAxLjI1OTI3OCAtMy44NDE1OTRDMS4yNTkyNzggLTQuMjU2MDQgMC44NjA3NzIgLTQuMjU2MDQgMC43NjUxMzEgLTQuMjU2MDRDMC45OTYyNjQgLTQuODM3ODU4IDEuNTMwMjYyIC01LjAzNzExMSAxLjkyMDc5NyAtNS4wMzcxMTFDMi42NjIwMTcgLTUuMDM3MTExIDMuMDQ0NTgzIC00LjQwNzQ3MiAzLjA0NDU4MyAtMy43Mzc5ODNDMy4wNDQ1ODMgLTIuOTA5MDkxIDIuNDYyNzY1IC0yLjMwMzM2MiAxLjUyMjI5MSAtMS4zMzg5NzlMMC41MTgwNTcgLTAuMzAyODY0QzAuNDIyNDE2IC0wLjIxNTE5MyAwLjQyMjQxNiAtMC4xOTkyNTMgMC40MjI0MTYgMEgzLjU3MDYxTDMuODAxNzQzIC0xLjQyNjY1SDMuNTU0NjdDMy41MzA3NiAtMS4yNjcyNDggMy40NjY5OTkgLTAuODY4NzQyIDMuMzcxMzU3IC0wLjcxNzMxQzMuMzIzNTM3IC0wLjY1MzU0OSAyLjcxNzgwOCAtMC42NTM1NDkgMi41OTAyODYgLTAuNjUzNTQ5SDEuMTcxNjA2TDIuMjQ3NTcyIC0xLjYyNTkwMVonIGlkPSdnNC01MCcvPgo8cGF0aCBkPSdNNS44MjYxNTIgLTIuNjU0MDQ3QzUuOTQ1NzA0IC0yLjY1NDA0NyA2LjEwNTEwNiAtMi42NTQwNDcgNi4xMDUxMDYgLTIuODM3MzZTNS45MTM4MjMgLTMuMDIwNjcyIDUuNzk0MjcxIC0zLjAyMDY3MkgwLjc4MTA3MUMwLjY2MTUxOSAtMy4wMjA2NzIgMC40NzAyMzcgLTMuMDIwNjcyIDAuNDcwMjM3IC0yLjgzNzM2UzAuNjI5NjM5IC0yLjY1NDA0NyAwLjc0OTE5MSAtMi42NTQwNDdINS44MjYxNTJaTTUuNzk0MjcxIC0wLjk2NDM4NEM1LjkxMzgyMyAtMC45NjQzODQgNi4xMDUxMDYgLTAuOTY0Mzg0IDYuMTA1MTA2IC0xLjE0NzY5NlM1Ljk0NTcwNCAtMS4zMzEwMDkgNS44MjYxNTIgLTEuMzMxMDA5SDAuNzQ5MTkxQzAuNjI5NjM5IC0xLjMzMTAwOSAwLjQ3MDIzNyAtMS4zMzEwMDkgMC40NzAyMzcgLTEuMTQ3Njk2UzAuNjYxNTE5IC0wLjk2NDM4NCAwLjc4MTA3MSAtMC45NjQzODRINS43OTQyNzFaJyBpZD0nZzQtNjEnLz4KPHBhdGggZD0nTTE1LjEzNTI0MyAxNi43MzcyMzVMMTYuNTgxODE4IDEyLjkxMTU4MkgxNi4yODI5MzlDMTUuODE2Njg3IDE0LjE1NDkxOSAxNC41NDk0NCAxNC45Njc4NyAxMy4xNzQ1OTUgMTUuMzI2NTI2QzEyLjkyMzUzNyAxNS4zODYzMDEgMTEuNzUxOTMgMTUuNjk3MTM2IDkuNDU2NTM4IDE1LjY5NzEzNkgyLjI0NzU3Mkw4LjMzMjc1MiA4LjU1OTlDOC40MTY0MzggOC40NjQyNTkgOC40NDAzNDkgOC40MjgzOTQgOC40NDAzNDkgOC4zNjg2MThDOC40NDAzNDkgOC4zNDQ3MDcgOC40NDAzNDkgOC4zMDg4NDIgOC4zNTY2NjMgOC4xODkyOUwyLjc4NTU1NCAwLjU3Mzg0OEg5LjMzNjk4NkMxMC45Mzg5NzkgMC41NzM4NDggMTIuMDI2ODk5IDAuNzQxMjIgMTIuMTM0NDk2IDAuNzY1MTMxQzEyLjc4MDA3NSAwLjg2MDc3MiAxMy44MjAxNzQgMS4wNjQwMSAxNC43NjQ2MzMgMS42NjE3NjhDMTUuMDYzNTEyIDEuODUzMDUxIDE1Ljg3NjQ2MyAyLjM5MTAzNCAxNi4yODI5MzkgMy4zNTk0MDJIMTYuNTgxODE4TDE1LjEzNTI0MyAwSDEuMDA0MjM0QzAuNzI5MjY1IDAgMC43MTczMSAwLjAxMTk1NSAwLjY4MTQ0NSAwLjA4MzY4NkMwLjY2OTQ4OSAwLjExOTU1MiAwLjY2OTQ4OSAwLjM0NjcgMC42Njk0ODkgMC40NzgyMDdMNi45OTM3NzMgOS4xMzM3NDhMMC44MDA5OTYgMTYuMzkwNTM1QzAuNjgxNDQ1IDE2LjUzMzk5OCAwLjY4MTQ0NSAxNi41OTM3NzMgMC42ODE0NDUgMTYuNjA1NzI5QzAuNjgxNDQ1IDE2LjczNzIzNSAwLjc4OTA0MSAxNi43MzcyMzUgMS4wMDQyMzQgMTYuNzM3MjM1SDE1LjEzNTI0M1onIGlkPSdnMC04OCcvPgo8cGF0aCBkPSdNMy4yOTE2NTYgLTQuOTczMzVDMy4yOTE2NTYgLTUuMTI0NzgyIDMuMTcyMTA1IC01LjI3NjIxNCAyLjk4MDgyMiAtNS4yNzYyMTRDMi43NDE3MTkgLTUuMjc2MjE0IDIuNTM0NDk2IC01LjA1MzA1MSAyLjUzNDQ5NiAtNC44NDU4MjhDMi41MzQ0OTYgLTQuNjk0Mzk2IDIuNjU0MDQ3IC00LjU0Mjk2NCAyLjg0NTMzIC00LjU0Mjk2NEMzLjA4NDQzMyAtNC41NDI5NjQgMy4yOTE2NTYgLTQuNzY2MTI3IDMuMjkxNjU2IC00Ljk3MzM1Wk0xLjYyNTkwMyAwLjM5ODUwNkMxLjUwNjM1MSAwLjg4NDY4MiAxLjExNTgxNiAxLjQwMjc0IDAuNjI5NjM5IDEuNDAyNzRDMC41MDIxMTcgMS40MDI3NCAwLjM4MjU2NSAxLjM3MDg1OSAwLjM2NjYyNSAxLjM2Mjg4OUMwLjYxMzY5OSAxLjI0MzMzNyAwLjY0NTU3OSAxLjAyODE0NCAwLjY0NTU3OSAwLjk1NjQxM0MwLjY0NTU3OSAwLjc2NTEzMSAwLjUwMjExNyAwLjY2MTUxOSAwLjMzNDc0NSAwLjY2MTUxOUMwLjEwMzYxMSAwLjY2MTUxOSAtMC4xMTE1ODIgMC44NjA3NzIgLTAuMTExNTgyIDEuMTIzNzg2Qy0wLjExMTU4MiAxLjQyNjY1IDAuMTgzMzEzIDEuNjI1OTAzIDAuNjM3NjA5IDEuNjI1OTAzQzEuMTIzNzg2IDEuNjI1OTAzIDIuMDAwNDk4IDEuMzIzMDM5IDIuMjM5NjAxIDAuMzY2NjI1TDIuOTU2OTEyIC0yLjQ4NjY3NUMyLjk4MDgyMiAtMi41ODIzMTYgMi45OTY3NjIgLTIuNjQ2MDc3IDIuOTk2NzYyIC0yLjc2NTYyOUMyLjk5Njc2MiAtMy4yMDM5ODUgMi42NDYwNzcgLTMuNTE0ODE5IDIuMTgzODExIC0zLjUxNDgxOUMxLjMzODk3OSAtMy41MTQ4MTkgMC44NDQ4MzIgLTIuMzk5MDA0IDAuODQ0ODMyIC0yLjI5NTM5MkMwLjg0NDgzMiAtMi4yMjM2NjEgMC45MDA2MjMgLTIuMTkxNzgxIDAuOTY0Mzg0IC0yLjE5MTc4MUMxLjA1MjA1NSAtMi4xOTE3ODEgMS4wNjAwMjUgLTIuMjE1NjkxIDEuMTE1ODE2IC0yLjMzNTI0M0MxLjM1NDkxOSAtMi44ODUxODEgMS43NjEzOTUgLTMuMjkxNjU2IDIuMTU5OSAtMy4yOTE2NTZDMi4zMjcyNzMgLTMuMjkxNjU2IDIuNDIyOTE0IC0zLjE4MDA3NSAyLjQyMjkxNCAtMi45MTcwNjFDMi40MjI5MTQgLTIuODA1NDc5IDIuMzk5MDA0IC0yLjY5Mzg5OCAyLjM3NTA5MyAtMi41ODIzMTZMMS42MjU5MDMgMC4zOTg1MDZaJyBpZD0nZzItMTA2Jy8+CjxwYXRoIGQ9J00yLjMyNzI3MyAtNS4yOTIxNTRDMi4zMzUyNDMgLTUuMzA4MDk1IDIuMzU5MTUzIC01LjQxMTcwNiAyLjM1OTE1MyAtNS40MTk2NzZDMi4zNTkxNTMgLTUuNDU5NTI3IDIuMzI3MjczIC01LjUzMTI1OCAyLjIzMTYzMSAtNS41MzEyNThDMi4xOTk3NTEgLTUuNTMxMjU4IDEuOTUyNjc3IC01LjUwNzM0NyAxLjc2OTM2NSAtNS40OTE0MDdMMS4zMjMwMzkgLTUuNDU5NTI3QzEuMTQ3Njk2IC01LjQ0MzU4NyAxLjA2Nzk5NSAtNS40MzU2MTYgMS4wNjc5OTUgLTUuMjkyMTU0QzEuMDY3OTk1IC01LjE4MDU3MyAxLjE3OTU3NyAtNS4xODA1NzMgMS4yNzUyMTggLTUuMTgwNTczQzEuNjU3NzgzIC01LjE4MDU3MyAxLjY1Nzc4MyAtNS4xMzI3NTIgMS42NTc3ODMgLTUuMDYxMDIxQzEuNjU3NzgzIC01LjAzNzExMSAxLjY1Nzc4MyAtNS4wMjExNzEgMS42MTc5MzMgLTQuODc3NzA5TDAuNDg2MTc3IC0wLjM0MjcxNUMwLjQ1NDI5NiAtMC4yMjMxNjMgMC40NTQyOTYgLTAuMTc1MzQyIDAuNDU0Mjk2IC0wLjE2NzM3MkMwLjQ1NDI5NiAtMC4wMzE4OCAwLjU2NTg3OCAwLjA3OTcwMSAwLjcxNzMxIDAuMDc5NzAxQzAuOTg4Mjk0IDAuMDc5NzAxIDEuMDUyMDU1IC0wLjE3NTM0MiAxLjA4MzkzNSAtMC4yODY5MjRDMS4xNjM2MzYgLTAuNjIxNjY5IDEuMzcwODU5IC0xLjQ2NjUwMSAxLjQ1ODUzMSAtMS44MDEyNDVDMS44OTY4ODcgLTEuNzUzNDI1IDIuNDMwODg0IC0xLjYwMTk5MyAyLjQzMDg4NCAtMS4xNDc2OTZDMi40MzA4ODQgLTEuMTA3ODQ2IDIuNDMwODg0IC0xLjA2Nzk5NSAyLjQxNDk0NCAtMC45ODgyOTRDMi4zOTEwMzQgLTAuODg0NjgyIDIuMzc1MDkzIC0wLjc3MzEwMSAyLjM3NTA5MyAtMC43MzMyNUMyLjM3NTA5MyAtMC4yNjMwMTQgMi43MjU3NzggMC4wNzk3MDEgMy4xODgwNDUgMC4wNzk3MDFDMy41MjI3OSAwLjA3OTcwMSAzLjczMDAxMiAtMC4xNjczNzIgMy44MzM2MjQgLTAuMzE4ODA0QzQuMDI0OTA3IC0wLjYxMzY5OSA0LjE1MjQyOCAtMS4wOTE5MDUgNC4xNTI0MjggLTEuMTM5NzI2QzQuMTUyNDI4IC0xLjIxOTQyNyA0LjA4ODY2NyAtMS4yNDMzMzcgNC4wMzI4NzcgLTEuMjQzMzM3QzMuOTM3MjM1IC0xLjI0MzMzNyAzLjkyMTI5NSAtMS4xOTU1MTcgMy44ODk0MTUgLTEuMDUyMDU1QzMuNzg1ODAzIC0wLjY3NzQ2IDMuNTc4NTggLTAuMTQzNDYyIDMuMjAzOTg1IC0wLjE0MzQ2MkMyLjk5Njc2MiAtMC4xNDM0NjIgMi45NDg5NDEgLTAuMzE4ODA0IDIuOTQ4OTQxIC0wLjUzMzk5OEMyLjk0ODk0MSAtMC42Mzc2MDkgMi45NTY5MTIgLTAuNzMzMjUgMi45OTY3NjIgLTAuOTE2NTYzQzMuMDA0NzMyIC0wLjk0ODQ0MyAzLjAzNjYxMyAtMS4wNzU5NjUgMy4wMzY2MTMgLTEuMTYzNjM2QzMuMDM2NjEzIC0xLjgxNzE4NiAyLjIxNTY5MSAtMS45NjA2NDggMS44MDkyMTUgLTIuMDE2NDM4QzIuMTA0MTEgLTIuMTkxNzgxIDIuMzc1MDkzIC0yLjQ2Mjc2NSAyLjQ3MDczNSAtMi41NjYzNzZDMi45MDkwOTEgLTIuOTk2NzYyIDMuMjY3NzQ2IC0zLjI5MTY1NiAzLjY1MDMxMSAtMy4yOTE2NTZDMy43NTM5MjMgLTMuMjkxNjU2IDMuODQ5NTY0IC0zLjI2Nzc0NiAzLjkxMzMyNSAtMy4xODgwNDVDMy40ODI5MzkgLTMuMTMyMjU0IDMuNDgyOTM5IC0yLjc1NzY1OSAzLjQ4MjkzOSAtMi43NDk2ODlDMy40ODI5MzkgLTIuNTc0MzQ2IDMuNjE4NDMxIC0yLjQ1NDc5NSAzLjc5Mzc3MyAtMi40NTQ3OTVDNC4wMDg5NjYgLTIuNDU0Nzk1IDQuMjQ4MDcgLTIuNjMwMTM3IDQuMjQ4MDcgLTIuOTU2OTEyQzQuMjQ4MDcgLTMuMjI3ODk1IDQuMDU2Nzg3IC0zLjUxNDgxOSAzLjY1ODI4MSAtMy41MTQ4MTlDMy4xOTYwMTUgLTMuNTE0ODE5IDIuNzgxNTY5IC0zLjE2NDEzNCAyLjMyNzI3MyAtMi43MDk4MzhDMS44NjUwMDYgLTIuMjU1NTQyIDEuNjY1NzUzIC0yLjE2Nzg3IDEuNTM4MjMyIC0yLjExMjA4TDIuMzI3MjczIC01LjI5MjE1NFonIGlkPSdnMi0xMDcnLz4KPHBhdGggZD0nTTguMzA4ODQyIC0yLjc3MzU5OUM4LjMyMDc5NyAtMi44MDk0NjUgOC4zNTY2NjMgLTIuODkzMTUxIDguMzU2NjYzIC0yLjk0MDk3MUM4LjM1NjY2MyAtMy4wMDA3NDcgOC4zMDg4NDIgLTMuMDYwNTIzIDguMjM3MTExIC0zLjA2MDUyM0M4LjE4OTI5IC0zLjA2MDUyMyA4LjE2NTM4IC0zLjA0ODU2OCA4LjEyOTUxNCAtMy4wMTI3MDJDOC4xMDU2MDQgLTMuMDAwNzQ3IDguMTA1NjA0IC0yLjk3NjgzNyA3Ljk5ODAwNyAtMi43Mzc3MzNDNy4yOTI2NTMgLTEuMDY0MDEgNi43Nzg1OCAtMC4zNDY3IDQuODY1NzUzIC0wLjM0NjdIMy4xMjAyOTlDMi45NTI5MjcgLTAuMzQ2NyAyLjkyOTAxNiAtMC4zNDY3IDIuODU3Mjg1IC0wLjM1ODY1NUMyLjcyNTc3OCAtMC4zNzA2MSAyLjcxMzgyMyAtMC4zOTQ1MjEgMi43MTM4MjMgLTAuNDkwMTYyQzIuNzEzODIzIC0wLjU3Mzg0OCAyLjczNzczMyAtMC42NDU1NzkgMi43NjE2NDQgLTAuNzUzMTc2TDMuNTg2NTUgLTQuMDUyODAySDQuNzcwMTEyQzUuNzAyNjE1IC00LjA1MjgwMiA1Ljc3NDM0NiAtMy44NDk1NjQgNS43NzQzNDYgLTMuNDkwOTA5QzUuNzc0MzQ2IC0zLjM3MTM1NyA1Ljc3NDM0NiAtMy4yNjM3NjEgNS42OTA2NiAtMi45MDUxMDZDNS42NjY3NSAtMi44NTcyODUgNS42NTQ3OTUgLTIuODA5NDY1IDUuNjU0Nzk1IC0yLjc3MzU5OUM1LjY1NDc5NSAtMi42ODk5MTMgNS43MTQ1NyAtMi42NTQwNDcgNS43ODYzMDEgLTIuNjU0MDQ3QzUuODkzODk4IC0yLjY1NDA0NyA1LjkwNTg1MyAtMi43Mzc3MzMgNS45NTM2NzQgLTIuOTA1MTA2TDYuNjM1MTE4IC01LjY3ODcwNUM2LjYzNTExOCAtNS43Mzg0ODEgNi41ODcyOTggLTUuNzk4MjU3IDYuNTE1NTY3IC01Ljc5ODI1N0M2LjQwNzk3IC01Ljc5ODI1NyA2LjM5NjAxNSAtNS43NTA0MzYgNi4zNDgxOTQgLTUuNTgzMDY0QzYuMTA5MDkxIC00LjY2MjUxNiA1Ljg2OTk4OCAtNC4zOTk1MDIgNC44MDU5NzggLTQuMzk5NTAySDMuNjcwMjM3TDQuNDExNDU3IC03LjM0MDQ3M0M0LjUxOTA1NCAtNy43NTg5MDQgNC41NDI5NjQgLTcuNzk0NzcgNS4wMzMxMjYgLTcuNzk0NzdINi43NDI3MTVDOC4yMTMyIC03Ljc5NDc3IDguNTEyMDggLTcuNDAwMjQ5IDguNTEyMDggLTYuNDkxNjU2QzguNTEyMDggLTYuNDc5NzAxIDguNTEyMDggLTYuMTQ0OTU2IDguNDY0MjU5IC01Ljc1MDQzNkM4LjQ1MjMwNCAtNS43MDI2MTUgOC40NDAzNDkgLTUuNjMwODg0IDguNDQwMzQ5IC01LjYwNjk3NEM4LjQ0MDM0OSAtNS41MTEzMzMgOC41MDAxMjUgLTUuNDc1NDY3IDguNTcxODU2IC01LjQ3NTQ2N0M4LjY1NTU0MiAtNS40NzU0NjcgOC43MDMzNjIgLTUuNTIzMjg4IDguNzI3MjczIC01LjczODQ4MUw4Ljk3ODMzMSAtNy44MzA2MzVDOC45NzgzMzEgLTcuODY2NTAxIDkuMDAyMjQyIC03Ljk4NjA1MiA5LjAwMjI0MiAtOC4wMDk5NjNDOS4wMDIyNDIgLTguMTQxNDY5IDguODk0NjQ1IC04LjE0MTQ2OSA4LjY3OTQ1MiAtOC4xNDE0NjlIMi44NDUzM0MyLjYxODE4MiAtOC4xNDE0NjkgMi40OTg2MyAtOC4xNDE0NjkgMi40OTg2MyAtNy45MjYyNzZDMi40OTg2MyAtNy43OTQ3NyAyLjU4MjMxNiAtNy43OTQ3NyAyLjc4NTU1NCAtNy43OTQ3N0MzLjUyNjc3NSAtNy43OTQ3NyAzLjUyNjc3NSAtNy43MTEwODMgMy41MjY3NzUgLTcuNTc5NTc3QzMuNTI2Nzc1IC03LjUxOTgwMSAzLjUxNDgxOSAtNy40NzE5OCAzLjQ3ODk1NCAtNy4zNDA0NzNMMS44NjUwMDYgLTAuODg0NjgyQzEuNzU3NDEgLTAuNDY2MjUyIDEuNzMzNDk5IC0wLjM0NjcgMC44OTY2MzggLTAuMzQ2N0MwLjY2OTQ4OSAtMC4zNDY3IDAuNTQ5OTM4IC0wLjM0NjcgMC41NDk5MzggLTAuMTMxNTA3QzAuNTQ5OTM4IDAgMC42MjE2NjkgMCAwLjg2MDc3MiAwSDYuODYyMjY3QzcuMTI1MjggMCA3LjEzNzIzNSAtMC4wMTE5NTUgNy4yMjA5MjIgLTAuMjAzMjM4TDguMzA4ODQyIC0yLjc3MzU5OVonIGlkPSdnMy02OScvPgo8cGF0aCBkPSdNMC41MTQwNzIgMS41MTgzMDZDMC40MzAzODYgMS44NzY5NjEgMC4zODI1NjUgMS45NzI2MDMgLTAuMTA3NTk3IDEuOTcyNjAzQy0wLjI1MTA1OSAxLjk3MjYwMyAtMC4zNzA2MSAxLjk3MjYwMyAtMC4zNzA2MSAyLjE5OTc1MUMtMC4zNzA2MSAyLjIyMzY2MSAtMC4zNTg2NTUgMi4zMTkzMDMgLTAuMjI3MTQ4IDIuMzE5MzAzQy0wLjA3MTczMSAyLjMxOTMwMyAwLjA5NTY0MSAyLjI5NTM5MiAwLjI1MTA1OSAyLjI5NTM5MkgwLjc2NTEzMUMxLjAxNjE4OSAyLjI5NTM5MiAxLjYyNTkwMyAyLjMxOTMwMyAxLjg3Njk2MSAyLjMxOTMwM0MxLjk0ODY5MiAyLjMxOTMwMyAyLjA5MjE1NCAyLjMxOTMwMyAyLjA5MjE1NCAyLjEwNDExQzIuMDkyMTU0IDEuOTcyNjAzIDIuMDA4NDY4IDEuOTcyNjAzIDEuODA1MjMgMS45NzI2MDNDMS4yNTUyOTMgMS45NzI2MDMgMS4yMTk0MjcgMS44ODg5MTcgMS4yMTk0MjcgMS43OTMyNzVDMS4yMTk0MjcgMS42NDk4MTMgMS43NTc0MSAtMC40MDY0NzYgMS44MjkxNDEgLTAuNjgxNDQ1QzEuOTYwNjQ4IC0wLjM0NjcgMi4yODM0MzcgMC4xMTk1NTIgMi45MDUxMDYgMC4xMTk1NTJDNC4yNTYwNCAwLjExOTU1MiA1LjcxNDU3IC0xLjYzNzg1OCA1LjcxNDU3IC0zLjM5NTI2OEM1LjcxNDU3IC0
в уравнениях:
x[0]**n * p[0] + ... + x[0] * p[n-1] + p[n] = y[0] x[1]**n * p[0] + ... + x[1] * p[n-1] + p[n] = y[1] ... x[k]**n * p[0] + ... + x[k] * p[n-1] + p[n] = y[k]
Матрица коэффициентов
pявляется матрицей Вандермонда.polyfitвыдаётRankWarningпри плохой обусловленности аппроксимации методом наименьших квадратов. Это означает, что наилучшая аппроксимация не определена корректно из-за погрешности вычислений. Результаты можно улучшить, уменьшив степень многочлена или заменивxнаx-x.mean(). Параметрrcondтакже можно установить значением, меньшим, чем значение по умолчанию, но полученная аппроксимация может быть некорректной: включение вклада от малых сингулярных значений может добавить в результат шумы вычислений.Обратите внимание, что аппроксимация коэффициентов многочлена изначально плохо обусловлена, когда степень многочлена велика или интервал точек отсчёта выбран некорректно. В этих случаях необходимо всегда проверять качество аппроксимации. Если аппроксимация многочленом не удовлетворительна, сплайны могут быть хорошей альтернативой.
Ссылки
[1] Википедия, «Аппроксимация кривых», http://ru.wikipedia.org/wiki/Аппроксимация_кривых [2] Википедия, «Полиномическая интерполяция», http://ru.wikipedia.org/wiki/Полиномическая_интерполяция Примеры
>>> x = np.array([0.0, 1.0, 2.0, 3.0, 4.0, 5.0]) >>> y = np.array([0.0, 0.8, 0.9, 0.1, -0.8, -1.0]) >>> z = np.polyfit(x, y, 3) >>> z array([ 0.08703704, -0.81349206, 1.69312169, -0.03968254])
Для работы с многочленами удобно использовать объекты
poly1d:>>> p = np.poly1d(z) >>> p(0.5) 0.6143849206349179 >>> p(3.5) -0.34732142857143039 >>> p(10) 22.579365079365115
Многочлены высокой степени могут сильно колебаться:
>>> p30 = np.poly1d(np.polyfit(x, y, 30)) /... RankWarning: Polyfit may be poorly conditioned... >>> p30(4) -0.80000000000000204 >>> p30(5) -0.99999999999999445 >>> p30(4.5) -0.10547061179440398
Иллюстрация:
>>> import matplotlib.pyplot as plt >>> xp = np.linspace(-2, 6, 100) >>> _ = plt.plot(x, y, '.', xp, p(xp), '-', xp, p30(xp), '--') >>> plt.ylim(-2,2) (-2, 2) >>> plt.show()
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.15.4/reference/generated/numpy.ma.polyfit.html