11/28/2006

11.11 多項式適配polytool

多項式繪圖工具polytool


指令polytool函數可以利用交談的方式配合多項式曲線進行繪圖及預測。其語法如下:

polytool(x,y)
polytool(x,y,n)
polytool(x,y,n,alpha)
polytool(x,y,n,alpha,xname,yname)
h = polytool(...)

內容包括一般直線及多項式線 ,其中n代表多項式之階數,其預設值為1;x及y為對應之資料陣列。alpha為信任區間,其預設值為0.05。這個指令配合繪圖,可以將預測之曲線直接繪出。其參數可以自動產生(在無任何輸入參數時),亦可依需要輸入xy之對應觀測值,其他參數之定義與polyfit相同。另外亦可加上X軸與Y軸之名稱 xname, yname。左邊之h值為其握把。其產生多項式之型式如下:

y=β01x+β2x2+...+βnn
  

在沒有參數時,此指令自動用下面之函數產生,例如:

x = (1:10)';
y = 50 + 4*x - 0.75*x.^2 + randn(10,1);
>> polytool(x,y,3)




在圖中可以改變階數,並可改變X值以求其對應Y值及變化範圍。其相關係數可以輸出至變數空間中作進一步處理。

多項式適配例


在工具箱中,MATLAB有存一筆資料polydata.mat,可以用load指令下載再用此指令執行,進行預測。此指令以適配多項式,預測中間值。

>>load polydata;
>>whos

x 1x43 344 double array
x1 1x101 808 double array
y 1x43 344 double array
y1 1x101 808 double array

這個檔案中含有四個變數,其中x、y為觀測值,而x1、y1則為真實函數對應值。為使用ploytool進行適配,函數指令如下:

polytool(x,y)

其所得之資料點及適配線如下圖:


由圖中所示,顯然使用預計線性適配之結果並不很好。大部份之資料點均集中在左側,而右側較遠處則有兩點在左側方向。此時若利用其交談功能,將位階改為三次方項,結果為


此時適配之資料顯然較佳,其上下限也較為接近。當然要求更接近之預測值也許可以試著增加其階數。但有時並不一定能到十分美意的地步,這就有待讀者自行酙酌。

由此工具之協助,最後可由左下角之輸出按鈕輸出相關之適配方程式係數至工作空間內,讀者可自行摸索,本例之對應範圍為:
 
y=49.348+3.7361x-0.6149x2-0.010235x3
  
其變化範圍上下限為:
 
Lower limit:
y=45.134+0.57715x-1.2665x2-0.049307x3

Higher limit:
y=53.562+6.895x+0.03667x2-0.028838x3