python实现三维拟合的方法

 更新时间:2018年12月29日 08:43:23   作者:changye777  
今天小编就为大家分享一篇python实现三维拟合的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

如下所示:

from matplotlib import pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
ax = Axes3D(fig)

#列出实验数据
point=[[2,3,48],[4,5,50],[5,7,51],[8,9,55],[9,12,56]]
plt.xlabel("X1")
plt.ylabel("X2")

#表示矩阵中的值
ISum = 0.0
X1Sum = 0.0
X2Sum = 0.0
X1_2Sum = 0.0
X1X2Sum = 0.0
X2_2Sum = 0.0
YSum = 0.0
X1YSum = 0.0
X2YSum = 0.0

#在图中显示各点的位置
for i in range(0,len(point)):

 x1i=point[i][0]
 x2i=point[i][1]
 yi=point[i][2]
 ax.scatter(x1i, x2i, yi, color="red")
 show_point = "["+ str(x1i) +","+ str(x2i)+","+str(yi) + "]"
 ax.text(x1i,x2i,yi,show_point)

 ISum = ISum+1
 X1Sum = X1Sum+x1i
 X2Sum = X2Sum+x2i
 X1_2Sum = X1_2Sum+x1i**2
 X1X2Sum = X1X2Sum+x1i*x2i
 X2_2Sum = X2_2Sum+x2i**2
 YSum = YSum+yi
 X1YSum = X1YSum+x1i*yi
 X2YSum = X2YSum+x2i*yi

# 进行矩阵运算
# _mat1 设为 mat1 的逆矩阵
m1=[[ISum,X1Sum,X2Sum],[X1Sum,X1_2Sum,X1X2Sum],[X2Sum,X1X2Sum,X2_2Sum]]
mat1 = np.matrix(m1)
m2=[[YSum],[X1YSum],[X2YSum]]
mat2 = np.matrix(m2)
_mat1 =mat1.getI()
mat3 = _mat1*mat2

# 用list来提取矩阵数据
m3=mat3.tolist()
a0 = m3[0][0]
a1 = m3[1][0]
a2 = m3[2][0]

# 绘制回归线
x1 = np.linspace(0,9)
x2 = np.linspace(0,12)
y = a0+a1*x1+a2*x2
ax.plot(x1,x2,y)
show_line = "y="+str(a0)+"+"+str(a1)+"x1"+"+"+str(a2)+"x2"
plt.title(show_line)
plt.show()

以上这篇python实现三维拟合的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解Selenium中元素定位方式

    详解Selenium中元素定位方式

    测试对象的定位和操作是我们利用 selenium 编写自动化脚本和 webdriver 的核心内容。本文我们就来学习一下常用的元素定位方法有哪些吧
    2022-06-06
  • 基于深度学习和OpenCV实现目标检测

    基于深度学习和OpenCV实现目标检测

    这篇文章主要介绍了通过使用OpenCV进行基于深度学习的对象检测以及使用OpenCV检测视频,文中的示例代码讲解详细,需要的可以参考一下
    2021-12-12
  • pycharm右键没有run,run不了问题的解决

    pycharm右键没有run,run不了问题的解决

    这篇文章主要介绍了pycharm右键没有run,run不了问题的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • python网络编程之多线程同时接受和发送

    python网络编程之多线程同时接受和发送

    这篇文章主要为大家详细介绍了python网络编程之多线程同时接受和发送,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • pyqt环境搭建教程

    pyqt环境搭建教程

    pyqt是一个用于创建GUI应用程序的跨平台工具包,它将python与qt库融为一体,本文给大家分享pyqt环境搭建教程,感兴趣的朋友一起看看吧
    2023-11-11
  • Python Flask-Login实现用户会话管理

    Python Flask-Login实现用户会话管理

    这篇文章主要介绍了Python Flask-Login实现用户会话管理过程,Flask-Login为Flask提供用户会话管理。它处理登录、注销和长时间记住用户会话等常见任务
    2022-12-12
  • Python中用post、get方式提交数据的方法示例

    Python中用post、get方式提交数据的方法示例

    最近在学习使用Python,发现网上很少提到如何使用post,所以下面这篇文章主要给大家介绍了关于Python中用post、get方式提交数据的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-09-09
  • python绘制评估优化算法性能的测试函数

    python绘制评估优化算法性能的测试函数

    这篇文章主要为大家详细介绍了python绘制评估优化算法性能的测试函数,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • pytorch 模型可视化的例子

    pytorch 模型可视化的例子

    今天小编就为大家分享一篇pytorch 模型可视化的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • 将Python代码打包为jar软件的简单方法

    将Python代码打包为jar软件的简单方法

    这篇文章主要介绍了将Python代码打包为jar软件的简单方法,一些情况下会有利于Python和Java项目之间的协作,需要的朋友可以参考下
    2015-08-08

最新评论