python实现三维拟合的方法
2018-12-31 00:02
931 查看
如下所示:
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实现三维拟合的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
相关文章推荐
- python实现三维拟合
- Python实现二维曲线拟合的方法
- Python中静态方法的实现
- Ganglia 扩展之Python实现方法
- Python单例模式的4种实现方法:
- (原创) 三维地形可视化快速实现技术方法研究 ——以江西庐山为例
- python实现的工厂方法--设计模式初级
- 再谈将C++语言源码转成html的方法(vim实现,可用于java,perl,python等等多种语言)
- 实现 Python 私有方法(小技巧)
- Ganglia 扩展之 Python 实现方法
- python 抽象类、抽象方法的实现
- 一种分析代金券使用分布情况的方法python实现版(下)
- Python实现WEB实际测试方法介绍
- paip.函数方法回调机制跟java php python c++的实现
- 23种设计模式之python实现--工厂方法
- 采用python实现简单QQ单用户机器人的方法
- Python_cmd的各种实现方法及优劣(subprocess.Popen, os.system和commands.getstatusoutput)
- Python提取Linux内核源代码的目录结构实现方法
- Python单例模式的4种实现方法
- python实现后台进程的方法(源码)