利用np.polyfit實現多項式擬合

2021-12-21 挨踢的土木佬

收錄於話題 #挨踢數值分析筆記 10個內容

本文記錄利用numpy.polyfit實現多項式係數的擬合以及利用numpy.polyder實現求導,並通過numpy.poly1d將係數轉換為多項式函數。

示例代碼如下:

import numpy as np
import matplotlib.pyplot as plt

xs = np.linspace(0,1,31)
ys = np.sin(xs*np.pi*3)
# ys = xs**2+0.5

fit_fn_arg = np.polyfit(xs,ys,10) ### 擬合出來的多項式係數  最高次數為10
df = np.polyder(fit_fn_arg)  ### 多項式求導後的係數
df2 = np.polyder(df)
fit_fn = np.poly1d(fit_fn_arg)
print(fit_fn_arg,fit_fn_arg.shape)
print(df)

fig = plt.figure()
ax1 = fig.add_subplot(211)
ax2 = fig.add_subplot(212)
ax1.scatter(xs,ys,label="original data",c="red")
ax1.plot(xs,fit_fn(xs),label="fit data")
ax2.plot(xs,np.poly1d(df)(xs),label="1 st derivatives")
ax2.plot(xs,np.poly1d(df2)(xs),label="2 st derivatives")

ax1.legend()
ax2.legend()
plt.show()

代碼運行結果如下,擬合了1、2階的導數:

