最小二乘法曲線擬合公式,matlab最小二乘法曲線擬合怎麼取

2021-03-03 21:57:20 字數 3933 閱讀 1232

1樓:匿名使用者

老弟,公式打不出來的

一般都是用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最小二乘法曲線擬合怎麼取

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」。

曲線擬合 最小二乘法 c語言程式

3樓:匿名使用者

去翻一下,計算方法或者數值分析的書吧。有公式,你按那公式求就可以了。

一樓用的是列主元消去法(跟高斯消去法差不多,就多了一個選主元(絕對值最大))

對於解ax=b,平方根法要求a是對稱且正定矩陣由於平方根法裡面要計算根號,計算量就比較大,而且工程中的a不一定都是正定的。所以在工程中採用改進的平方根法(它解出來的解與真解有一點誤差,但是相當相近),也就是說a只要對稱就行了。

4樓:匿名使用者

#include

#include

void guass(int n,float array[10])for(i=0;i

}int main()

guass(n,array);

return 0;}

使用最小二乘法擬合直線C,求用C 實現最小二乘法曲線擬合程式碼

這是通過除錯的程式,可以試試 include include include using namespace std class leastsquare 求c或c 語言編寫的用最小二乘法進行曲線擬合 你的近似解析表示式為y at bt 2 ct 2 是不是想寫成為y at bt 2 ct 3 但是實...

最小二乘法的原理是什么的,最小二乘法 的原理是什麼的?

最小二乘法是一種數學優化技術,它通過最小化誤差的平方和找到一組資料的最佳函式匹配。最小二乘法是用最簡的方法求得一些絕對不可知的真值,而令誤差平方之和為最小。最小二乘法通常用於曲線擬合。比如從最簡單的一次函式y kx b講起 已知座標軸上有些點 1.1,2.0 2.1,3.2 3,4.0 4,6 5....

什麼叫最玄乘法什麼叫最小二乘法

最小二乘法是一種數學優化技術 它通過最小化誤差的平方和尋找資料的最佳函式匹配。最小二乘法 又稱最小平方法 是一種數學優化技術。它通過最小化誤差的平方和尋找資料的最佳函式匹配。利用最小二乘法可以簡便地求得未知的資料,並使得這些求得的資料與實際資料之間誤差的平方和為最小。最小二乘法還可用於曲線擬合。其他...