1.公式推导

2.程序的实现

2.1数据集格式

程序的数据集格式如下,只要数据集格式相同,只要修改程序的文件路径即可运行。

2.2程序

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3Ddf = pd.read_excel("你的文件路径",engine='openpyxl')       #修改数据文件路径即可x = list(df["x"])
y = list(df["y"])
z = list(df["z"])
# 构造A矩阵
A = np.zeros((3, 3))
for i in range(0, len(x)):A[0, 0] = A[0, 0] + x[i] ** 2A[0, 1] = A[0, 1] + x[i] * y[i]A[0, 2] = A[0, 2] + x[i]A[1, 0] = A[0, 1]A[1, 1] = A[1, 1] + y[i] ** 2A[1, 2] = A[1, 2] + y[i]A[2, 0] = A[0, 2]A[2, 1] = A[1, 2]A[2, 2] = len(x)
# 构造b矩阵
b = np.zeros((3, 1))
for i in range(0, len(x)):b[0, 0] = b[0, 0] + x[i] * z[i]b[1, 0] = b[1, 0] + y[i] * z[i]b[2, 0] = b[2, 0] + z[i]# 求解x
A_inv = np.linalg.inv(A)  # 求矩阵A的逆
X = np.dot(A_inv, b)
print('平面拟合结果为:z = %.3f * x + %.3f * y + %.3f' % (X[0, 0], X[1, 0], X[2, 0]))
#
# 展示图像
fig1 = plt.figure()
# ax1 = fig1.add_subplot(111, projection='3d')
ax1 = plt.axes(projection='3d')
ax1.set_xlabel("x")
ax1.set_ylabel("y")
ax1.set_zlabel("z")
ax1.scatter(x,y,z,c='r',marker='o')
x_p = np.array([i/1000 for i in range(-50,50)])
y_p = np.array([i/1000 for i in range(-50,50)])
x_p, y_p = np.meshgrid(x_p, y_p)
z_p = X[0, 0] * x_p + X[1, 0] * y_p + X[2, 0]
ax1.plot_wireframe(x_p, y_p, z_p, rstride=10, cstride=10)
plt.show()

2.3程序结果(作者的数据绘制出的图)

程序参考:python如何拟合三维平面(拟合Intel Realsense D435深度数据点)_Dontla的博客-CSDN博客_python 拟合平面文章目录拟合Intel Realsense D435深度数据点参考文章:【MQ笔记】超简单的最小二乘法拟合平面(Python)import numpy as npimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3D # 创建函数,用于生成不同属于一个平面的100个离散点def not_all_in_plane(a, b, c): x = np.random.uniform(-10, 10, sizhttps://blog.csdn.net/Dontla/article/details/108445277

如果大家觉得有点难,可以使用matlab中的拟合工具箱进行拟合,更加方便。

