matlab多次擬合曲線效果比較

2021-10-08 03:39:59 字數 1351 閱讀 1775

本博文源於matlab多項式章節的乙個小知識,很多同學覺得擬合polyfit會用就行了,知道最小二乘法是擬合的原理。其中包含多元函式積分學的知識。但是大家是否真的有空把多次擬合的函式跑一遍總結規律呢?還有過擬合和欠擬合是否能在**中使用呢?所謂過擬合就是能近似經過每一點,但是曲線過於彎曲形態不好。而欠擬合就是連點都不怎麼過,看上去就是很醜陋,很low的模樣。

下面通過乙個例子去看一下,擬合的次數看出擬合多次是否能對函式有更好的逼近,並能說出哪種次數是過擬合?

y的值

2.1

3.22.1

2.53.2

3.53.4

4.14.7

5.04.8

**程式

>> x=1:

0.1:2;

>> y=

[2.1

3.22.1

2.53.2

3.53.4

4.14.7

5.04.8];

>> p2=polyfit(x,y,2)

p2 =

1.3869

-1.2608

2.1410

>> p3=polyfit(x,y,3)

p3 =

-5.1671

24.6387

-35.2187

18.2002

>> p7=polyfit(x,y,7)

p7 =

1.0e+005

*0.0287

-0.3069

1.3966

-3.4977

5.2059

-4.6033

2.2386

-0.4617

>> x1=x;

>> y2=polyval(p2,x1)

;>> y3=polyval(p3,x1)

;>> y7=polyval(p7,x1)

;>> plot(x,y,

'rp'

,x1,y2,

'--'

,x1,y3,

'k-.'

,x1,y7)

>> legend(

'擬合點'

,'二次擬合'

,'三次擬合'

,'七次擬合'

)>>

清晰易懂附上圖,其中polyfit就是擬合常用函式,polyval就是乙個求值函式方便plot畫圖

圖上看出擬合次數越高越好,但是擬合太高可能浮動越大,因此一般不會超出七次。大家在使用中二次擬合起步。

MATLAB 曲線擬合

x0.1 0.20.15 0.0 0.2 0.3y 0.95 0.84 0.86 1.06 1.50 0.72 函式功能多項式的擬合運算 呼叫方法polyfit x,y,n x為橫座標,y為縱座標,n為擬合階數。例子x 0 0.1 2.5 1y erf x p polyfit x,y,6 p 0.0...

matlab 曲線擬合

在matlab中經常需要對資料進行曲線擬合,如最常見的多項式擬合,一般可以通過cftool呼叫曲線擬合工具 curve fit tool 通過圖形介面可以很方便的進行曲線擬合,但是有些時候也會遇到不方便用圖形工具。因此這裡簡單的記下兩種常用的擬合方法。1 多項式擬合 polyfit和polyval ...

MATLAB 曲線擬合

clc clear i imread e rc 09 27 xuan16 30result 16 30 8 tiff figure,imshow i,hold on x 70 y 4.24e 08 x 3.589 47.51 curtptx x curtpty y 當前點的座標 x left y l...