相關焦點

  • 二次多項式擬合曲線 - CSDN
    多項式擬合一次函數運行結果:100運行結果:[4.00355516 1.55927961]# 還可以用 poly1d 生成一個以傳入的 coeff 為參數的多項式函數:多項式擬合正弦函數最小二乘擬合運行結果:
  • 應用matlab進行多項式擬合
    採用matlab軟體中的polyfit()函數進行多項式擬合,分別採用5階多項式和9階多項式進行擬合,並對擬合結果進行繪圖對比。,y,5); %5階多項式擬合y5=polyval(p5,x);p5=vpa(poly2sym(p5),5)%顯示5階多項式p9=polyfit(x,y,9); %9階多項式擬合y9=polyval(p9,x);
  • python散點圖中如何添加擬合線並顯示擬合方程與R方?
    CDA數據分析師 出品polyfit()函數可以使用最小二乘法將一些點擬合成一條曲線.numpy.polyfit(x, y, deg, rcond=None, full=False, w=None, cov=False)# x:要擬合點的橫坐標# y:要擬合點的縱坐標# deg:自由度.例如:自由度為2,那麼擬合出來的曲線就是二次函數,自由度是3,擬合出來的曲線就是3次函數首先我們先來構造一下需要被擬合的散點
  • 最小二乘法:氣溫的曲線擬合和評估(從二次到六次多項式曲線擬合,用RMSE評估擬合效果)
    % 利用polyfit()函數進行2次、3次、4次、5次、6次多項式曲線擬合p2 = polyfit(M,T',2);p3 = polyfit(M,T',3);p4 = polyfit(M,T',4);p5 = polyfit(M,T',5);p6 = polyfit(M,T',6);MM = 1:0.1:12;% 利用polyval()函數計算多項式擬合函數的函數值
  • 【基礎教程】Matlab 曲線擬合之polyfit與polyval函數
    [y,DELTA]=polyval(p,x,s) 使用polyfit函數的選項輸出s得出誤差估計Y DELTA。它假設polyfit函數數據輸入的誤差是獨立正態的,並且方差為常數。則Y DELTA將至少包含50%的預測值。
  • 4.算法類(1) --Matlab多項式曲線擬合預測新冠病毒感染人數
    首先,使用datetime函數,指定開始日期: 由於繪圖時橫坐標需要精確到每天,故將每天的datetime類型通過for循環存入數組:利用caldays函數進行日期的加減運算。3、模型建立——多項式擬合3.1、多項式擬合原理和本文說明多項式擬合是用一個多項式展開去擬合包含數個分析格點的一小塊分析區域中的所有觀測點
  • Matlab教程(1)——多項式擬合
    二、應用場景描述我們知道,熱電優值的表達式是zT = S²σT /κ, 一般在研究熱電材料時,限於現有的測試條件,材料的電學性能(Seebeck係數S,電導率σ)和熱學性能(熱導率κ)會被分開測量,而測完的性能對應的測試溫度往往不會很完美地對齊,如果這時候需要計算zT,我們需要以其中一列溫度為基準,將熱電性能統一到這列溫度上,因此需要對測得數據需要擬合處理
  • 數據擬合原理及MATLAB實現
    數據擬合有幾種不同的判別標準,即不同的損失函數,比如預測值與實際值偏差的絕對值之和、偏差的平方和最小(最小二乘法)等。2、多項式擬合將原始數據散點用多項式函數進行擬合,即為多項式擬合,進而通過最小二乘法求得多項式函數係數。
  • MATLAB數據擬合
    中數據擬合的原理是最小擬合的最小二乘原理,其中polyfit與polyval是最基本的擬合方法,除此之外,MATLAB還提供了更為直接簡單的數據擬合工具,cftool,下面舉一個例子,介紹這兩種數據擬合的方法。
  • matlab插值擬合(二)
    1 基於最小二乘法的多項式擬合函數:polyfitp = polyfit(x,y,n),待擬合的多項式為p(1)*x^n + p(2)*x^(n-1) +…+ p(n)*x + p(n+1),其中x是擬合數據的自變量,y是因變量,n是擬合多項式的階數,如當n為1時,即為一次線性擬合。
  • MATLAB繪製帶置信區間的擬合曲線
    曲線擬合是已知離散點上的數據集,構造一個解析函數(其圖形為一曲線),使在原離散點上儘可能接近給定的值。
  • MATLAB曲線擬合及Fourier分析
    4.6.1  最小二乘原理及其曲線擬合算法設測得離散的n+1個節點的數據如下:構造一個如下的m次擬合多項式函數g(x)為 (m≤n):所謂曲線擬合的最小二乘原理,就是使上述擬合多項式在各數據點處的偏差的平方之和達最小。上式中的均為已知值,而式中的係數為個未知數,故可以將其看做是的函數,即。
  • 總結MATLAB的線性擬合和非線性擬合函數參數
    曲線擬合是一種函數逼近的方法。可以分為線形擬合和非線性擬合。曲線擬合的原理:對於y = f(x),通過構造一個函數g(x)取逼近未知函數f(x),使得誤差在某種意義下達到最小。一般使用多項式函數作為逼近函數,使用最小二乘法計算誤差最小。曲線擬合的實現方法:使用polyfit()函數,其功能為求得最小二乘擬合多項式係數。
  • Matlab:以編程方式擬合
    通過最大限度地減小數據與模型偏差的平方和(最小二乘擬合),計算未知係數a0、a1、a2使用 polyfit 求多項式係數。p = polyfit(t,y,2)p = 1×3   -0.2942    1.0231    0.4981MATLAB 以降冪計算多項式係數。數據的二次多項式模型由以下方程給出:
  • matlab最小二乘法數據擬合函數詳解
    利用最小二乘法可 以簡便地求得未知的數據,並使得這些求得的數據與實際數據之間誤差的平方和為最小。最小二乘法還可用於曲線擬合。其他一些優化問題也可通過最小化能量或最大化熵用最小二乘法來表達。matlab中用最小二乘擬合的常用函數有polyfit(多項式擬合)、nlinfit(非線性擬合)以及regress(多元線性回歸)。自變量有2個或以上時,應變量一個,可以使用的有nlinfit和regress,線性時用regress,非線性時用nlinfit。對於進階matlab使用者還有更多的選擇,如擬合工具箱、fit函數、interp系列插值擬合等等。
  • Matlab曲線擬合和插值
    MATLAB軟體提供了基本的曲線擬合函數的命令.
  • 利用最小二乘法實現曲線擬合
    為此,本文將對最小二乘法的基本原理做簡單介紹,隨後介紹如何利用Matlab的lsqnonlin函數處理複雜函數的擬合問題。利用最小二乘法進行曲線擬合的本質為尋找某個近似函數φ(x),使得該函數與離散點之間儘可能地逼近。
  • 機器學習 | 多項式回歸處理非線性問題
    本文主要運用對比分析方法解釋線性數據、非線性數據、線性模型及非線性模型出發,並深入分析多項式回歸處理非線性數據的原理、效果及代碼實現。此時利用多項式將數據升維,並擬合數據,看看結果如何。rnd = np.random.RandomState(42) #設置隨機數種子 X = rnd.uniform(-3, 3, size=100)y = np.sin(X) + rnd.normal(size=len(X)) / 3#將X升維,準備好放入sklearn中 X = X.reshape(-1,1)#多項式擬合,設定高次項d=5
  • 深度學習基礎(十一):使用TensorFlow 了解overfitting 與underfitting[過擬合與欠擬合]
    因此,如果數據過少,則訓練出的模型容易發生過擬合的結果。模擬過擬合與欠擬合接著,我們嘗試模擬過擬合與欠擬合發生的情況,將使用多項式回歸(polynomial regression) 擬合以下函數,用擬合的結果解釋過擬合與欠擬合。
  • 高考數學原創試題—多項式擬合
    泰勒展開式表明,具有n階導數的函數,可近似的由一個n次多項式表示,n取值越大,越接近於真實的函數,因此利用n階多項式可以對函數進行擬合,這種方法在近似計算等領域有著重要的應用。我們知道,一次函數的圖象是一條直線,因此是單調函數。