日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python曲线拟合预测_用python做曲线拟合

發(fā)布時間:2025/3/12 python 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python曲线拟合预测_用python做曲线拟合 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

大家好?我是Kepler哎學(xué)習(xí),最近在工程中用到曲線擬合。一般我們都是用matlab來做,方便快捷。我們也可以嘗試用python編寫腳本來擬合數(shù)據(jù),方便數(shù)據(jù)自動化處理。

曲線擬合分為一般多項式擬合和指定函數(shù)擬合。

準備工作:

1.建立python環(huán)境(https://www.jianshu.com/p/daf5d33ae62e)

2.安裝模塊numpy、matplotlib、scipy(自行百度)

代碼編寫:

多項式擬合

1.創(chuàng)建文件mult.py

import numpy as np? ? ? # 導(dǎo)入模塊

from sys import argv

import matplotlib.pyplot as plt

script,x_data,y_data,order = argv? ? # 參數(shù)變量

x_data = x_data.split(",")? ? ? ? # 將字符串拆分成字符列表

x_data = [float(i) for i in x_data] # 將字符列表轉(zhuǎn)換為數(shù)字列表

y_data = y_data.split(",")

y_data = [float(i) for i in y_data]

x = np.array(x_data)

print("x is: \n",x)

y = np.array(y_data)

print("y is:\n",y)

f1 = np.polyfit(x,y,int(order))? ? #? 獲取擬合函數(shù)的系數(shù)

print("f1 is:\n",f1)

p1 = np.poly1d(f1)

print("p1 is:\n",p1)

yvals = p1(x)

print('yvals is:\n',yvals)

plot1 = plt.plot(x,y,'s',label = 'original values')

plot2 = plt.plot(x,yvals,'r',label = 'polyfit values')

plt.xlabel('x')

plt.ylabel('y')

plt.legend(loc=4)

plt.title('polyfitting')

plt.show()

2.進行測試:

在文件所在文件夾shift+鼠標右鍵打開PowershellShift+鼠標右鍵

在Powershell中輸入程序執(zhí)行命令兩個點1階多項式擬合

進行二階擬合10個點 2階擬合

進行八階擬合8個點 8階擬合

指定函數(shù)擬合

1.創(chuàng)建fxgiven.py:

import matplotlib.pyplot as plt

import numpy as np

from scipy.optimize import curve_fit? ? # 導(dǎo)入擬合函數(shù)

from sys import argv

script,x_data,y_data = argv? ?# 參數(shù)變量

x_data = x_data.split(",")? ? ? ? # 將字符串拆分成字符列表

x_data = [float(i) for i in x_data] # 將字符列表轉(zhuǎn)換為數(shù)字列表

y_data = y_data.split(",")

y_data = [float(i) for i in y_data]

x = np.array(x_data)

y = np.array(y_data)

def fx(x,a,b):

return a*np.exp(b/x)

popt, pcov = curve_fit(fx, x, y)? #?pcov 估計的popt的協(xié)方差

print(popt)? ? ? ? ? ? ? ? ? # popt滿足函數(shù)參數(shù)最佳值

yvals=fx(x,popt[0] ,popt[1]) # 求出擬合后對應(yīng)點

print(yvals)

p1=plt.plot(x, y, '*',label='original values')

p2=plt.plot(x, yvals, 'r',label='curve_fit values')

plt.xlabel('x axis')

plt.ylabel('y axis')

plt.legend(loc=4)? ? ? ? ? ? ? ?# 指定legend的位置,讀者可以自己help它的用法

plt.title('curve_fit')

plt.savefig('p2.png')

plt.show()

2.進行測試:

在Powershell中輸入程序執(zhí)行命令6個點擬合y=a*exp(b/x)

專欄文章僅作個人學(xué)習(xí)記錄,如有錯誤,歡迎批評指正。

總結(jié)

以上是生活随笔為你收集整理的python曲线拟合预测_用python做曲线拟合的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。