最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

import numpy as np
import matplotlib.pyplot as plt
 
#定義x、y散點(diǎn)坐標(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次多項(xiàng)式擬合
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ù)的各項(xiàng)系數(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散點(diǎn)坐標(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散點(diǎn)坐標(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)文章

  • python pyppeteer 破解京東滑塊功能的代碼

    python pyppeteer 破解京東滑塊功能的代碼

    這篇文章主要介紹了python pyppeteer 破解京東滑塊功能的代碼,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Python開發(fā)之城堡保衛(wèi)戰(zhàn)游戲的實(shí)現(xiàn)

    Python開發(fā)之城堡保衛(wèi)戰(zhàn)游戲的實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了如何利用Python編寫一個簡單的城堡保衛(wèi)戰(zhàn)游戲,本文用到了os文件讀寫,pygame模塊以及面向?qū)ο笏枷耄信d趣的可以了解一下
    2023-01-01
  • Python通過matplotlib繪制動畫簡單實(shí)例

    Python通過matplotlib繪制動畫簡單實(shí)例

    這篇文章主要介紹了Python通過matplotlib繪制動畫簡單實(shí)例,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • Django使用Celery異步任務(wù)隊(duì)列的使用

    Django使用Celery異步任務(wù)隊(duì)列的使用

    這篇文章主要介紹了Django使用Celery異步任務(wù)隊(duì)列的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • python內(nèi)置函數(shù)breakpoint()與bytearray()示例詳解

    python內(nèi)置函數(shù)breakpoint()與bytearray()示例詳解

    本文給大家分享的是python內(nèi)置函數(shù)breakpoint()與bytearray()的相關(guān)資料,并給大家附上了詳細(xì)代碼,有需要的小伙伴可以參考下
    2017-04-04
  • Python類和對象的定義與實(shí)際應(yīng)用案例分析

    Python類和對象的定義與實(shí)際應(yīng)用案例分析

    這篇文章主要介紹了Python類和對象的定義與實(shí)際應(yīng)用,結(jié)合三個具體案例形式分析了Python面向?qū)ο蟪绦蛟O(shè)計(jì)中類與對象的定義、應(yīng)用、設(shè)計(jì)模式等相關(guān)操作技巧,需要的朋友可以參考下
    2018-12-12
  • python 并發(fā)編程 阻塞IO模型原理解析

    python 并發(fā)編程 阻塞IO模型原理解析

    這篇文章主要介紹了python 并發(fā)編程 阻塞IO模型原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • Python 硬幣兌換問題

    Python 硬幣兌換問題

    這篇文章主要介紹了Python 硬幣兌換問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 構(gòu)建Python中的分布式系統(tǒng)結(jié)合Celery與RabbitMQ

    構(gòu)建Python中的分布式系統(tǒng)結(jié)合Celery與RabbitMQ

    在本文中,我們深入探討了如何利用Celery和RabbitMQ構(gòu)建Python中的分布式系統(tǒng),我們首先介紹了Celery和RabbitMQ的概念及其優(yōu)勢,然后展示了如何結(jié)合它們來創(chuàng)建一個簡單但功能強(qiáng)大的分布式系統(tǒng),感興趣的朋友跟隨小編一起看看吧
    2024-05-05
  • Python爬蟲利器之PhantomJS詳解

    Python爬蟲利器之PhantomJS詳解

    這篇文章主要介紹了Python爬蟲利器之PhantomJS詳解,PhantomJS是一個基于WebKit的無頭瀏覽器,它沒有圖形界面,但是它可以像傳統(tǒng)的瀏覽器一樣訪問web頁面,并返回已呈現(xiàn)的內(nèi)容,PhantomJS是一種命令行工具,可以用它來測試和爬取Web頁面,需要的朋友可以參考下
    2023-09-09

最新評論

嘉义市| 鹤岗市| 柯坪县| 长垣县| 济阳县| 旬阳县| 搜索| 永年县| 和硕县| 松滋市| 阜平县| 邵阳县| 河东区| 逊克县| 黔江区| 滦平县| 襄汾县| 乐平市| 余干县| 噶尔县| 沽源县| 广平县| 巢湖市| 和龙市| 凤台县| 新巴尔虎左旗| 筠连县| 临桂县| 鄂州市| 湛江市| 五指山市| 望谟县| 西城区| 宁蒗| 白玉县| 合川市| 桐城市| 中山市| 康平县| 民丰县| 邵阳市|