国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python做曲線擬合(一元多項(xiàng)式擬合及任意函數(shù)擬合)

這篇具有很好參考價(jià)值的文章主要介紹了Python做曲線擬合(一元多項(xiàng)式擬合及任意函數(shù)擬合)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

1. 一元多項(xiàng)式擬合

使用方法?np.polyfit(x, y, deg)

2. 任意函數(shù)擬合

使用 curve_fit() 方法

實(shí)例:

(1)初始化 x 和 y 數(shù)據(jù)集

(2)建立自定義函數(shù)

(3)使用自定義的函數(shù)生成擬合函數(shù)繪圖?


1. 一元多項(xiàng)式擬合

使用方法?np.polyfit(x, y, deg)

polyfig 使用的是最小二乘法,用于擬合一元多項(xiàng)式函數(shù)。

參數(shù)說明: x 就是x坐標(biāo),y 就是y坐標(biāo),deg 為擬合多項(xiàng)式的次數(shù)。

實(shí)例:

根據(jù) ti yi 兩個(gè)列表來得到 一元二次多項(xiàng)式擬合函數(shù) (deg為2)

import matplotlib.pyplot as plt
import numpy as np
import pylab as mpl
ti = [1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 6, 6.5, 7, 7.5, 8]
yi = [33.40, 79.50, 122.65, 159.05, 189.15, 214.15, 238.65, 252.2, 267.55, 280.50, 296.65, 301.65, 310.4, 318.15, 325.15]

z1 = np.polyfit(ti, yi, 2)
print(z1)

輸出結(jié)果:

分別是二次多項(xiàng)式的 3 個(gè)系數(shù),y = ax^2 + bx + c

python擬合函數(shù),Python,python,開發(fā)語言

2. 任意函數(shù)擬合

使用 curve_fit() 方法

curve_fit() 使用是非線性最小二乘法將函數(shù)進(jìn)行擬合,適用范圍:多元、任意函數(shù)

scipy.optimize.curve_fit(f,xdata,ydata,p0 = None)

常用參數(shù)說明:

f: 模型函數(shù)f(x,…)。它必須將自變量作為第一個(gè)參數(shù),其余你需要求的參數(shù)都放后面
xdata: 數(shù)組對象,測量數(shù)據(jù)的自變量。
ydata: 數(shù)組對象,因變量。
p0:參數(shù)的初始猜測(長度 N),如果為None,則初始值為1(如果可以使用自省來確定函數(shù)的參數(shù)數(shù)量,否則會引發(fā) ValueError)。

?返回值:

popt: 數(shù)組,參數(shù)的最佳值,以使的平方殘差之和最小。f(xdata, *popt) - ydata
pcov: 二維陣列,popt的估計(jì)協(xié)方差。對角線提供參數(shù)估計(jì)的方差。

實(shí)例:

(1)初始化 x 和 y 數(shù)據(jù)集

