Python实现二维曲线拟合的方法

yipeiwu_com6年前Python基础

如下所示:

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新手经常遇到的17个错误分析

1)忘记在 if , elif , else , for , while , class ,def 声明末尾添加 :(导致 “SyntaxError :invalid syntax”)...

Python实现FTP弱口令扫描器的方法示例

Python实现FTP弱口令扫描器的方法示例

FTP服务器 FTP服务器是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。FTP是File Transfer Protocol(文件传输协议)的缩写。顾名思义,...

Django 创建后台,配置sqlite3教程

Django 创建后台,配置sqlite3教程

1. 创建project django-admin.py startproject myweb1 2.创建app控制台输入 python manage.py startapp home...

python3获取当前目录的实现方法

1. 以前的方法 如果是要获得程序运行的当前目录所在位置,那么可以使用os模块的os.getcwd()函数。 如果是要获得当前执行的脚本的所在目录位置,那么需要使用sys模块的sys.p...

对python中的os.getpid()和os.fork()函数详解

如下所示: import os import sys import time processNmae = 'parent' print "Program executing...