必威体育Betway必威体育官网
当前位置:首页 > IT技术

python曲线拟合

时间:2019-08-04 06:11:06来源:IT技术作者:seo实验室小编阅读:75次「手机版」
 

曲线拟合

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

做完插值,自然就要学习拟合了。参考http://wiki.klniu.com/wiki/Python/Modules/Scipy。

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')

python曲线拟合

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')

python曲线拟合

相关阅读

matlab 万能实用的非线性曲线拟合方法

      在科学计算和工程应用中,经常会遇到需要拟合一系列的离散数据,最近找了很多相关的文章方法,在这里进行总结一下其中最完整

matlab如何实现曲线拟合?

Matlab是一个很强大的数据处理软件,是人们进行数据分析的得力助手。一般我们做社会调研或科学研究时,会得到很多实验数据。当需要研

分享到:

栏目导航

推荐阅读

热门阅读