2019-07-23 14:54:25 3298瀏覽
Python實(shí)現(xiàn)二維曲線擬合的方法有多少對(duì)Python開發(fā)感興趣的小伙伴知道或者是了解呢?不知道的小伙伴也不要著急,本篇文章扣丁學(xué)堂Python培訓(xùn)小編就給大家分享一下Python實(shí)現(xiàn)二維曲線擬合的方法,感興趣的小伙伴就隨小編來(lái)了解一下吧。
如下所示:
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])
#列出數(shù)據(jù)
point=[[1,2],[2,3],[3,6],[4,7],[6,5],[7,3],[8,2]]
plt.xlabel("X")
plt.ylabel("Y")
#用于求出矩陣中各點(diǎn)的值
XSum = 0.0
X2Sum = 0.0
X3Sum = 0.0
X4Sum = 0.0
ISum = 0.0
YSum = 0.0
XYSum = 0.0
X2YSum = 0.0
#列出各點(diǎn)的位置
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
# 進(jìn)行矩陣運(yùn)算
# _mat1 設(shè)為 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來(lái)提取矩陣數(shù)據(jù)
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()
要了解更多關(guān)于Python和人工智能方面內(nèi)容的小伙伴,請(qǐng)關(guān)注扣丁學(xué)堂Python培訓(xùn)官網(wǎng)、微信等平臺(tái),扣丁學(xué)堂IT職業(yè)在線學(xué)習(xí)教育平臺(tái)為您提供權(quán)威的Python開發(fā)環(huán)境搭建視頻,Python培訓(xùn)后的前景無(wú)限,行業(yè)薪資和未來(lái)的發(fā)展會(huì)越來(lái)越好的,扣丁學(xué)堂老師精心推出的Python視頻教程定能讓你快速掌握Python從入門到精通開發(fā)實(shí)戰(zhàn)技能??鄱W(xué)堂Python技術(shù)交流群:279521237。
【關(guān)注微信公眾號(hào)獲取更多學(xué)習(xí)資料】 【掃碼進(jìn)入Python全棧開發(fā)免費(fèi)公開課】