Python实现二维曲线拟合的方法
2018-12-31 00:02
1276 查看
如下所示:
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实现二维曲线拟合
- 最小二乘法 多项式曲线拟合 原理公式理解 Python 实现
- python数据挖掘学习笔记】十四.Scipy调用curve_fit实现曲线拟合
- 【python数据挖掘课程】十四.Scipy调用curve_fit实现曲线拟合
- Python绘制KS曲线的实现方法
- Python实现二维有序数组查找的方法
- Python基于最小二乘法实现曲线拟合示例
- Python实现二维有序数组查找的方法
- Python的“二维”字典 (two-dimension dictionary)定义与实现方法
- python实现二维函数高次拟合
- 【python数据挖掘课程】十四.Scipy调用curve_fit实现曲线拟合
- 一元二次曲线拟合的最小二乘python实现
- Python图形绘制操作之正弦曲线实现方法分析
- Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】
- MATLAB 给定一组二维坐标,拟合曲线并且取曲线上任意点的坐标方法,或者均分定义域,得到对应值方法
- Python的“二维”字典 (two-dimension dictionary)定义与实现方法
- 使用scipy实现最小二乘法,以及通过曲线对数据进行拟合(Python)
- Python最大堆排序实现方法
- 在android中使用Path类的quadTo()方法实现平滑曲线
- 飘逸的python - 两种with语句实现方法