Python实现二维曲线拟合的方法


Posted in Python onDecember 29, 2018

如下所示:

from numpy import *
import numpy as np
import matplotlib.pyplot as plt

plt.close()
fig=plt.figure()
plt.grid(True)
plt.axis([0,10,0,8])

#列出数据
point=[[1,2],[2,3],[3,6],[4,7],[6,5],[7,3],[8,2]]
plt.xlabel("X")
plt.ylabel("Y")

#用于求出矩阵中各点的值
XSum = 0.0
X2Sum = 0.0
X3Sum = 0.0
X4Sum = 0.0
ISum = 0.0
YSum = 0.0
XYSum = 0.0
X2YSum = 0.0


#列出各点的位置
for i in range(0,len(point)):

 xi=point[i][0]
 yi=point[i][1]
 plt.scatter(xi,yi,color="red")
 show_point = "("+ str(xi) +","+ str(yi) + ")"
 plt.text(xi,yi,show_point)

 XSum = XSum+xi
 X2Sum = X2Sum+xi**2
 X3Sum = X3Sum + xi**3
 X4Sum = X4Sum + xi**4
 ISum = ISum+1
 YSum = YSum+yi
 XYSum = XYSum+xi*yi
 X2YSum = X2YSum + xi**2*yi

# 进行矩阵运算
# _mat1 设为 mat1 的逆矩阵
m1=[[ISum,XSum, X2Sum],[XSum, X2Sum, X3Sum],[X2Sum, X3Sum, X4Sum]]
mat1 = np.matrix(m1)
m2=[[YSum], [XYSum], [X2YSum]]
mat2 = np.matrix(m2)
_mat1 =mat1.getI()
mat3 = _mat1*mat2

# 用list来提取矩阵数据
m3=mat3.tolist()
a = m3[0][0]
b = m3[1][0]
c = m3[2][0]
# 绘制回归线
x = np.linspace(0,10)
y = a + b*x + c*x**2
plt.plot(x,y)
show_line = "y="+str(a)+"+("+str(b)+"x)"+"+("+str(c)+"x2)";
plt.title(show_line)
plt.show()

以上这篇Python实现二维曲线拟合的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
50行代码实现贪吃蛇(具体思路及代码)
Apr 27 Python
详解Python中类的定义与使用
Apr 11 Python
python实现本地图片转存并重命名的示例代码
Oct 27 Python
在Python中使用defaultdict初始化字典以及应用方法
Oct 31 Python
使用python3实现操作串口详解
Jan 01 Python
解决Python3 控制台输出InsecureRequestWarning问题
Jul 15 Python
Python连接字符串过程详解
Jan 06 Python
python输出pdf文档的实例
Feb 13 Python
python设置环境变量的作用整理
Feb 17 Python
pytorch中 gpu与gpu、gpu与cpu 在load时相互转化操作
May 25 Python
Python API 操作Hadoop hdfs详解
Jun 06 Python
python用tkinter开发的扫雷游戏
Jun 01 Python
python修改txt文件中的某一项方法
Dec 29 #Python
神经网络相关之基础概念的讲解
Dec 29 #Python
Python实现的KMeans聚类算法实例分析
Dec 29 #Python
Python使用pyshp库读取shapefile信息的方法
Dec 29 #Python
Python实现的线性回归算法示例【附csv文件下载】
Dec 29 #Python
Python 确定多项式拟合/回归的阶数实例
Dec 29 #Python
Python 普通最小二乘法(OLS)进行多项式拟合的方法
Dec 29 #Python
You might like
php 不同编码下的字符串长度区分
2009/09/26 PHP
PHP与C#分别格式化文件大小的代码
2011/05/14 PHP
php生成图形(Libchart)实例
2013/11/06 PHP
ThinkPHP文件上传实例教程
2014/08/22 PHP
php上传中文文件名乱码问题处理方案
2015/02/03 PHP
详解WordPress中的头像缓存和代理中的缓存更新方法
2016/03/01 PHP
PHP+redis实现微博的推模型案例分析
2019/07/10 PHP
json的前台操作和后台操作实现代码
2012/01/20 Javascript
Jquery uploadify图片上传插件无法上传的解决方法
2013/12/16 Javascript
JavaScript程序设计之JS调试
2015/12/09 Javascript
利用JavaScript阻止表单提交的两种方法
2016/08/11 Javascript
js严格模式总结(分享)
2016/08/22 Javascript
Angular的$http与$location
2016/12/26 Javascript
js省市区级联查询(插件版&无插件版)
2017/03/21 Javascript
javascript基础进阶_深入剖析执行环境及作用域链
2017/09/05 Javascript
20行JS代码实现粘贴板复制功能
2018/02/06 Javascript
在vue里面设置全局变量或数据的方法
2018/03/09 Javascript
Angular5.0 子组件通过service传递值给父组件的方法
2018/07/13 Javascript
关于微信小程序登录的那些事
2019/01/08 Javascript
vue.js实现会动的简历(包含底部导航功能,编辑功能)
2019/04/08 Javascript
vue中动态select的使用方法示例
2019/10/28 Javascript
Vue实现浏览器打印功能的代码
2020/04/17 Javascript
vue添加锚点,实现滚动页面时锚点添加相应的class操作
2020/08/10 Javascript
[02:34]DOTA2英雄基础教程 幽鬼
2014/01/02 DOTA
Python中的Numpy入门教程
2014/04/26 Python
Django静态资源URL STATIC_ROOT的配置方法
2014/11/08 Python
详解Pytorch 使用Pytorch拟合多项式(多项式回归)
2018/05/24 Python
Python list与NumPy array 区分详解
2019/11/06 Python
pyftplib中文乱码问题解决方案
2020/01/11 Python
如何写python的配置文件
2020/06/07 Python
ORLY官网:美国专业美甲一线品牌
2019/12/11 全球购物
计算机求职自荐信范文
2014/04/19 职场文书
2015年安全生产月活动总结
2015/03/26 职场文书
MySQL 8.0 Online DDL快速加列的相关总结
2021/06/02 MySQL
浅谈Web Storage API的使用
2021/06/23 Javascript
MySQL数据库优化之通过索引解决SQL性能问题
2022/04/10 MySQL