第四講資料分析方法

2022-07-05 06:18:06 字數 5363 閱讀 7786

第一節、資料擬合

問題:給定一批資料點(輸入變數與輸出變數的資料),需確定滿足特定要求的曲線或

曲面。如果輸入變數和輸出變數都只有乙個,則屬於一元函式的擬合和插值;而若輸入變數

有多個,則為多元函式的擬合和插值(有點回歸分析的意思)

解決方案:

(1) 若要求所求曲線(面)通過所給所有資料點,就是插值問題;

(2) 若不要求曲線(面)通過所有資料點,而是要求它反映物件整體的變化趨勢,這就

是資料擬合,又稱曲線擬合或曲面擬合。

注意:插值和擬合都是要根據一組資料構造乙個函式作為近似,由於近似的要求不同,

二者的數學方法上是完全不同的。而面對乙個實際問題,究竟應該用插值還是擬合,有時

容易確定,有時則並不明顯。

例 1:下面資料是某次實驗所得,希望得到 x和 f之間的關係?xf

1247

9121315

171.5

3.96.6

11.7

15.6

18.8

19.6

20.6

21.1

曲線擬合問題最常用的解法——最小二乘法的基本思路

第一步:確定擬合的函式型別 y = f (x;a1,a2,",am ),其中a1,a2,",am為待定係數。

(函式型別的確定可以根據內在的規律確定,如果無現成的規則,則可以通過散點圖,聯絡

曲線的形狀進行分析)

第二步:確定a1,a2,",am的最小二乘準則:要求n個已知點(xi, yi )與曲線 y = f (x)n∑

的距離di的平方和 (yi f x 2 最小 。

( ))

ii=1

用 matlab作擬合

1.多項式擬合。作多項式 y = a0x

m+a1x m1 +"+ am擬合,可利用

a=polyfit(x,y,m)—其中 x,y為給出的資料,m為多項式的次數。

多項式在 x處的值 y可用以下命令計算:

y=polyval(a,x)

2.用 matlab作非線性最小二乘擬合

matlab的提供了兩個求非線性最小二乘擬合的函式:lsqcurvefit和 lsqnonlin。兩個命令

都要先建立 m-檔案 在其中定義函式 f(x)。

(1)x = lsqcurvefit (『fun』,x0,xdata,ydata);

(2)x =lsqcurvefit (『fun』,x0,xdata,ydata,options);

(3)x = lsqcurvefit (『fun』,x0,xdata,ydata,options,』grad』);

(4)[x, options] = lsqcurvefit (『fun』,x0,xdata,ydata,…);

(5)[x, options,funval] = lsqcurvefit (『fun』,x0,xdata,ydata,…);

1(6)[x, options,funval, jacob] = lsqcurvefit (『fun』,x0,xdata,ydata,…);

(7)x=lsqnonlin(『fun』,x0);

(8)x= lsqnonlin (『fun』,x0,options);

(9)x= lsqnonlin (『fun』,x0,options,『grad』);

(10)[x,options]= lsqnonlin (『fun』,x0,…);

(11)[x,options,funval]= lsqnonlin (『fun』,x0,…);

在使用 lsqcurvefit與 lsqnonlin命令時,共同的問題是要先知道函式的型別,而擬合其實是決

定函式中的待定係數。

第二節插值

插值的基本問題:給出n個數對,(pi, f (pi)),i =1,2,",n,求點 p處對應的函式值 f (p)。

一、一維插值

已知 n +1個節點 (xi, yi ),i = 0,1,",n,求任意點 *處的函式值 *。常用的插值方法xy

有拉格朗日多項式插值、牛頓插值、分段線性插值、hermite插值和三次樣條插值。

9 分段線性插值:將各資料點用折線連線起來

9 多項式插值:求乙個多項式通過所有資料點,可以假設出多項式的係數,最後通過

求解方程得到每個係數(拉格朗日插值,用n次多項式描述 n +1個點)

9 樣條插值:分段多項式的光滑連線(三次樣條插值)

9 牛頓插值:利用節點之間的各階差商和差分構造多項式

9hermite插值:對插值函式,不僅要求它在節點處與函式同值,而且要求它與函式有

相同的一階、二階甚至更高階的導數值

(1)matlab命令:y=interp1(x0,y0,x,'method')

method指定插值的方法,預設為線性插值。其值可為:

'nearest' 最近項插值

'linear'

'spline'

'cubic'

線性插值

立方樣條插值

立方插值。

所有的插值方法要求 x0是單調的。

當 x0為等距時可以用快速插值法,使用快速插值法的格式為'*nearest'、'*linear'、'*spline'、

'*cubic'。

(2)三次樣條插值在 matlab中的實現

在 matlab中資料點稱之為斷點。如果三次樣條插值沒有邊界條件,最常用的方法,就

是採用非扭結(not-a-knot)條件。這個條件強迫第 1個和第 2個三次多項式的三階導數相

等。對最後乙個和倒數第 2個三次多項式也做同樣地處理。

matlab中三次樣條插值也有現成的函式:

y=interp1(x0,y0,x,'spline');

y=spline(x0,y0,x);

pp=csape(x0,y0,conds),

pp=csape(x0,y0,conds,valconds),y=ppval(pp,x)。

其中 x0,y0是已知資料點,x是插值點,y是插值點的函式值。

對於三次樣條插值,我們提倡使用函式 csape,csape的返回值是 pp形式,要求插值點

2的函式值,必須呼叫函式 ppval。

pp=csape(x0,y0):使用預設的邊界條件,即 lagrange邊界條件。

pp=csape(x0,y0,conds,valconds)中的 conds指定插值的邊界條件,其值可為:

'complete'

邊界為一階導數,一階導數的值在 valconds引數中給出,若忽略 valconds

引數,則按預設情況處理。

'not-a-knot' 非扭結條件

'periodic'

'second'

週期條件

邊界為二階導數,二階導數的值在 valconds引數中給出,若忽略 valconds

引數,二階導數的預設值為[0, 0]。

'variational' 設定邊界的二階導數值為[0,0]。

對於一些特殊的邊界條件,可以通過 conds的乙個1× 2矩陣來表示,conds元素的取值

為 0,1,2。

conds(i)=j的含義是給定端點i的 j階導數,即 conds的第乙個元素表示左邊界的條件,

第二個元素表示右邊界的條件,conds=[2,1]表示左邊界是二階導數,右邊界是一階導數,對

應的值由 valconds給出。

例 2 工具機加工

待加工零件的外形根據工藝要求由一組資料(x, y)給出(在平面情況下),用程式控制銑床

加工時每一刀只能沿 x方向和 y方向走非常小的一步,這就需要從已知資料得到加工所要求

的步長很小的(x, y)座標。

表中給出的 x, y資料位於機翼斷面的下輪廓線上,假設需要得到 x座標每改變 0.1時的

y座標。試完成加工所需資料,畫出曲線,並求出 x = 0處的曲線斜率和13≤ x ≤ 15範圍

內 y的最小值。xy

0357

9112.012

1.813

1.214

1.015

1.60

1.21.7

2.02.1

要求用分段線性和三次樣條計算。

解編寫以下程式:

x0=[0 3 5 7 9 11 12 13 14 15];

y0=[0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6];

x=0:0.1:15;

y2=interp1(x0,y0,x);

y3=interp1(x0,y0,x,'spline');

pp1=csape(x0,y0);

y4=ppval(pp1,x);

pp2=csape(x0,y0,'second');

y5=ppval(pp2,x);

[x',y1',y2',y3',y4',y5']

subplot(2,2,1)

plot(x0,y0,'+',x,y2)

title('piecewise linear')

subplot(2,2,2)

plot(x0,y0,'+',x,y3)

3title('spline1')

subplot(2,2,3)

plot(x0,y0,'+',x,y4)

title('spline2')

dx=diff(x);

dy=diff(y3);

dy_dx=dy./dx;

dy_dx0=dy_dx(1)

ytemp=y3(131:151);

ymin=min(ytemp);

index=find(y3==ymin);

xmin=x(index);

[xmin,ymin]

二、二維插值:

前面講述的都是一維插值,即節點為一維變數,插值函式是一元函式(曲線)。若節點

是二維的,插值函式就是二元函式,即曲面。如在某區域測量了若干點(節點)的高程(節

點值),為了畫出較精確的等高線圖,就要先插入更多的點(插值點),計算這些點的高程(插

值)。(1)

(2)網格節點:已知m× n個節點 (xi , y j , zij ),i = 1,2,",m; j = 1,2,",n,構造

乙個二元函式 z = f (x, y)通過全部已知節點,即 zij = f (xi , y j ),再利用

z = f (x, y)插值。

散亂節點:已知 n 個節點 (xi, yi, zi ),i = 1,2,",n ,構造乙個二元函式

z = f (x, y)通過全部已知節點,即 zi = f (xi, yi ),再利用 z = f (x, y)插值。

第四講職業

詞目 職業 打法 一 手指字母 zh 的指式。二 一手食指橫於另一手四指根部,模仿 業 字形。詞目 工人 打法 一 一手食 中指與另一手食指搭成 工 字形。二 雙手食指搭成 人 字形。詞目 農民 打法 一 雙手五指彎曲,一前一後,來回耙動,如用耙耙田之狀。二 雙手食指搭成 人 字形,並轉一圈。詞目 ...

第四講證明

角平分線及線段垂直平分線 知識點 一 線段垂直平分線 1 線段的垂直平分線也叫線段的中垂線。2 性質定理 線段垂直平分線上的點到線段兩端點的距離相等。3 逆定理 到線段兩端距離相等的點 段的垂直平分線上。二 角平分線 角平分線的性質 定理1 在角平分線上的點到這個角的兩邊的距離相等。定理2 在乙個角...

第四講光學

1.光的直線傳播 條件 光在同種,均勻介質中沿直線傳播 應用 排隊,射擊瞄準,雷射準直 小孔成像 晴天樹下的圓形光斑 小孔成像的特點 小孔成像的實驗條件要求 影子的形成 皮影,手影,無影燈,日食月食 影子的形成原因 影子的長短變化 日食的形成原因 月食的形成原因 2.光的反射 光從一種介質射向另一種...