import numpy as np
import matplotlib.pyplot as plt
x = np.arange(10)*0.1
fx = np.array([0.97,0.83,0.65,0.54,0.46,0.36,0.29,0.25,0.21,0.17])
p = 1
N = 6 # 阶数
def Neiji(p,a,b):
'''
加权内积,p为加权值
'''
return p*np.dot(a,b)
def Nihe(x,fx,p,N):
'''
多项式拟合函数
(x,fx):给定的需要拟合的点
p:加权内积的权重值
N:多项式阶数
'''
A = np.zeros((N,N))
b = np.zeros((N,1))
for i in range(N):
for j in range(N):
A[i,j] = Neiji(p,x**i,x**j)
b[i,0] = Neiji(p,fx,x**i)
an = np.linalg.solve(A,b) # 多项式拟合模型系数
return an
an = Nihe(x,fx,p,N)
xx = np.arange(min(x),max(x),0.01) # 做图横坐标
result = np.sum([an[i]*(xx**i) for i in range(N)],axis=0) # 拟合结果曲线
plt.scatter(x,fx,c='r')
plt.plot(xx,result)
plt.show()
11-20:课程小结--多项式拟合
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 数据分析中经常会使用到数据拟合,本文中将阐述如何实现一元以及多元的线性拟合以及多项式拟合,本文中只涉及实现方式,不...
- 1. 前一部分是完美的直线拟合:从图中可见,这个病毒的传染性很强。-- 思考:这个病毒,传染性有多强? 是一传二 ...
- Gilmour a R. Post blocking gone too far! Recovery of info...
- 5月以来,哪怕对市场风向再不敏感的人,也感觉到阵阵凉意。二级市场连续下挫,一级市场融资环境恶化,不论企业融资数量还...