回覆列表
  • 1 # 影片好笑

    曲線擬合已知離散點上的資料集,即已知在點集上的函式值,構造一個解析函式(其圖形為一曲線)使在原離散點上儘可能接近給定的值,這一過程稱為曲線擬合。最常用的曲線擬合方法是最小二乘法,該方法是尋找函式使得最小。MATLAB函式:p=polyfit(x,y,n)[p,s]= polyfit(x,y,n)說明:x,y為資料點,n為多項式階數,返回p為冪次從高到低的多項式係數向量p。x必須是單調的。矩陣s用於生成預測值的誤差估計。(見下一函式polyval)多項式曲線求值函式:polyval()呼叫格式: y=polyval(p,x)[y,DELTA]=polyval(p,x,s)說明:y=polyval(p,x)為返回對應自變數x在給定係數P的多項式的值。[y,DELTA]=polyval(p,x,s) 使用polyfit函式的選項輸出s得出誤差估計YDELTA。它假設polyfit函式資料輸入的誤差是獨立正態的,並且方差為常數。則YDELTA將至少包含50%的預測值。練習:如下給定資料的擬合曲線,x=[0.5,1.0,1.5,2.0,2.5,3.0],y=[1.75,2.45,3.81,4.80,7.00,8.60]。解:MATLAB程式如下:x=[0.5,1.0,1.5,2.0,2.5,3.0];y=[1.75,2.45,3.81,4.80,7.00,8.60];p=polyfit(x,y,2)x1=0.5:0.05:3.0;y1=polyval(p,x1);plot(x,y,"*r",x1,y1,"-b")計算結果為:p =0.5614 0.82871.1560即所得多項式為y=0.5614x^2+0.08287x+1.15560======================================================================================================================================================polyfit函式是matlab中用於進行曲線擬合的一個函式。曲線擬合:已知離散點上的資料集,即已知在點集上的函式值,構造一個解析函式(其圖形為一曲線)使在原離散點上儘可能接近給定的值。  解釋1  用法 polyfit(x,y,n ) ;用多項式求過已知點的表示式,其中x為源資料點對應的橫座標,可為行向量、矩陣,y為源資料點對應的縱座標,可為行向量、矩陣,n為你要擬合的階數,一階直線擬合,二階拋物線擬合,並非階次越高越好,看擬合情況  matlab polyfit 做出來的值從左到右表示從高次到低次的多項式係數  給個例子一看就知道了  x = (0: 0.1: 2.5)";  y = erf(x);  p = polyfit(x,y,6)  p =  0.0084 -0.0983 0.4217 -0.7435 0.1471 1.1064 0.0004  則y=0.0084x^6-0.0983x^5+0.4217x^4-0.7435x^3+0.1471x^2+1.1064x+0.0004  解釋2:  MATLAB軟體提供了基本的曲線擬合函式的命令.  多項式函式擬合:a=polyfit(xdata,ydata,n)  其中n表示多項式的最高階數,xdata,ydata為將要擬合的資料,它是用陣列的方式輸入.輸出引數a為擬合多項式y=a1xn+...+anx+a n+1的係數  多項式在x處的值y可用下面程式計算.  y=polyval(a,x,m)  線性:m=1, 二次:m=2, …  polyfit的輸出是一個多項式係數的行向量。為了計算在xi資料點的多項式值,呼叫MATLAB的函式polyval。  例:  x=0:0.1:1; y=[-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.489.30 11.2]; polyfit用法示例結果A=polyfit(x,y,2)  z=polyval(A,x);  plot(x,y,"r*",x,z,"b")  釋疑:  在不少書中和論壇上,polyfit被誤寫作“ployfit”,使得很多初學者誤解,認為自己安裝的MATLAB軟體出錯,無法找到這樣的函式。只要注意拼寫正確即可。同樣地,polyval函式也易被誤寫為“ployval”。

  • 中秋節和大豐收的關聯?
  • 胃潰瘍可以吃皮蛋粥麼?