使用最小二乘法的线性拟合,自留代码

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import rcParams
import math
import matplotlib

读取数据

#(1)读取excel数据
df = pd.read_excel(r'C:\Users\Administrator\Desktop\worklist.xlsx')
data = np.array(df)#(2)自己设定组数
X=np.array([0,1.34,2.25,4.67,7.2,9.6,12.79,15.61])
Y=np.array([0,12.5,25,50,100,200,400,800])

直线拟合

#定义直线拟合函数
def linear_regression(x, y): N = len(x)sumx = sum(x)sumy = sum(y)sumx2 = sum(x**2)sumxy = sum(x*y)A = np.mat([[N, sumx], [sumx, sumx2]])b = np.array([sumy, sumxy])return np.linalg.solve(A, b)a10, a11 = linear_regression(X, Y)# 生成拟合直线的绘制点
_X1 = np.arange (0,20,0.01)
_Y1 = np.array([a10 + a11 * x for x in _X1])#画图
plt.figure(figsize=(6,6))
plt.plot(_X1, _Y1, 'b', linewidth=2)
plt.legend(bbox_to_anchor=(1,0),loc="lower left")
plt.title("y = {} + {}x".format(a10, a11)) #标题
plt.show()

曲线拟合

# 生成系数矩阵A
def gen_coefficient_matrix(X, Y): N = len(X)m = 3A = []# 计算每一个方程的系数for i in range(m):a = []# 计算当前方程中的每一个系数for j in range(m):a.append(sum(X ** (i+j)))A.append(a)return A# 计算方程组的右端向量b
def gen_right_vector(X, Y): N = len(X)m = 3b = []for i in range(m):b.append(sum(X**i * Y))return bA = gen_coefficient_matrix(X, Y)
b = gen_right_vector(X, Y)a0, a1, a2 = np.linalg.solve(A, b)
print(a0,a1,a2)#绘制拟合曲线
_X = np.arange(0, 20, 0.01)
_Y = np.array([a0 + a1*x + a2*x**2 for x in _X])#画图
plt.figure(figsize=(10,6))
plt.plot(X,Y,'o',markersize=10,label='Hou等(2017)')#plt.plot(_X, _Y, 'b', linewidth=2,label="$I$ = {:.2f} + {:.2e}$n$ +{:.2e}$n^2$ ".format(a0, a1, a2))    #{:.2f}等用于保留小数plt.plot(_X, _Y, 'b', linewidth=2,label="式(1) ")
#plt.gca().invert_yaxis()
plt.legend(fontsize=16,frameon=False)
#plt.legend(bbox_to_anchor=(0.5,-0.35),loc=10,ncol=2,frameon=False) #图框
#plt.title("AI = {} + {}n + {}$n^2$ ".format(a0, a1, a2))   #标题
plt.show()

