2019-08-08 10:46:00 4670瀏覽
本篇文章扣丁學堂Python培訓小編給小伙伴們分享一下Python實現(xiàn)三維擬合的方法,文中有詳細的代碼列出供小伙伴們參考,文章具有不錯的參考價值,希望對大家有所幫助。
如下所示:
from matplotlib import pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = Axes3D(fig)
#列出實驗數(shù)據
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來提取矩陣數(shù)據
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培訓官網、微信等平臺,扣丁學堂IT職業(yè)在線學習教育平臺為您提供權威的Python開發(fā)環(huán)境搭建視頻,Python培訓后的前景無限,行業(yè)薪資和未來的發(fā)展會越來越好的,扣丁學堂老師精心推出的Python視頻教程定能讓你快速掌握Python從入門到精通開發(fā)實戰(zhàn)技能??鄱W堂Python技術交流群:279521237。
【關注微信公眾號獲取更多學習資料】 【掃碼進入Python全棧開發(fā)免費公開課】