欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python 對任意數(shù)據(jù)和曲線進(jìn)行擬合并求出函數(shù)表達(dá)式的三種解決方案

 更新時間:2020年02月18日 10:05:09   作者:changdejie  
這篇文章主要介紹了python 對任意數(shù)據(jù)和曲線進(jìn)行擬合并求出函數(shù)表達(dá)式的三種解決方案,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下

第一種是進(jìn)行多項式擬合,數(shù)學(xué)上可以證明,任意函數(shù)都可以表示為多項式形式。具體示例如下。
###擬合年齡

import numpy as np
import matplotlib.pyplot as plt
 
#定義x、y散點坐標(biāo)
x = [10,20,30,40,50,60,70,80]
x = np.array(x)
print('x is :\n',x)
num = [174,236,305,334,349,351,342,323]
y = np.array(num)
print('y is :\n',y)
#用3次多項式擬合
f1 = np.polyfit(x, y, 3)
print('f1 is :\n',f1)
 
p1 = np.poly1d(f1)
print('p1 is :\n',p1)
 
#也可使用yvals=np.polyval(f1, x)
yvals = p1(x) #擬合y值
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) #指定legend的位置右下角
plt.title('polyfitting')
plt.show()

2 。 第一種方案是給出具體的函數(shù)形式(可以是任意的,只要你能寫的出來 下面的func就是),用最小二乘的方式去逼近和擬合,求出函數(shù)的各項系數(shù),如下。

##使用curve_fit

import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
 
#自定義函數(shù) e指數(shù)形式
def func(x, a, b,c):
 return a*np.sqrt(x)*(b*np.square(x)+c)
 
#定義x、y散點坐標(biāo)
x = [20,30,40,50,60,70]
x = np.array(x)
num = [453,482,503,508,498,479]
y = np.array(num)
 
#非線性最小二乘法擬合
popt, pcov = curve_fit(func, x, y)
#獲取popt里面是擬合系數(shù)
print(popt)
a = popt[0] 
b = popt[1]
c = popt[2]
yvals = func(x,a,b,c) #擬合y值
print('popt:', popt)
print('系數(shù)a:', a)
print('系數(shù)b:', b)
print('系數(shù)c:', c)
print('系數(shù)pcov:', pcov)
print('系數(shù)yvals:', 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) #指定legend的位置右下角
plt.title('curve_fit')
plt.show()

擬合高斯分布的方法。

#encoding=utf-8 
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
import pandas as pd
#自定義函數(shù) e指數(shù)形式
def func(x, a,u, sig):
 return a*(np.exp(-(x - u) ** 2 /(2* sig **2))/(math.sqrt(2*math.pi)*sig))*(431+(4750/x))
#定義x、y散點坐標(biāo)
x = [40,45,50,55,60,65,70,75,80,85,90,95,100,105,110,115,120,125,130,135]
x=np.array(x)
# x = np.array(range(20))
print('x is :\n',x)
num = [536,529,522,516,511,506,502,498,494,490,487,484,481,478,475,472,470,467,465,463]
y = np.array(num)
print('y is :\n',y)
popt, pcov = curve_fit(func, x, y,p0=[3.1,4.2,3.3])
#獲取popt里面是擬合系數(shù)
a = popt[0]
u = popt[1]
sig = popt[2]
yvals = func(x,a,u,sig) #擬合y值
print(u'系數(shù)a:', a)
print(u'系數(shù)u:', u)
print(u'系數(shù)sig:', sig)
#繪圖
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) #指定legend的位置右下角
plt.title('curve_fit')
plt.show()

總結(jié)

以上所述是小編給大家介紹的python 對任意數(shù)據(jù)和曲線進(jìn)行擬合并求出函數(shù)表達(dá)式的三種解決方案,希望對大家有所幫助,也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • matplotlib交互式數(shù)據(jù)光標(biāo)mpldatacursor的實現(xiàn)

    matplotlib交互式數(shù)據(jù)光標(biāo)mpldatacursor的實現(xiàn)

    這篇文章主要介紹了matplotlib交互式數(shù)據(jù)光標(biāo)mpldatacursor的實現(xiàn) ,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Pycharm如何對python文件進(jìn)行打包

    Pycharm如何對python文件進(jìn)行打包

    這篇文章主要介紹了Pycharm如何對python文件進(jìn)行打包,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 詳解Python發(fā)送郵件實例

    詳解Python發(fā)送郵件實例

    這篇文章主要介紹了Python發(fā)送郵件實例,Python發(fā)送郵件需要smtplib和email兩個模塊,感興趣的小伙伴們可以參考一下
    2016-01-01
  • 利用Python的turtle庫繪制玫瑰教程

    利用Python的turtle庫繪制玫瑰教程

    今天小編就為大家分享一篇利用Python的turtle庫繪制玫瑰教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • 在Python中封裝GObject模塊進(jìn)行圖形化程序編程的教程

    在Python中封裝GObject模塊進(jìn)行圖形化程序編程的教程

    這篇文章主要介紹了在Python中封裝GObject模塊進(jìn)行圖形化程序編程的教程,本文來自于IBM官方網(wǎng)站技術(shù)文檔,需要的朋友可以參考下
    2015-04-04
  • Python編程深度學(xué)習(xí)繪圖庫之matplotlib

    Python編程深度學(xué)習(xí)繪圖庫之matplotlib

    今天小編就為大家分享一篇關(guān)于Python編程深度學(xué)習(xí)繪圖庫之matplotlib,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Python模塊的加載講解

    Python模塊的加載講解

    今天小編就為大家分享一篇關(guān)于Python模塊的加載講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • 原生python實現(xiàn)knn分類算法

    原生python實現(xiàn)knn分類算法

    這篇文章主要介紹了原生python實現(xiàn)knn分類算法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • 基于web管理OpenVPN服務(wù)的安裝使用詳解

    基于web管理OpenVPN服務(wù)的安裝使用詳解

    這篇文章主要為大家介紹了基于web管理OpenVPN服務(wù)的安裝使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • python 多線程爬取壁紙網(wǎng)站的示例

    python 多線程爬取壁紙網(wǎng)站的示例

    這篇文章主要介紹了python 多線程爬取壁紙網(wǎng)站的示例,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-02-02

最新評論