博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python曲线拟合
阅读量:7076 次
发布时间:2019-06-28

本文共 1370 字,大约阅读时间需要 4 分钟。

http://blog.sina.com.cn/s/blog_aed5bd1d0102vid7.html

 

做完插值,自然就要学习拟合了。参考。

1.多项式拟合范例:

import matplotlib.pyplot as plt

import numpy as np
#潘海东,2014/1/13

x = np.arange(1, 17, 1)

y = np.array([4.00, 6.40, 8.00, 8.80, 9.22, 9.50, 9.70, 9.86, 10.00, 10.20, 10.32, 10.42, 10.50, 10.55, 10.58, 10.60])
z1 = np.polyfit(x, y, 3)#用3次多项式拟合
p1 = np.poly1d(z1)
print(p1) #在屏幕上打印拟合多项式
yvals=p1(x)#也可以使用yvals=np.polyval(z1,x)
plot1=plt.plot(x, y, '*',label='original values')
plot2=plt.plot(x, yvals, 'r',label='polyfit values')
plt.xlabel('x axis')
plt.ylabel('y axis')
plt.legend(loc=4)#指定legend的位置,读者可以自己help它的用法
plt.title('polyfitting')
plt.show()
plt.savefig('p1.png')

2.指定函数拟合

#潘海东,2014/1/13

#使用非线性最小二乘法拟合
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
import numpy as np
#用指数形式来拟合
x = np.arange(1, 17, 1)
y = np.array([4.00, 6.40, 8.00, 8.80, 9.22, 9.50, 9.70, 9.86, 10.00, 10.20, 10.32, 10.42, 10.50, 10.55, 10.58, 10.60])
def func(x,a,b):
    return a*np.exp(b/x)
popt, pcov = curve_fit(func, x, y)
a=popt[0]#popt里面是拟合系数,读者可以自己help其用法
b=popt[1]
yvals=func(x,a,b)
plot1=plt.plot(x, y, '*',label='original values')
plot2=plt.plot(x, yvals, 'r',label='curve_fit values')
plt.xlabel('x axis')
plt.ylabel('y axis')
plt.legend(loc=4)#指定legend的位置,读者可以自己help它的用法
plt.title('curve_fit')
plt.show()
plt.savefig('p2.png')

转载于:https://www.cnblogs.com/zhizhan/p/5664214.html

你可能感兴趣的文章
破碎吧,
查看>>
happy,
查看>>
section 和 row,
查看>>
据说每个大牛、小牛都应该有自己的库——Event处理
查看>>
APIX招聘
查看>>
A-Treepath//dfs
查看>>
spring源码解析之IOC容器(三)——依赖注入
查看>>
长文章手动分页显示代码
查看>>
with…do语句的用法
查看>>
tail tailf 使用
查看>>
BT原理分析
查看>>
Android签名机制
查看>>
BZOJ-3732: Network (kruskal+LCA)
查看>>
linux并发控制之读写自旋锁
查看>>
数据结构之栈
查看>>
math模块
查看>>
特殊二维数组的查找
查看>>
jQuery快速入门
查看>>
cs6.8-oracle挂载ceph
查看>>
python3+selenium入门04-元素定位
查看>>