最小二乘法的線性擬合,最小二乘法曲線擬合公式

2021-04-21 08:42:08 字數 6037 閱讀 2473

1樓:匿名使用者

題中所給資料可表示為copyy(x),即x=1、

2、3、...、19,y(1)=0.898、y(2)=2.

38、...、y(19)=81.8(見題);令δ(x)=ae^(bx)-y(x)①,方差d=∑(x=1→19)[δ(x)]^2②;②式分別對a、b求偏導,ðd/ða=2∑(x=1→19)δ(x)e^(bx)③;ðd/ðb=2a∑(x=1→19)xδ(x)e^(bx)④;令ðd/ða=0、ðd/ðb=0,則③、④變為:

a∑(x=1→19)e^(2bx)=∑(x=1→19)y(x)e^(bx)⑤;a∑(x=1→19)xe^(2bx)=∑(x=1→19)xy(x)e^(bx)⑥;聯立⑤、⑥即可求得a、b;⑤、⑥為超越方程,求解析解很困難,採用數值解法得:a≈0.23688176、b≈0.

30897789,均方差=√d≈8.6553、最大偏差(絕對值)≈5.34(發生在x=17時)。

2樓:匿名使用者

本來想寫。。實bai在看不清du

你的要求是什麼zhi。。。求教態度還這麼不端dao正。。。圖內

片都拍不清楚容。。。

最小二乘法不難的。。。好好靜心看看書,對以後實際的工作很有用,很多數學模型的引數確定都要用到擬合。。

程式收斂方法一般的牛頓高斯方法就可以了。。

matlab中用最小二乘法擬合直線

3樓:mcr董事長

用polyfit函式,(用來多項式擬合的,是用最小二乘法)舉個例子

x=[90 91 92 93 94 95 96];

z=[70 122 144 152 174 196 202];

a=polyfit(x,z,1)

結果:a =

1.0e+03 *

0.0205 -1.7551

1表示1次多項式(一次時就是直線,適用於你的情況)a是多項式的係數向量,是從高次項往低次項排的,如果想運用結果,比如想知道當x=97時z等於多少那麼有兩種方法,

直接用係數

>> a(1)*97+a(2)

ans =

233.4286

或者用polyval函式

>> polyval(a,97)

ans =

233.4286

4樓:吾書橋君雅

首先確認一下

,你這的log是以10為底的對數吧?那麼命令如下。(如果是以e為底就不用除以log(10)了,自己改一下。)

>>x=0.01:0.01:1;

>>m=log(x)/log(10);

>>for

i=1:100;

y(i)=log((2^0.5)*(x(i)+1)/(x(i)*x(i)+2*x(i))^0.5)/log(10);

end>>plot(m,y,'r');holdon;>>p

=polyfit(m,y,1)%這個就是擬合的函式p=-0.3600

0.4161

>>pp=poly2sym(p);

>>ezplot(pp,[-2,0]);

紅色的是原曲線,藍色的是擬合直線。擬合直線的斜率就是-0.3600

用excel如何進行最小二乘法的線性擬合?

5樓:仙女王吉吉

y 值輸入抄區域

在此輸入對因變數資料區襲域的引用。bai

該區域必須由單列資料du組成。zhi x 值輸入區域 在此輸入對自dao變數資料區域的引用。

micosoft excel 將對此區域中的自變數從左到右按升序排列。自變數的個數最多為 16。 置信度 如果需要在彙總輸出表中包含附加的置信度資訊,請選中此核取方塊,然後在右側的編輯框中,輸入所要使用的置信度。

如果為 95%,則可省略。

常數為零 如果要強制迴歸線通過原點,請選中此核取方塊。 輸出區域 在此輸入對輸出表左上角單元格的引用。

彙總輸出表至少需要有七列的寬度,包含的內容有 anova 表、係數、y 估計值的標準誤差、2 值、觀察值個數,以及係數的標準誤差。 殘差 如果需要以殘差輸出表的形式檢視殘差,請選中此核取方塊。

標準殘差 如果需要在殘差輸出表中包含標準殘差,請選中此核取方塊。 殘差圖 如果需要生成一張圖表,繪製每個自變數及其殘差,請選中此核取方塊。

線性擬合圖 如果需要為**值和觀察值生成一個圖表,請選中此核取方塊。 正態概率圖 如果需要繪製正態概率圖,請選中此核取方塊。

最小二乘法曲線擬合公式

6樓:匿名使用者

老弟,公式打不出來的

一般都是用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')

最小二乘法求線性迴歸方程中的係數a,b怎麼求

7樓:demon陌

用最小二乘法求迴歸直線方程中的a,b有下面的公式:

最小二乘法:總離差不能用n個離差之和來表示,通常是用離差的平方和,即作為總離差,並使之達到最小,這樣迴歸直線就是所有直線中q取最小值的那一條,這種使「離差平方和最小」的方法,叫做最小二乘法:

由於絕對值使得計算不變,在實際應用中人們更喜歡用:q=(y1-bx1-a)²+(y2-bx-a²)+。。。+(yn-bxn-a)²

這樣,問題就歸結於:當a,b取什麼值時q最小,即到點直線y=bx+a的「整體距離」最小。

8樓:一個人走

最小二乘法:

總離差不能用n個離差之和

來表示,通常是用離差的平方和,即

作為總離差,並使之達到最小,這樣迴歸直線就是所有直線中q取最小值的那一條,這種使「離差平方和最小」的方法,叫做最小二乘法:

由於絕對值使得計算不變,在實際應用中人們更喜歡用:q=(y1-bx1-a)²+(y2-bx-a²)+。。。+(yn-bxn-a)²

