1樓:no6zp敻
對給定資料點集合,在取定的函式類中,求,使誤差的平方和最小,。從幾何意義上講,就是尋求與給定點集的距離平方和為最小的曲線y=p(x)。函式p(x)稱為擬合函式或最小二乘解,求擬合函式p(x)的方法稱為曲線擬合的最小二乘法。
最小二乘法的矩陣形式
最小二乘法的矩陣形式為:
其中 為 的矩陣, 為 的列向量, 為 的列向量。如果 (方程的個數大於未知量的個數),這個方程系統稱為矛盾方程組(over determined system),如果 (方程的個數小於未知量的個數),這個系統就是under determined system。
正常來看,這個方程是沒有解的,但在數值計算領域,我們通常是計算 ,解出其中的 。比較直觀的做法是求解 ,但通常比較低效。其中一種常見的解法是對 進行qr分解( ),其中 是 正交矩陣(orthonormal matrix), 是 上三角矩陣(upper triangular matrix),則有
用matlab命令 x=r\(q\b)可解得 。
最小二乘法的matlab實現
① 一次函式線性擬合使用polyfit(x,y,1)
②多項式函式線性擬合使用 polyfit(x,y,n),n為次數
擬合曲線
x=[0.5,1.0,1.5,2.0,2.5,3.0],
y=[1.75,2.45,3.81,4.80,7.00,8.60]。
解:matlab程式如下:
x=[0.5,1.0,1.5,2.0,2.5,3.0];
y=[1.75,2.45,3.81,4.80,7.00,8.60];
p=polyfit(x,y,2)
x1=0.5:0.5:3.0;
y1=polyval(p,x1);
plot(x,y,'*r',x1,y1,'-b')
計算結果為:
p =0.5614 0.8287 1.1560
即所得多項式為y=0.5614x^2+0.8287x+1.15560
③非線性函式使用
lsqcurvefit(fun,x0,x,y)
a=nlinfit(x,y,fun,b0)
最小二乘法在交通運輸學中的運用
交通發生**的目的是建立分割槽產生的交通量與分割槽土地利用、社會經濟特徵等變數之間的定量關係,推算規劃年各分割槽所產生的交通量。因為一次出行有兩個端點,所以我們要分別分析一個區生成的交通和吸引的交通。交通發生**通常有兩種方法:
迴歸分析法和聚類分析法。
迴歸分析法是根據對因變數與一個或多個自變數的統計分析,建立因變數和自變數的關係,最簡單的情況就是一元迴歸分析,一般式為:y=α+βx式中y是因變數,x是自變數,α和β是迴歸係數。若用上述公式**小區的交通生成,則以下標 i 標記所有變數;如果用它研究分割槽交通吸引,則以下標 j 標記所有變數。
而運用公式的過程中需要利用最小二乘法來求解,上述公式中的迴歸係數根據最小二乘法可得:
其中,式中的x拔是規劃年的自變數值,y拔是規劃年分割槽交通生成(或吸引)**值。
matlab最小二乘法曲線擬合怎麼取
2樓:匿名使用者
曲線擬合
已知離散點上的資料集,即已知在點集上的函式值,構造一個解析函式(其圖形為一曲線)使在原離散點上儘可能接近給定的值,這一過程稱為曲線擬合。最常用的曲線擬合方法是最小二乘法,該方法是尋找函式使得最小。
matlab函式:p=polyfit(x,y,n)
[p,s]= polyfit(x,y,n)
說明:x,y為資料點,n為多項式階數,返回p為冪次從高到低的多項式係數向量p。x必須是單調的。矩陣s用於生成**值的誤差估計。(見下一函式polyval)
多項式曲線求值函式:polyval()
呼叫格式: y=polyval(p,x)
[y,delta]=polyval(p,x,s)
說明:y=polyval(p,x)為返回對應自變數x在給定係數p的多項式的值。
[y,delta]=polyval(p,x,s) 使用polyfit函式的選項輸出s得出誤差估計ydelta。它假設polyfit函式資料輸入的誤差是獨立正態的,並且方差為常數。則ydelta將至少包含50%的**值。
練習:如下給定資料的擬合曲線,x=[0.5,1.0,1.5,2.0,2.5,3.0],
y=[1.75,2.45,3.81,4.80,7.00,8.60]。
解:matlab程式如下:
x=[0.5,1.0,1.5,2.0,2.5,3.0];
y=[1.75,2.45,3.81,4.80,7.00,8.60];
p=polyfit(x,y,2)
x1=0.5:0.05:3.0;
y1=polyval(p,x1);
plot(x,y,'*r',x1,y1,'-b')
計算結果為:
p =0.5614 0.82871.1560
即所得多項式為y=0.5614x^2+0.08287x+1.15560
polyfit函式是matlab中用於進行曲線擬合的一個函式。曲線擬合:已知離散點上的資料集,即已知在點集上的函式值,構造一個解析函式(其圖形為一曲線)使在原離散點上儘可能接近給定的值。
解釋1 用法 polyfit(x,y,n ) ;用多項式求過已知點的表示式,其中x為源資料點對應的橫座標,可為行向量、矩陣,y為源資料點對應的縱座標,可為行向量、矩陣,n為你要擬合的階數,一階直線擬合,二階拋物線擬合,並非階次越高越好,看擬合情況 matlab polyfit 做出來的值從左到右表示從高次到低次的多項式係數 給個例子一看就知道了 x = (0: 0.1:
2.5)'; y = erf(x); p = polyfit(x,y,6) p = 0.0084 -0.
0983 0.4217 -0.7435 0.
1471 1.1064 0.0004 則y=0.
0084x^6-0.0983x^5+0.4217x^4-0.
7435x^3+0.1471x^2+1.1064x+0.
0004 解釋2: matlab軟體提供了基本的曲線擬合函式的命令. 多項式函式擬合:a=polyfit(xdata,ydata,n) 其中n表示多項式的最高階數,xdata,ydata為將要擬合的資料,它是用陣列的方式輸入.輸出引數a為擬合多項式y=a1xn+...
+anx+a n+1的係數 多項式在x處的值y可用下面程式計算. y=polyval(a,x,m) 線性:m=1, 二次:m=2, … polyfit的輸出是一個多項式係數的行向量。
為了計算在xi資料點的多項式值,呼叫matlab的函式polyval。 例: x=0:
0.1:1; y=[-0.
447 1.978 3.28 6.
16 7.08 7.34 7.
66 9.56 9.489.
30 11.2];
polyfit用法示例結果
a=polyfit(x,y,2) z=polyval(a,x); plot(x,y,'r*',x,z,'b') 釋疑: 在不少書中和論壇上,polyfit被誤寫作「ployfit」,使得很多初學者誤解,認為自己安裝的matlab軟體出錯,無法找到這樣的函式。只要注意拼寫正確即可。
同樣地,polyval函式也易被誤寫為「ployval」。
最小二乘法曲線擬合公式
3樓:匿名使用者
老弟,公式打不出來的
一般都是用matlab搞定的,它裡面有現成的函式供使用的
典型程式解析:
x=[0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1];%input xi data
y=[1.978 3.28 6.
16 7.08 7.34 7.
66 9.56 9.48 9.
30 11.2]; % input yi data
n=2; % polynomial order
p=polyfit(x, y, n)% polyfit 的輸出是一個多項式係數的行向量(擬合二項式的係數)
ezplot('-9.8108*x*x+20.1293*x-0.0317')%對擬合的函式作圖
xi=linspace(0,1,100); % x-axis data for plotting
z=polyval(p, xi);% 為了計算在xi資料點的多項式值,呼叫matlab的函式polyval
plot(x,y, 'o' ,x,y,xi,z,':')%在同一個圖形裡看他們的擬合程度
典型例題:對以下資料分別作二次,三次多項式擬合,並畫出圖形.
x=1:16;
y=[4, 6.4, 8, 8.4, 9.
28, 9.5, 9.7, 9.
86, 10, 10.2, 10.32, 10.
42, 10.5, 10.55, 10.
58, 10.6];
源程式:二次多項式擬合
x=1:1:16;
y=[4, 6.4, 8, 8.4, 9.
28, 9.5, 9.7, 9.
86, 10, 10.2, 10.32, 10.
42, 10.5, 10.55, 10.
58, 10.6];
a=polyfit(x,y,2)
a =-0.0445 1.0711 4.3252
ezplot('-0.0445*x^2+1.0711*x+4.3252')
三次多項式擬合
x=1:1:16;
y=[4, 6.4, 8, 8.4, 9.
28, 9.5, 9.7, 9.
86, 10, 10.2, 10.32, 10.
42, 10.5, 10.55, 10.
58, 10.6];
a=polyfit(x,y,3)
a =0.0060 -0.1963 2.1346 2.5952
ezplot('0.0060*x^3-0.1963*x^2+2.1346*x+2.5952')
有關matlab程式設計最小二乘法圓擬合的問題
第一步,根據已知點,描圖x y plot x,y,p 第二步,根據已知點擬合圓的一般式方程,利用公式求出圓心和半徑首先,用方程x 2 y 2 dx ey f 0,擬合出其係數d e f,求出圓心 d 2,e 2 半徑0.5 d 2 e 2 4f 第三步,根據圓的引數方程,求出x,y的點,描點plot...
VB6擬合直線,VB 最小二乘法線性擬合
兩個陣列中的資料擬合一條直線 這個有多少可能是一條直線,曲線還差不多 用vb編寫,根據六組座標資料能自動擬合一條直線,並且顯示在窗體中,包括表示式 我用的是最小二乘法擬合,這種方式在資料較少 較離散的情況下可能偏差較大。不知道你用來幹嘛,個人建議儘量多取資料,就算是其他方法也是資料越多越準確。不過用...
什麼是最小二乘原理,什麼是最小二乘法及其原理?
最小二乘法是一種數學優化技術 它通過最小化誤差的平方和尋找資料的最佳函式匹配。最小二來乘法是一種數自學優化技術,它通過bai最小化誤差的平方du 和找到一組數zhi據的最dao 佳函式匹配。最小二乘法是用最簡的方法求得一些絕對不可知的真值,而令誤差平方之和為最小。最小二乘法通常用於曲線擬合。很多其他...