python曲线拟合预测_用python做曲线拟合

大家好?我是Kepler哎学习,最近在工程中用到曲线拟合。一般我们都是用matlab来做,方便快捷。我们也可以尝试用python编写脚本来拟合数据,方便数据自动化处理。

曲线拟合分为一般多项式拟合和指定函数拟合。

准备工作:

1.建立python环境(https://www.jianshu.com/p/daf5d33ae62e)

2.安装模块numpy、matplotlib、scipy(自行百度)

代码编写:

多项式拟合

1.创建文件mult.py

import numpy as np      # 导入模块

from sys import argv

import matplotlib.pyplot as plt

script,x_data,y_data,order = argv    # 参数变量

x_data = x_data.split(",")        # 将字符串拆分成字符列表

x_data = [float(i) for i in x_data] # 将字符列表转换为数字列表

y_data = y_data.split(",")

y_data = [float(i) for i in y_data]

x = np.array(x_data)

print("x is: \n",x)

y = np.array(y_data)

print("y is:\n",y)

f1 = np.polyfit(x,y,int(order))    #  获取拟合函数的系数

print("f1 is:\n",f1)

p1 = np.poly1d(f1)

print("p1 is:\n",p1)

yvals = p1(x)

print('yvals is:\n',yvals)

plot1 = plt.plot(x,y,'s',label = 'original values')

plot2 = plt.plot(x,yvals,'r',label = 'polyfit values')

plt.xlabel('x')

plt.ylabel('y')

plt.legend(loc=4)

plt.title('polyfitting')

plt.show()

2.进行测试:

在文件所在文件夹shift+鼠标右键打开PowershellShift+鼠标右键

在Powershell中输入程序执行命令两个点1阶多项式拟合

进行二阶拟合10个点 2阶拟合

进行八阶拟合8个点 8阶拟合

指定函数拟合

1.创建fxgiven.py:

import matplotlib.pyplot as plt

import numpy as np

from scipy.optimize import curve_fit    # 导入拟合函数

from sys import argv

script,x_data,y_data = argv   # 参数变量

x_data = x_data.split(",")        # 将字符串拆分成字符列表

x_data = [float(i) for i in x_data] # 将字符列表转换为数字列表

y_data = y_data.split(",")

y_data = [float(i) for i in y_data]

x = np.array(x_data)

y = np.array(y_data)

def fx(x,a,b):

return a*np.exp(b/x)

popt, pcov = curve_fit(fx, x, y)  # pcov 估计的popt的协方差

print(popt)                  # popt满足函数参数最佳值

yvals=fx(x,popt[0] ,popt[1]) # 求出拟合后对应点

print(yvals)

p1=plt.plot(x, y, '*',label='original values')

p2=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.savefig('p2.png')

plt.show()

2.进行测试:

在Powershell中输入程序执行命令6个点拟合y=a*exp(b/x)

专栏文章仅作个人学习记录,如有错误,欢迎批评指正。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/556312.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微服务架构与SpringCloud

微服务架构简述 通常而言,微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行在其独立的自己的进程中,服务之间互相协调、互相配合为用户提供最终价值。服务之间采用轻量级的通…

应用商店应用计算机,基于中国虹计算机的应用商店的设计与实现

摘要:随着互联网的不断发展,第三方应用商店的活跃用户数已达到数亿规模,而且仍然在不断增长,同时各终端厂商也陆续推出了适用于自家终端的应用商店.中国虹计划课题项目经过多年发展,其核心载体中国虹计算机也得到了大量的推广使用,但是中国虹计算机现有的云桌面应用…

python对字符串数组进行排序、依据字符数_Python进行数据的排序以及字符串的操作...

数据异常值的过滤在数据分析中,经常需要检测数据结构中的异常值。我们还是举个例子,先来创建一个包含三列的DataFrame对象,每一列都包含1000个随机数。可以用describe( )函数查看每一列的描述性统计量。例如,你可以会将比标准差大…

REST和RPC是什么东东?两者有什么区别

1 REST与RPC概念 什么是REST REST是一种架构风格,指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。REST规范把所有内容都视为资源,网络上一切皆资源。 REST并没有创造新的技术,组件或服务&#xff0c…

简述计算机进行远程桌面管理操作过程,服务器应用之“远程桌面连接”(操作篇)...

在上篇《服务器应用之“远程桌面连接”(部署篇) 》《服务器应用之“远程桌面连接”(建立篇) 》,我们介绍了远程桌面的部署和建立方法。在远程桌面连接成功后就可以进行一些远程桌面连接可以进行的计算机管理了。具体可以进行的远程桌面连接操作如下:1. 使…

未为dll加载任何符号_专家发现aspersky 和Trend Micro安全性解决方案中的DLL劫持问题...

SafeBreach的研究人员发现了Kaspersky安全连接、Trend Micro最大安全性和Autodesk桌面应用程序中的几个DLL劫持漏洞,黑客可以利用这些漏洞进行DLL预加载、代码执行和权限升级。第一个问题在卡巴斯基安全连接(KSDE) VPN客户端,跟踪为CVE-2019-15689&#…

什么是Eureka? 单机版Eureka如何使用?

Eureka 是什么? Eureka 是Spring Cloud的服务治理组件,有三个核心角色: 服务注册中心、服务提供者、服务消费者。Eureka 主管服务注册中心。 是Netflix的一个子模块,也是核心模块之一。Eureka是一个基于REST的服务,用…

ntko跨浏览器插件_继泄露版后,微软全新 Chrome 内核 Edge 浏览器你都测试过了吗?...

尽管微软的 Office 和 Windows 10 势头不错,但像 WP 手机、XBox 等方面似乎并未获得预期的成功。而先前为了替代老旧的 IE 浏览器,微软倾力开发的 Edge 也未见起色。不过微软也一直在努力变得更加开放,比如发布 VS for Mac、Office for Mac、…

软考计算机英语考题,《全国计算机软考网管英语试题及答案.doc

《全国计算机软考网管英语试题及答案全国计算机软考网管英语试题及答案(1)Heterogeneous network environments consist of computer systems from(1)vendors that run(2)operating systems and communication protocols.An organization that(3)its computer resou…

如何将单机版的Eureka服务改为集群版Eureka服务

Eureka 集群原理 基本原理 上图是来自eureka的官方架构图,这是基于集群配置的eureka; 处于不同节点的eureka通过Replicate进行数据同步Application Service为服务提供者Application Client为服务消费者Make Remote Call完成一次服务调用 服务启动后向…

python统计字数分布可视化展示_数据的概率分布并用python实现概率分布可视化图...

一、基础概念先来看下数据的类型,常见的数据分类方式有三种:第一种是按照数据的结构属性分类,根据数据的存储形式分为结构化数据和非结构化数据,例如数据库的存储对象基本上都是结构化数据,结构化数据是进行数据分析的…

台式计算机读不到u盘怎么回事,电脑读不出u盘怎么办

把U盘插入电脑USB接口中,却发现找不到U盘图标,甚至连安装U盘驱动的提示也没有,那么电脑读不出u盘怎么办呢?天学习啦小编就和大家说说电脑读不出u盘的解决方法。电脑读不出u盘解决方法1、首先应该排除是否是由于电脑系统问题,具体…

Eureka 与Zookeeper 的区别,Eureka相较于Zookeeper好在哪?

传统的ACID A(Atomicity) 原子性C(Consistency) 一致性I (Isolation)独立性D(Durability)持久性 关系型数据库(MySQL,Oracle,SqlServer&#xf…

断网情况下安装python_断网环境下利用pip安装Python离线安装包

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。这几天搞Windows离线断网环境下安装Python包,配置环境,各种坑!做个记录,供以后查询吧。# 生产环境 windows 7# python 2.7.9# pip 1.5.2友情提示…

计算机英语词组,计算机专业英语词组.doc

Integrated circuit 集成电路Central controller 中央控制器Trigonometry function 三角函数Square root 平方根Floating point 浮点数Real number 实数Logic operation 逻辑运算Superscalar computer 超级计算机Hard disk drive 硬盘驱动器Personal computer 个人计算机Floppy…

python 整数输出 d f_如何将数字(10,11,12,13,14,15)分配给Python 3中的字母(A,B,C,D,E,F)?...

您可以在代码中添加更多行来执行此操作:首先创建两个带有字符的列表,一个带有要映射的整数,然后从那些创建dict:list_1["A","B","C","D","E","F"]list_2[10,11,12,1…

如何将Springboot项目成功部署到linux服务器上?

springboot的jar包方式 idea默认就是jar打包方式所以直接使用maven工具按照步骤点击就可以直接打包ps:打包前你的数据库相关的连接信息要记得修改,不能再用本地的了 第二步:Maven clean :清除编译后的目录,默认是target目录 [IN…

2018年3月计算机二级考试题,2018年3月计算机二级考试Access综合试题十

2018年3月计算机等级考试即将开始,小编在这里为考生们整理了2018年3月计算机二级考试Access综合试题,希望能帮到大家,想了解更多资讯,请关注出国留学网的及时更新哦。2018年3月计算机二级考试Access综合试题十(1)要将“选课成绩”…

sqldataadapter.fill 索引超出了数组界限_小学生学习C++||第十五节 数组

存储数据的方式第一种,变量:存放1个学生的数学成绩可以定义1个变量存放,那么如果想要存放100个学生的数学成绩应该如何存储呢?第二种,数组:引入数组概念:可以用来表达类型相同的元素的集合&…

计算机组组内培训记录,计算机教研组活动记录.doc

计算机教研组活动记录PAGE \* MERGEFORMAT 3计算机基础教研组活动记录活动时间2017年10月17日参加人员:田飞, 许丽, 张刚, 夏丽, 刘璐, 苑瑜, 王梦, 靳双正, 梁宇, 常喜活动主题如何提高计算机课程教学质量活动过程摘要活动记录:田飞——今天我们就如何提…