本博文源於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...