大家好?我是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)

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

python曲线拟合预测_用python做曲线拟合相关推荐

  1. python 时间序列预测_使用Python进行动手时间序列预测

    python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...

  2. python机器学习预测_使用Python和机器学习预测未来的股市趋势

    python机器学习预测 Note from Towards Data Science's editors: While we allow independent authors to publish ...

  3. python模型预测_《Python机器学习——预测分析核心算法》——1.5 构建预测模型的流程...

    本节书摘来异步社区<Python机器学习--预测分析核心算法>一书中的第1章,第1.5节,作者:[美]Michael Bowles(鲍尔斯),更多章节内容可以访问云栖社区"异步社 ...

  4. python模型预测_用Python如何进行预测型数据分析

    数据分析一般分为探索性数据分析.验证型数据分析和预测型数据分析.上一篇讲了如何用Python实现验证型数据分析(假设检验),文章链接:转变:用Python如何实现"假设检验"​zh ...

  5. python分类预测_《Python机器学习——预测分析核心算法》——2.6 多类别分类问题:它属于哪种玻璃...

    本节书摘来异步社区<Python机器学习--预测分析核心算法>一书中的第2章,第2.6节,作者:[美]Michael Bowles(鲍尔斯),更多章节内容可以访问云栖社区"异步社 ...

  6. python数据预测_利用Python编写一个数据预测工具

    利用Python编写一个数据预测工具 发布时间:2020-11-07 17:12:20 来源:亿速云 阅读:96 这篇文章运用简单易懂的例子给大家介绍利用Python编写一个数据预测工具,内容非常详细 ...

  7. python房价预测_人工智能python实现-预测房价:回归问题

    3.6 预测房价:回归问题 前面两个例子都是分类问题,其目标是预测输入数据点所对应的单一离散的标签.另一种常见的机器学习问题是回归问题,它预测一个连续值而不是离散的标签,例如,根据气象数据预测明天的气 ...

  8. python数据预测_使用Python预测缺失值

    对于数据科学家来说,处理丢失的数据是数据清理和模型开发过程中的一个重要部分.通常情况下,真实数据包含多个稀疏字段或包含错误值的字段.在这篇文章中,我们将讨论如何建立可以用来填补数据中缺失或错误值的模型 ...

  9. python 概率分布模型_使用python的概率模型进行公司估值

    python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...

最新文章

  1. php要怎么使用imagettftext_延长防腐木使用要怎么做呢?
  2. “坑爹”排行榜:Java语言最违反常识的功能点TOP 10
  3. 【Google Play】App Bundle 使用详解 ( 应用模块化 )
  4. jpa遇到mysql表名大写怎么办_解决(springboot项目)mysql表名大写,造成jpa Table doesn't exist问题...
  5. java应用重启导致数据丢失_java – 在重新启动应用程序后从SharedPreferences恢复时设置丢失数据...
  6. 部署项目的问题(三)—— node启动服务时listen监听的端口被占用
  7. Dotnet Core Public API的安全实践
  8. 华为云mysql端口号_华为云云耀服务器远程连接mysql,报错10038端口配置问题。
  9. iphone 使用Core Graphics 剪贴图片
  10. bash: ./install_software: Permission denied
  11. AI学习笔记(十五)自然语言处理基本概念
  12. python装饰器系列(一)
  13. python网页版本_python 网页版
  14. XPS10.1仿真PPC440步骤及遇到的问题
  15. 360真假u盘测试软件,360u盘鉴定器准不准?
  16. python xlwt写excel_Python使用xlwt写excel并设置写入格式
  17. C#开发工控上位机编程 csdn_PLC部件分配编程PLC扩展如何编程
  18. Python转义符的使用
  19. 正则表达式, email格式验证,邮箱地址验证
  20. 读《南怀瑾讲人生哲理》

热门文章

  1. mysql排重_mysql 排重查询
  2. linux sudo命令全称,linux sudo命令的概念与使用
  3. lvs负载均衡—DR模式
  4. 一个websocket 可以多个页面创建吗_实战分享|给我一个Puppeteer,没有爬不了的网站
  5. java 根据类名示例化类_Java LocalDateTime类| 带示例的getNano()方法
  6. Redis 管道技术——Pipeline
  7. Tensorflow C3D完成视频动作识别
  8. 玩玩机器学习4——TensorFlow基础之激活函数
  9. SQL Server大量数据秒级插入/新增/删除
  10. 用git提交代码到远程仓库遇到的问题