python曲线拟合

python曲线拟合

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

1.多项式拟合范例:

import matplotlib.pyplot as plt
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])
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.指定函数拟合

# 使用非线性最小二乘法拟合
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')

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/119599.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 微信小程序实现下载功能(以下载视频为例)「建议收藏」

    微信小程序实现下载功能(以下载视频为例)「建议收藏」一、wx.downloadFile()方法:访问视频对应的Url,回调函数返回一个该视频文件的临时路径。wx.downloadFile({url:app.serverUrl+me.data.videoInfo.videoPath,success:function(res){//只要服务器有响应数据,就会把响应内容写入文件并进入success回调,业务需要自行判断是否下载到了想要的内容

  • pytest fixtures_premier fixture

    pytest fixtures_premier fixturefixture的优势Pytest的fixture相对于传统的xUnit的setup/teardown函数做了显著的改进:命名方式灵活,不局限于setup和teardown这几个命名conf

  • elasticsearch导出大量数据_error attempting to get column

    elasticsearch导出大量数据_error attempting to get column今天在自己本地测试启动ElasticSearch和Kibana时,ElasticSearch已经启动的情况下,去启动Kibana时,报:UnabletoretrieveversioninformationfromElasticsearchnodes.网上找了下资料,说是elasticsearch.yml文件配置问题,但好像并没有说具体是哪里除了问题的。然后自己看了下,因为都是在本地,可能是因为公司网络的原因,不能用localhost,所以,我就把elasticsearch.yml和kiba

  • docker 镜像构建_docker 镜像制作

    docker 镜像构建_docker 镜像制作前言如果我们已经安装了一个python3的环境,如果另一台机器也需要安装同样的环境又要敲一遍,很麻烦,这里可以配置Dockerfile文件,让其自动安装,类似shell脚本Dockerfile编写

  • 下载安装Java教程

    下载安装Java教程初学Java,似乎安装有那么一点不同(也就多了添加环境变量哈哈哈),我也小小记录一下。    自我介绍:win10x641.下载Java  用于现在大多数使用者用的是java8,小白的我先安装java8好了,^w^。  下载地址:Java8|JavaSE  打开网址后,选择相应电脑操作系统的版本下载。2.安装Java  2.1双击安装包开始安装  2.2安装JDK,可选择安装路径。    这个JDK其实是有包含JRE的。…

  • java二维数组坐标_Java 二维数组

    java二维数组坐标_Java 二维数组二维数组的定义二维数组本质上是以数组作为数组元素的数组,即“数组的数组”。因为数组只能保存一行数据。在生活中,比如坐标等等,我们需要用二维数组来表示。通过行号和列好来定位数据。定义:类型数组[][]  类型[][]数组名例如:floata[3][4];  //定义a为3行4列的数组二维数组的声明和初始化二维数组的声明、初始化和引用与一维数组相似。当使用new来创建二维数组时,不必指定每一维的…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号