這樣,問題就歸結於:當a,b取什麼值時q最小,即到點直線y=bx+a的「整體距離」最小。

用最小二乘法求迴歸直線方程中的a,b有下面的公式

求迴歸方程的最小二乘法,是怎麼計算的?

9樓:古代聖翼龍

因為檢視此知識點的人較多,我對原答案進行了一些補充

求出上圖公式中的係數a和b,即可得到迴歸方程。

tips:ς讀作sigma或「西格瑪」,意為求和。σ上方表示上界,下方表示下界,在本例中即意味著從i=1開始,一直到i=n為止,將西格瑪後面的式子進行累加。

如果題乾沒有歧義,上/下界也可以忽略不寫。而σ的作用域僅僅為後面的第一個式子,這裡的式子可以理解為一個「乘除表示式」,而非「加減表示式」,這也是記憶該最小二乘法計算方法的關鍵!該公式的計算步驟在追問&追答中有,下面補充一個例子。

問:設n=2,k1=3,k2=6,h=5。求σki+h、σ(ki+h)、σki*h+h的值?

解:我將西格瑪的拆分式用符號[ ]框起來

①σki+h=[ σki ]+h=[ (k1) + (k2) ]+h=[ (3) + (6) ]+5=14

②σ(ki+h)=[ σ(ki+h) ]=[ (k1+h) + (k2+h) ]=[ (3+5) + (6+5) ]=19

③σki*h+h=[ σki*h ]+h=[ (k1*h) + (k2*h) ] +h=[ (3*5) + (6*5) ]+5=50

也就是σ只對它後面的第一個乘法因子有效,倘若後面出現了+或-,則那些部分不在σ的作用域內。當然還要記住括號可以把一個較長的加減表示式理解為一個乘除表示式(例如②),即理解為一個單一的乘法因子。

10樓:梔欣

計算方法:

y = ax + b:a = sigma[(yi-y均值)*(xi-x均值)] / sigma[(xi-x均值)的平方];b = y均值 - a*x均值。

最小二乘法求迴歸直線方程的推導過程

這裡的是為了區分y的實際值y(這裡的實際值就是統計資料的真實值,我們稱之為觀察值),當x取值(i=1,2,3……n)時,y的觀察值為,近似值為(或者說對應的縱座標是)。

其中式叫做y對x的迴歸直線方程,b叫做迴歸係數。要想確定迴歸直線方程,我們只需確定a與迴歸係數b即可。

設x,y的一組觀察值為:

i = 1,2,3……n

其迴歸直線方程為:

當x取值(i=1,2,3……n)時,y的觀察值為,差刻畫了實際觀察值與迴歸直線上相應點縱座標之間的偏離程度,見下圖:

實際上我們希望這n個離差構成的總離差越小越好,只有如此才能使直線最貼近已知點。換句話說,我們求迴歸直線方程的過程其實就是求離差最小值的過程。

一個很自然的想法是把各個離差加起來作為總離差。可是,由於離差有正有負,直接相加會互相抵消,如此就無法反映這些資料的貼近程度,即這個總離差不能用n個離差之和來表示,見下圖:

一般做法是我們用離差的平方和,即:

作為總離差 ,並使之達到最小。這樣迴歸直線就是所有直線中q取最小值的那一條。由於平方又叫二乘方,所以這種使「離差平方和為最小」的方法,叫做最小二乘法。

用最小二乘法求迴歸直線方程中的a、b的公式如下:

其中,、為和的均值,a、b的上方加「︿」表示是由觀察值按最小二乘法求得的估計值,a、b求出後,迴歸直線方程也就建立起來了。

當然,我們肯定不能滿足於直接得到公式,我們只有理解這個公式怎麼來的才能記住它,用好它,因此給出上面兩個公式的推導過程更加重要。在給出上述公式的推導過程之前,我們先給出推導過程中用到的兩個關鍵變形公式的推導過程。首先是第一個公式:

接著是第二個公式:

基本變形公式準備完畢,我們可以開始最小二乘法求迴歸直線方程公式的推導了:

至此,公式變形部分結束,從最終式子我們可以看到後兩項

與a、b無關,屬於常數項,我們只需

即可得到最小的q值,因此:

普通最小二乘法估計,加權最小二乘法估計,廣義最小二乘法估計有何區別聯絡

最小二乘法 用 擬合已知資料 k 1,2,n 使得誤差的平方和為最小,這種求的方法,就是最小二乘法 1 直線擬合 設擬合直線為 滿足法方程組 2 二次多項式擬合 設擬合二次多項式為 滿足法方程組 普通最小二乘法與加權最小二乘法的區別與聯絡 最小二乘法是加權最小二乘法的特例。使用最小二乘法需要一些前提...

verilog語言編寫的最小二乘法

我們以最簡單的一元線性模型來解釋最小二乘法。什麼是一元線性模型呢?e69da5e6ba9062616964757a686964616f31333361303035 監督學習中,如果 的變數是離散的,我們稱其為分類 如決策樹,支援向量機等 如果 的變數是連續的,我們稱其為迴歸。迴歸分析中,如果只包括一...

簡述最小二乘估計原理,什麼是最小二乘法及其原理?

對於x和y的n對觀察值,用於描述其關係的直線有多條,究竟用哪條直線來代表兩個變數之間的關係,需要有一個明確的原則。這時用距離各觀測點最近的一條直線,用它來代表x與y之間的關係與實際資料的誤差比其它任何直線都小。根據這一思想求得直線中未知常數的方法稱為最小二乘法,即使因變數的觀察值與估計值之間的離差平...