python 实现三维平面拟合 附纸质版最小二乘法的推导与程序的实现相关推荐

  1. python画三维平面-Python三维绘图--Matplotlib

    编辑推荐: 本文主要介绍如何用python的matplotlib库中丰富的三维绘图工具进行绘图,运用三维图给我们对数据带来更加深入地理解,希望对大家有帮助. 本文来自于csdn ,由火龙果软件Alic ...

  2. python画三维平面-Python 绘制酷炫的三维图步骤详解

    通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的: 这些图怎么做出来呢?今天就来分享下如何一步步绘制出三维矢量(SVG)图. 八面体 我们先以下面这个八面体 ...

  3. python 程序化交易信号闪烁_请版主帮忙解决一下程序信号闪烁的问题-开拓者知识 -程序化交易(CXH99.COM)...

    咨询内容: Params Numeric notaft(14.58); Vars Numericseries High5(0);// Numericseries Low5(0);// Numeric ...

  4. RANSAC点云多平面拟合分割

    RANSAC点云多平面拟合分割 三维平面拟合(最小二乘法) 假设 P P P 为一个点集, p i p_i pi​ 是点集中的任意一点, p i ∈ P p_i\in P pi​∈P, p c p_c ...

  5. python如何拟合三维平面(拟合Intel Realsense D435深度数据点)

    文章目录 拟合Intel Realsense D435深度数据点 参考文章:[MQ笔记]超简单的最小二乘法拟合平面(Python) import numpy as np import matplotl ...

  6. python 最小二乘法三维坐标拟合平面_【MQ笔记】超简单的最小二乘法拟合平面(Python)...

    这篇笔记中,我主要通过解决"由离散点拟合平面"这个小问题,学习了超定方程最小二乘解的求解方法.在这里我整理了两种求解思路用以交流. 直接求解超定方程. 我们知道,对于一个平面,其方 ...

  7. python拟合三维平面_tensorflow实现二维平面模拟三维数据教程

    我就废话不多说了,直接上代码吧! #!/bin/bash # -*-coding=utf-8-*- import re import os import sys import numpy as np ...

  8. python 最小二乘法三维坐标拟合平面_matlab三维曲面进行平面拟合,利用最小二乘法...

    展开全部 可以直接2113使用matlab的曲面拟5261合工具箱,但是平面4102拟合的效果一1653般 1.在命令窗口内输入待拟合容的数据>> x=[11.4,11.4,11.4,11 ...

  9. 三维点集拟合:平面拟合、RANSAC、ICP算法

    ACM算法分类:http://www.kuqin.com/algorithm/20080229/4071.html;CSDN容易吞图,不过编辑器里面图片还是显示的..... 一. 拟合一个平面     ...

最新文章

  1. 编写测试用例的方法_适合小白的测试用例编写方法,一看就会!
  2. PDF.NET数据开发框架实体类操作实例(for PostgreSQL,并且解决自增问题)
  3. python—多线程之线程之间共享数据(Queue)
  4. java中全局变量注解_自定义注解,前端获取token值的时候,全局变量返回后端用注解注入,以便以其他业务层使用...
  5. php实现鼠标悬停显示下拉菜单,Html中鼠标悬停显示二级菜单的两种方法
  6. Exception in thread main java.io.IOException: (null) entry in command string: null chmod 0700 E:\t
  7. 中职生转段计算机应用基础,吉林省2017年高等职业教育对口升学、中职—本科衔接试点转段考试安排通知...
  8. 无招胜有招之Java进阶JVM(四)内存模型plus
  9. 使用ANTLR和Java创建外部DSL
  10. linux之EXT2文件系统--理解block/block group/索引结点inode/索引位图
  11. 通过了面试,却不会和hr聊薪水?
  12. Python暴力破解密码
  13. 家庭局域网文件共享,轻松互联手机与电脑
  14. Eclipse 绿豆沙
  15. Fast and Accurate Recognition of Chinese Clinical Named Entities with Residual Dilated Convolutions
  16. word中怎么做思维导图,思维导图怎么画
  17. 传说之下怎么设置按键_《传说之下手机版》按键设置教程
  18. Git--建立和解除与远程仓库的关联
  19. 学生选课系统项目设计报告
  20. Connection Timeout 问题排查

热门文章

  1. Linux + anaconda + Pycharm 环境和命令
  2. 装修半包包括哪些内容呢?极家精工装修好不好
  3. 解决Matlab每次运行都要更改文件夹或者添加文件路径的问题
  4. 将unsigned char 分割为两部分
  5. 微信修改字体大小后h5页面排版乱 解决办法
  6. 数学建模常用模型17 :偏最小二乘回归分析
  7. 2021年中国苹果行业产业链分析:上下游市场稳定,苹果行业市场运行情况平稳增长 [图]
  8. 2022-2028年全球与中国化学注入橇行业市场深度调研及投资预测分析
  9. Docker快速入门,学习工作利器。
  10. 为什么内存进制是1024,数据传输速率是1000?