python曲线拟合

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

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

时间: 2024-10-11 09:26:42

python曲线拟合的相关文章

【python数据挖掘课程】十四.Scipy调用curve_fit实现曲线拟合

前面系列文章讲过各种知识,包括绘制曲线.散点图.幂分布等,而如何在在散点图一堆点中拟合一条直线,也变得非常重要.这篇文章主要讲述调用Scipy扩展包的curve_fit函数实现曲线拟合,同时计算出拟合的函数.参数等.希望文章对你有所帮助,如果文章中存在错误或不足之处,还请海涵~ 前文推荐:       [Python数据挖掘课程]一.安装Python及爬虫入门介绍       [Python数据挖掘课程]二.Kmeans聚类数据分析及Anaconda介绍       [Python数据挖掘课程]

Python计算&绘图——曲线拟合问题(转)

题目来自老师的课后作业,如下所示.很多地方应该可以直接调用函数,但是初学Python,对里面的函数还不是很了解,顺便带着学习的态度,尽量自己动手code. 测试版代码,里面带有很多注释和测试代码: [python] view plain copy # -*- coding: cp936 -*- import math import random import matplotlib.pyplot as plt import numpy as np ''''' 在x=[0,1]上均匀采样10个点组成

科比投球预测-python实例

曲线拟合多重共线性虚拟变量"导致的多重共线性在机器学习中的影响大吗?老师我在网上下的 kaggle 的数据解压失败了 老师重点讲解一下随机森林和SVM还有adaboost tensorflow 陈杰链接:http://pan.baidu.com/s/1i4PNJlr 密码:fz7e 简述一下多重共线性在机器学习中的影响? 数据来了怎么提特征极坐标 欧式距离:每个特征相减的平方再根号,woc是数学后来在加数据的方法? 数据:训练集(demo).测试集(测试demo是否正确)独热编码:one-hot

最小二乘法多项式曲线拟合原理与实现

概念 最小二乘法多项式曲线拟合,根据给定的m个点,并不要求这条曲线精确地经过这些点,而是曲线y=f(x)的近似曲线y= φ(x). 原理 [原理部分由个人根据互联网上的资料进行总结,希望对大家能有用] 给定数据点pi(xi,yi),其中i=1,2,…,m.求近似曲线y= φ(x).并且使得近似曲线与y=f(x)的偏差最小.近似曲线在点pi处的偏差δi= φ(xi)-y,i=1,2,...,m. 常见的曲线拟合方法: 1.使偏差绝对值之和最小 2.使偏差绝对值最大的最小       3.使偏差平方

用python做数学建模

前言 这里是用python解决数学建模的一些问题,用到的是python3.x,scipy,numpy和matplotlib. 先补充一些基本的数据知识. 1.numpy.array() 在基础操作里,array和list是不区分的(在索引和删除一些操作还有运行时间上会有区别),python也没有array这个数据结构.array是由numpy这个数值计算工具包定义的.因为很多操作必须要求是在array上进行(list会出错)所以需要掌握.以下参考官方文档. import numpy as np

最小二乘法多项式曲线拟合原理与实现(转)

概念 最小二乘法多项式曲线拟合,根据给定的m个点,并不要求这条曲线精确地经过这些点,而是曲线y=f(x)的近似曲线y= φ(x). 原理 [原理部分由个人根据互联网上的资料进行总结,希望对大家能有用] 给定数据点pi(xi,yi),其中i=1,2,…,m.求近似曲线y= φ(x).并且使得近似曲线与y=f(x)的偏差最小.近似曲线在点pi处的偏差δi= φ(xi)-y,i=1,2,...,m. 常见的曲线拟合方法: 1.使偏差绝对值之和最小 2.使偏差绝对值最大的最小       3.使偏差平方

至少原则平方多项式曲线拟合和实施

概念 最小二乘法多项式曲线拟合,依据给定的m个点,并不要求这条曲线精确地经过这些点.而是曲线y=f(x)的近似曲线y= φ(x). 原理 [原理部分由个人依据互联网上的资料进行总结.希望对大家能实用] 给定数据点pi(xi,yi),当中i=1,2,-,m.求近似曲线y= φ(x). 而且使得近似曲线与y=f(x)的偏差最小.近似曲线在点pi处的偏差δi= φ(xi)-y.i=1,2,...,m. 常见的曲线拟合方法: 1.使偏差绝对值之和最小 2.使偏差绝对值最大的最小       3.使偏差平

最小二乘法及其python实现

最小二乘法Least Square Method,做为分类回归算法的基础,有着悠久的历史(由马里·勒让德于1806年提出).它通过最小化误差的平方和寻找数据的最佳函数匹配.利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小.最小二乘法还可用于曲线拟合.其他一些优化问题也可通过最小化能量或最大化熵用最小二乘法来表达. 那什么是最小二乘法呢?别着急,我们先从几个简单的概念说起. 假设我们现在有一系列的数据点,那么由我们给出的拟合函数h(x)得到的估计量就是,

Python数据挖掘课程

[Python数据挖掘课程]一.安装Python及爬虫入门介绍[Python数据挖掘课程]二.Kmeans聚类数据分析及Anaconda介绍[Python数据挖掘课程]三.Kmeans聚类代码实现.作业及优化[Python数据挖掘课程]四.决策树DTC数据分析及鸢尾数据集分析[Python数据挖掘课程]五.线性回归知识及预测糖尿病实例[Python数据挖掘课程]六.Numpy.Pandas和Matplotlib包基础知识[Python数据挖掘课程]七.PCA降维操作及subplot子图绘制[Py