自留-Python:线性拟合(直线+曲线)相关推荐

  1. python线性拟合怎么做_python如何实现数据的线性拟合

    实验室老师让给数据画一张线性拟合图.不会matlab,就琢磨着用python.参照了网上的一些文章,查看了帮助文档,成功的写了出来 这里用到了三个库 import numpy as np import ...

  2. python函数拟合不规则曲线_python曲线拟合

    Python曲线拟合 前言 这篇文章的由来:前几天在做大学物理居家实验水滴法测量声速的时候需要使用phyphox软件导出的数据拟合y=1/(a+b*x)曲线.虽然老师要求使用Origin软件拟合,但是 ...

  3. python 线性拟合 图_python线性拟合

    怎么用Python将图像边界用最小二乘法拟合成曲线 本文实例讲述了Python基于最小二乘法实现曲线拟合.分享给大家供大家参考,具体如下: 这里不手动实现最小二乘,调用scipy库中实现好的相关优化函 ...

  4. python最小二乘法拟合三维曲线_python_numpy最小二乘法的曲线拟合

    在了解了最小二乘法的基本原理之后python_numpy实用的最小二乘法理解,就可以用最小二乘法做曲线拟合了 1.直线拟合 直线拟合 已知图中拟合数据的坐标,对图中的拟合数据进行直线拟合. 依旧使用最 ...

  5. python最小二乘法--拟合直线

    最小二乘法实例------求出利用最小二乘法通过(1,1) (2,3) (3,3)拟合出的直线: ​ ##最小二乘法 import numpy as np import matplotlib.pypl ...

  6. python最小二乘法拟合直线

    最小二乘法的推导可参考下面这个博客,推导非常详细. https://my.oschina.net/keyven/blog/526010 首先画一个加入了噪声的散点图,函数是y=0.2x,加入噪声后如下 ...

  7. python线性拟合_python直线拟合实例

    由于最近在弄stm32控制小车的事情,小车的转速可以通过10ms内采集的编码脉冲数enc表示,控制信号由pwm占空比表示. 要用PID对小车速度进行控制,需要求得pwm-enc之间的增益系数Ka,于是 ...

  8. python最小二乘法拟合直线_Python 实现最小二乘法拟合直线

    线性回归 线性回归是回归分析中最常见的一种建模方式.当因变量是连续的,自变量是连续的或者离散的,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析. 用方程 y = mx + c,其中 ...

  9. python函数拟合不规则曲线_python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案...

    第一种是进行多项式拟合,数学上可以证明,任意函数都可以表示为多项式形式.具体示例如下. ###拟合年龄 import numpy as np import matplotlib.pyplot as p ...

  10. python线性拟合误差分析_Python – 从线性回归线计算正在进行的1标准偏差

    我已经设法获得时间序列数据的线性回归线,这要归功于stackoverflow先前.所以我有以下从python绘制的图/线: 我使用以下代码获得此回归线,最初从csv文件导入价格/时间序列数据: f4 ...

最新文章

  1. jQuery中排除指定元素,同时选择剩下的所有元素
  2. mxnet常规优化器用法
  3. Howto: (Almost) Everything In Active Directory via C#
  4. oracle开发方案,oracle報表開發方案
  5. linux 内核 丢弃分片包,LINUX内核关于IP分片重组问题请教
  6. gis插入的文本怎么搞成两行_逻辑图怎么画?图文详解带你绘制逻辑图
  7. myeclipse导出war包出错Security alert解决办法
  8. 2020微博热点数据简析
  9. 王可欣作业一 统计软件简介与数据操作
  10. 学习分享 | 适合初学者练习的C/C++开源项目
  11. python制作雕刻软件_blender for Mac(免费动画制作软件)
  12. AAC音频压缩(转载)
  13. ADI实验室电路:带抗混叠滤波器的宽带接收机
  14. TCP/IP 协议族 简介(应用层,传输层,网络层,链路层)
  15. Linux make学习
  16. ddd in php chinese,php-将DDD与事件源混合在一起
  17. cfiledialog 保存 扩展名_开春换季鞋子的保存大法,快快收下!有备无患!
  18. usb接口驱动_来晒一下自己的笔记本电脑,看接口够不够用,怎么样?
  19. 工业机器人的特点有哪些
  20. 【五一特刊】FPGA零基础学习:IIC协议驱动设计

热门文章

  1. html制作答题卡表格,Excel怎么制作试卷答题卡,单选框和复选框制作就这么简单-excel操作练习题...
  2. [转]PDF在线阅读开发经验(FlexPaper+SWFTools+SaveAsPDFandXPS)
  3. 固态硬盘在线测试软件,SSD检测工具(SSDlife Pro)
  4. 超详细的80个Python入门实例,代码清晰拿来即用,学习提升必备
  5. CSS3过渡详解-遁地龙卷风
  6. 【工具】支付宝免费卡校验接口调用及常用银行简称整理
  7. (附源码)计算机毕业设计ssm大众点评管理系统
  8. 关键词组合工具_关键词的优化方法及搜索工具,亚马逊关键词处理
  9. 常用的Linux命令(小白入门指南)
  10. jsp项目实战--项目介绍