x 為 0~19(包括0和19),y=2x^2 + (二十個(gè)0~100范圍內(nèi)的隨機(jī)數(shù)

import numpy as np
x = np.arange(0,20)
y = 2 * x ** 2 + np.random.randint(0, 100, 20)

#z = 2 * x ** 2 + np.random.randint(0, 100, (1,20))[0]

如圖為生成 x 列表和 y 列表的值(具有隨機(jī)性):

python擬合函數(shù),Python,python,開發(fā)語言

python擬合函數(shù),Python,python,開發(fā)語言

?補(bǔ)充一下 np.random.randint()用法:

numpy.random.randint(low, high=None, size=None, dtype=int)

參數(shù)說明:

1. low: int 生成的數(shù)值的最小值(包含),默認(rèn)為0,可省略。
2. high: int 生成的數(shù)值的最大值(不包含)。
3. size: int or tuple of ints 隨機(jī)數(shù)的尺寸, 默認(rèn)是返回單個(gè),輸入 20 返回 20個(gè),輸入 (3,4) 返回的是一個(gè) 3*4 的二維數(shù)組。(可選)。
4. dtype:想要輸出的結(jié)果類型。默認(rèn)值為int。(可選,一般用不上)。

(2)建立自定義函數(shù)

?定義函數(shù)? y=ax^2

#變量一定要放在第一個(gè)位置
def func(x, a):
    return a*x**2

popt, pcov = curve_fit(func, x, y, p0=1) #p0 = 1是因?yàn)橹挥衋一參數(shù)
print(popt) #即參數(shù)a的最佳值
print(pcov)

輸出結(jié)果:

python擬合函數(shù),Python,python,開發(fā)語言

?定義函數(shù) y=2x^2+bx+c

#變量一定要放在第一個(gè)位置
def func(x, a, b, c):
    return a*x**2 + b*x + c

popt, pcov = curve_fit(func, x, y) #p0 = 1是因?yàn)橹挥衋一參數(shù)
print(popt) #即參數(shù)a的最佳值
print(pcov)

輸出結(jié)果:

python擬合函數(shù),Python,python,開發(fā)語言

(3)使用自定義的函數(shù)生成擬合函數(shù)繪圖?

對第二個(gè)擬合函數(shù)繪圖:

完整代碼:

注意:在畫圖是可能會出現(xiàn)坐標(biāo)中文亂碼的問題,需要加入以下幾行:

import pylab as mpl

mpl.rcParams['font.sans-serif'] = ['SimHei']? # 解決中文不顯示問題 plt.rcParams['axes.unicode_minus']=False? #解決負(fù)數(shù)坐標(biāo)顯示問題

import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
import pylab as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']  # 解決中文不顯示問題
plt.rcParams['axes.unicode_minus']=False       #解決負(fù)數(shù)坐標(biāo)顯示問題

x = np.arange(0,20)
y = 2 * x ** 2 + np.random.randint(0, 100, 20)
z = 2 * x ** 2 + np.random.randint(0, 100, (1,20))[0]
print(x)
print(y)

#變量一定要放在第一個(gè)位置
def func(x, a, b, c):
    return a*x**2 + b*x + c

popt, pcov = curve_fit(func, x, y) #p0 = 1是因?yàn)橹挥衋一參數(shù)
print(popt) #即參數(shù)a的最佳值
print(pcov)
#popt[0],popt[1],popt[2]分別代表參數(shù)a b c
y2 = func(x,popt[0],popt[1],popt[2])

plt.scatter(x, y, marker='x',lw=1,label='原始數(shù)據(jù)')
plt.plot(x,y2,c='r',label='擬合曲線')
plt.legend() # 顯示label
plt.show()

運(yùn)行結(jié)果:

python擬合函數(shù),Python,python,開發(fā)語言

?python擬合函數(shù),Python,python,開發(fā)語言


?使用指數(shù)函數(shù):

y = ae^(bx)

python擬合函數(shù),Python,python,開發(fā)語言

繪圖效果:

python擬合函數(shù),Python,python,開發(fā)語言文章來源地址http://www.zghlxwxcb.cn/news/detail-786770.html

到了這里,關(guān)于Python做曲線擬合(一元多項(xiàng)式擬合及任意函數(shù)擬合)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • MATLAB polyfit函數(shù)——多項(xiàng)式擬合

    MATLAB polyfit函數(shù)——多項(xiàng)式擬合

    ? ? 此函數(shù)用一個(gè)n次多項(xiàng)式來擬合一組數(shù)據(jù)點(diǎn)(x,y),并且將多項(xiàng)式系數(shù)以數(shù)組p的形式輸出,p中的系數(shù)按降冪排列,數(shù)組長度為 n+1。 ? ? 如果要將擬合好的多項(xiàng)式系數(shù)繪制出來,可以使用polyval函數(shù): ? ? 此函數(shù)的作用是對給定的x1的值,通過多項(xiàng)式系數(shù)數(shù)組p計(jì)算對應(yīng)的y1值

    2024年02月16日
    瀏覽(17)
  • numpy 多項(xiàng)式函數(shù)回歸與插值擬合模型;ARIMA時(shí)間序列模型擬合

    numpy 多項(xiàng)式函數(shù)回歸與插值擬合模型;ARIMA時(shí)間序列模型擬合

    參考: https://blog.csdn.net/mao_hui_fei/article/details/103821601 1、多項(xiàng)式函數(shù)回歸擬合 x ^3+ x ^2… 2、多項(xiàng)式函數(shù)插值擬合 對于插值函數(shù) interp1d(phone_time, phone_x, kind=‘cubic’),無法直接獲取多項(xiàng)式的參數(shù)與具體函數(shù)表達(dá)式。這是因?yàn)樵摵瘮?shù)使用樣條插值方法,它的內(nèi)部實(shí)現(xiàn)是基于一組數(shù)

    2024年02月16日
    瀏覽(28)
  • 數(shù)學(xué)建模--多項(xiàng)式擬合方法Python實(shí)現(xiàn)

    數(shù)學(xué)建模--多項(xiàng)式擬合方法Python實(shí)現(xiàn)

    目錄 ? ?1.算法設(shè)計(jì)思路 ?2.算法核心代碼 ?3.算法效果展示 1.算法設(shè)計(jì)思路 ?2.算法核心代碼 ?3.算法效果展示

    2024年02月07日
    瀏覽(18)
  • 數(shù)學(xué)建模--非多項(xiàng)式擬合法的Python實(shí)現(xiàn)

    數(shù)學(xué)建模--非多項(xiàng)式擬合法的Python實(shí)現(xiàn)

    目錄 ??1.算法異同區(qū)別 ? 2.算法核心步驟 ? 3.算法核心代碼 ? 4.算法效果展示 1.算法異同區(qū)別 ? 2.算法核心步驟 ? 3.算法核心代碼 ? 4.算法效果展示

    2024年02月09日
    瀏覽(17)
  • 【C 數(shù)據(jù)結(jié)構(gòu)】 用單鏈表存儲一元多項(xiàng)式,并實(shí)現(xiàn)兩個(gè)多項(xiàng)式相加運(yùn)算。

    【C 數(shù)據(jù)結(jié)構(gòu)】 用單鏈表存儲一元多項(xiàng)式,并實(shí)現(xiàn)兩個(gè)多項(xiàng)式相加運(yùn)算。

    本次代碼純c語言,可以支持輸入兩個(gè)多項(xiàng)式的項(xiàng)式、系數(shù)、指數(shù)。 實(shí)驗(yàn)?zāi)康模?1 掌握單鏈表的基本工作原理; 2 實(shí)現(xiàn)鏈?zhǔn)酱鎯ο碌膬蓚€(gè)多項(xiàng)式的相加。 實(shí)驗(yàn)步驟 1 定義鏈?zhǔn)酱鎯Φ臄?shù)據(jù)結(jié)構(gòu) 2 完成多項(xiàng)式的初始化,即給多項(xiàng)式賦初值 3 完成多項(xiàng)式的輸出 4 實(shí)現(xiàn)多項(xiàng)式的相加及結(jié)

    2024年02月06日
    瀏覽(34)
  • 【鏈表應(yīng)用】| 一元多項(xiàng)式的操作

    【鏈表應(yīng)用】| 一元多項(xiàng)式的操作

    專欄推薦:寫文章剛剛起步,各個(gè)專欄的知識點(diǎn)后續(xù)會補(bǔ)充完善,不斷更新好文,希望大 家支持一下。 專欄 名字 Elasticsearch專欄 es spring專欄 spring開發(fā) redis專欄 redis學(xué)習(xí)筆記 項(xiàng)目專欄 項(xiàng)目集錦 修bug專欄 bug修理廠 設(shè)有兩個(gè)一元多項(xiàng)式: p(x)=p0+p1x+p2x2+···+pnxn q(x)=q0+q1x+q2x2+··

    2024年02月06日
    瀏覽(37)
  • 一元多項(xiàng)式相加問題(兩種方法)

    一元多項(xiàng)式相加問題(兩種方法)

    一元多項(xiàng)式的相加問題,主要運(yùn)用了線性結(jié)構(gòu)的合并,在合并線性結(jié)構(gòu)的基礎(chǔ)上,增加判斷,所以我們可以將這個(gè)問題理解為一個(gè)復(fù)雜的線性表合并問題? 目錄 問題描述 一、順序表法 1.1 初始化并創(chuàng)建順序表 1.2 一元多項(xiàng)式相加算法 1.3 完整代碼 二、單鏈表法 1.1 初始化并創(chuàng)

    2024年02月06日
    瀏覽(24)
  • 【數(shù)據(jù)結(jié)構(gòu)】一元多項(xiàng)式的表示及相加

    【數(shù)據(jù)結(jié)構(gòu)】一元多項(xiàng)式的表示及相加

    ??博客主頁: 程序員好冰 ??歡迎 【點(diǎn)贊?? 關(guān)注?? 收藏?? 留言??】 ??本文由 程序員好冰 原創(chuàng),CSDN 首發(fā)! ??入站時(shí)間: ??2022 年 07 月 13 日?? ?? 是非不入松風(fēng)耳,花落花開只讀書。 ??推薦書籍:??《Java編程思想》,??《Java 核心技術(shù)卷》 ??參考在線編程網(wǎng)

    2024年02月11日
    瀏覽(23)
  • 數(shù)據(jù)結(jié)構(gòu)(嚴(yán)蔚敏)【一元多項(xiàng)式的運(yùn)算】【C語言】

    數(shù)據(jù)結(jié)構(gòu)(嚴(yán)蔚敏)【一元多項(xiàng)式的運(yùn)算】【C語言】

    1、一元多項(xiàng)式的運(yùn)算:實(shí)現(xiàn)兩個(gè)多項(xiàng)式加、減乘運(yùn)算 設(shè)計(jì)內(nèi)容: 用順序存儲結(jié)構(gòu)實(shí)現(xiàn)一元多項(xiàng)式的加法、減法和乘法。具體要求為:用五個(gè)函數(shù)分別實(shí)現(xiàn)一元多項(xiàng)式的創(chuàng)建、輸出、加法、減法和乘法; 設(shè)計(jì)思路: 將順序表數(shù)組下標(biāo)作為多項(xiàng)式的指數(shù)項(xiàng),數(shù)組內(nèi)的數(shù)據(jù)元素

    2023年04月15日
    瀏覽(39)
  • PTA 習(xí)題3.6 一元多項(xiàng)式的乘法與加法運(yùn)算

    PTA 習(xí)題3.6 一元多項(xiàng)式的乘法與加法運(yùn)算

    設(shè)計(jì)函數(shù)分別求兩個(gè)一元多項(xiàng)式的乘積與和。 輸入格式: 輸入分2行,每行分別先給出多項(xiàng)式非零項(xiàng)的個(gè)數(shù),再以指數(shù)遞降方式輸入一個(gè)多項(xiàng)式非零項(xiàng)系數(shù)和指數(shù)(絕對值均為不超過1000的整數(shù))。數(shù)字間以空格分隔。 輸出格式: 輸出分2行,分別以指數(shù)遞降方式輸出乘積多項(xiàng)式

    2024年02月07日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包