當前位置:編程學習大全網 - 編程語言 - 我的MATLAB作業第壹題

我的MATLAB作業第壹題

假設有壹組數據型態為 y=y(x),其中 x={0, 1, 2, 3, 4, 5}, y={0, 20, 60, 68, 77, 110} 如果我們要以壹個最簡單的方程式來近似這組數據,則非壹階的線性方程式莫屬。先將這組數據繪圖如下 圖中的斜線是我們隨意假設壹階線性方程式 y=20x,用以代表這些數據的壹個方程式。以下將上述繪圖的 MATLAB 指令列出,並計算這個線性方程式的 y 值與原數據 y 值間誤差平方的總合。 >> x=[0 1 2 3 4 5]; >> y=[0 20 60 68 77 110]; >> y1=20*x; % 壹階線性方程式的 y1 值 >> sum_sq = sum(y-y1).^2); % 誤差平方總合為 573 >> axis([-1,6,-20,120]) >> plot(x,y1,x,y,'o'), title('Linear estimate'), grid 如此任意的假設壹個線性方程式並無根據,如果換成其它人來設定就可能采用不同的線性方程式;所以我們 須要有比較精確方式決定理想的線性方程式。我們可以要求誤差平方的總合為最小,做為決定理想的線性方 程式的準則,這樣的方法就稱為最小平方誤差(least squares error)或是線性回歸。MATLAB的polyfit函數提供了 從壹階到高階多項式的回歸法,其語法為polyfit(x,y,n),其中x,y為輸入數據組n為多項式的階數,n=1就是壹階 的線性回歸法。polyfit函數所建立的多項式可以寫成 從polyfit函數得到的輸出值就是上述的各項系數,以壹階線性回歸為例n=1,所以只有 二個輸出值。如果指令為coef=polyfit(x,y,n),則coef(1)= , coef(2)=,...,coef(n+1)= 。註意上式對n 階的多 項式會有 n+1 項的系數。我們來看以下的線性回歸的示範: >> x=[0 1 2 3 4 5]; >> y=[0 20 60 68 77 110]; >> coef=polyfit(x,y,1); % coef 代表線性回歸的二個輸出值 >> a0=coef(1); a1=coef(2); >> ybest=a1*x+a0; % 由線性回歸產生的壹階方程式 >> sum_sq=sum(y-ybest).^2); % 誤差平方總合為 356.82 >> axis([-1,6,-20,120]) >> plot(x,ybest,x,y,'o'), title('Linear regression estimate'), grid

  • 上一篇:Nodejs學習筆記之NET模塊
  • 下一篇:如何有效學習Python
  • copyright 2024編程學習大全網