Python中numpy.polyfit的用法详解
numpy中polyfit的用法
参数
polyfit(x, y, deg, rcond=None, full=False, w=None, cov=False):
 
x:M个采样点的横坐标数组;
 y:M个采样点的纵坐标数组;y可以是一个多维数组,这样即可拟合相同横坐标的多个多项式;
 deg:多项式阶数。
 rcond:Relative condition number,float型,缺省值为 
     
      
       
       
         l 
        
       
         e 
        
       
         n 
        
       
         ( 
        
       
         x 
        
       
         ) 
        
       
         ∗ 
        
       
         2 
        
        
        
          e 
         
         
         
           − 
          
         
           16 
          
         
        
       
      
        len(x)*2e^{-16} 
       
      
    len(x)∗2e−16
 full:bool型,缺省为False,此时只返回系数向量;full=True时还返回奇异值分解的诊断信息。
 w:要应用于采样点的y坐标的权重。缺省为None,形式应该为和y一样长的数组。
 cov:bool型,返回估计值及其协方差矩阵。当full=True时不返回cov。
返回值p:多项式系数矩阵,从高阶到低阶,最后一位是常数项。
功能
根据用户给定的x、y、多项式阶数等信息拟合多项式。返回值是一个系数向量。
原理
最小二乘拟合。即使得平方误差最小化。即使得下式最小:
  
      
       
        
        
          E 
         
        
          = 
         
         
         
           ∑ 
          
          
          
            j 
           
          
            = 
           
          
            0 
           
          
         
           k 
          
         
        
          ∣ 
         
        
          p 
         
        
          ( 
         
         
         
           x 
          
         
           j 
          
         
        
          ) 
         
        
          − 
         
         
         
           y 
          
         
           j 
          
         
         
         
           ∣ 
          
         
           2 
          
         
        
       
         E = \sum_{j=0}^k |p(x_j) - y_j|^2 
        
       
     E=j=0∑k∣p(xj)−yj∣2
用例
>>> x = np.array([0.0, 1.0, 2.0, 3.0,  4.0,  5.0])
>>> y = np.array([0.0, 0.8, 0.9, 0.1, -0.8, -1.0])
>>> z = np.polyfit(x, y, 3)
>>> z
array([ 0.08703704, -0.81349206,  1.69312169, -0.03968254])