Python各类插值拟合方式及画图

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011675745/article/details/75116802

引入数据

import numpy as np
x = np.arange(1, 4, 1)
y = [4, 9, 16]

多项式插值相关

#用于拟合多项式
#三个参数分别为x轴,y轴,以及多项式的阶
#返回值为该拟合多项式的系数
p = np.polyfit(x, y, 2)
print p
>>> [ 1.  2.  1.]
#将多项式系数转化为书写的方式,并且能够用于求值
p1 = np.poly1d(p)
print p1
>>>     2
    1 x + 2 x + 1
# 这样可直接对其求值,同样支持导入数组
print p1(1)
>>> 4.0
print p1(np.arange(1, 5, 1))
>>> [  4.   9.  16.  25.]
#得到该多项式的跟
print p1.r
>>> [-1. +3.33200094e-08j, -1. -3.33200094e-08j]
#得到该多项式的系数
print p1.c
>>> [ 1.  2.  1.]
#得到该多项式的阶
print p1.order
>>> 2
#p为系数,x为用于求值的数字或者数组或一个系数数组
np.polyval(p, x)
print np.polyval(p, 1)
>>> 4.0
print np.polyval(p, np.arange(1, 5, 1))
>>> [  4.   9.  16.  25.]
#当第二个参数是一个系数数组时,对该系数数组代表的多项式进行相乘
print np.polyval(p, p1)
>>>    4     3     2
    1 x + 4 x + 8 x + 8 x + 4

线性插值

import scipy.interpolate as itp
#用于进行线性插值对数据进行拟合
val = itp.interp1d(x, y)
print val
>>> <scipy.interpolate.interpolate.interp1d object at 0x000000000F130598>
print val(2.5)
>>> 12.5

猜你喜欢

转载自blog.csdn.net/u011675745/article/details/75116802