
最小二乘法線性擬合和2次曲線擬合算法
最近由于項(xiàng)目要求,應(yīng)用了最小二乘法線性擬合和2次曲線擬合算法,現(xiàn)總結(jié)如下:
最小二乘法線性擬合應(yīng)用已有的采樣時(shí)間點(diǎn),再現(xiàn)這些點(diǎn)所描述的線性變化,即求出一個(gè)線性方程y=ax+b(這個(gè)算法的主要問題也就是如何用給定的數(shù)據(jù)求線性方程系數(shù)a和b)
//最小二乘法線性擬合,線性方程求系數(shù),Xval時(shí)間數(shù)據(jù),Yval每個(gè)時(shí)間點(diǎn)上的值數(shù)據(jù),n數(shù)據(jù)的個(gè)數(shù),Aval線性方程系數(shù)a,Bval線性方程系數(shù)b
BOOL DlgDataAnalyse::TwoCurveCompose(double *Xval,double *Yval,long n,double *Aval,double *Bval)
{
double mX,mY,mXX,mXY;
mX=mY=mXX=mXY=0;
for (int i=0;i
mX+=Xval[i];
mY+=Yval[i];
mXX+=Xval[i]*Xval[i];
mXY+=Xval[i]*Yval[i];
}
if(mX*mX-mXX*n==0)return FALSE;
*Aval=(mY*mX-mXY*n)/(mX*mX-mXX*n);
*Bval=(mY-mX*(*Aval))/n;
return TRUE;
}
最小二乘法2次曲線擬合應(yīng)用已有的采樣時(shí)間點(diǎn),再現(xiàn)這些點(diǎn)所描述的2次曲線的變化,即求出一個(gè)二次曲線方程y=ax2+bx+c (這個(gè)算法的主要問題也就是如何用給定的數(shù)據(jù)求方程系數(shù)abc)
今天使用擬合的最小二乘法,求出了給定的一組坐標(biāo)系上的點(diǎn)對(duì)最接近的直線的。
其具體理論如下:
在科學(xué)實(shí)驗(yàn)數(shù)據(jù)處理中,往往要根據(jù)一組給定的實(shí)驗(yàn)數(shù)據(jù),求出自變量x與因變量y的函數(shù)關(guān)系
,這是
為待定參數(shù),由于觀測(cè)數(shù)據(jù)總有誤差,且待定參數(shù)ai的數(shù)量比給定數(shù)據(jù)點(diǎn)的數(shù)量少(即n<m),因此它不同于插值問題.這類問題不要求
通過點(diǎn)
,而只要求在給定點(diǎn)
上的誤差
的平方和
最小.當(dāng)
時(shí),即
(5.8.1)
這里是線性無關(guān)的函數(shù)族,假定在
上給出一組數(shù)據(jù)
,
以及對(duì)應(yīng)的一組權(quán)
,這里
為權(quán)系數(shù),要求
使
最小,其中
(5.8.2)
這就是最小二乘逼近,得到的擬合曲線為y=s(x),這種方法稱為曲線擬合的最小二乘法.
(5.8.2)中實(shí)際上是關(guān)于
的多元函數(shù),求I的最小值就是求多元函數(shù)I的極值,由極值必要條件,可得
(5.8.3)
根據(jù)內(nèi)積定義(見第三章)引入相應(yīng)帶權(quán)內(nèi)積記號(hào)
(5.8.4)
則(5.8.3)可改寫為
這是關(guān)于參數(shù)的線性方程組,用矩陣表示為
(5.8.5)
(5.8.5)稱為法方程.當(dāng)線性無關(guān),且在點(diǎn)集
上至多只有n個(gè)不同零點(diǎn),則稱
在X上滿足Haar條件,此時(shí)(5.8.5)的解存在唯一(證明見[3]).記(5.8.5)的解為
從而得到最小二乘擬合曲線
(5.8.6)
可以證明對(duì),有
故(5.8.6)得到的即為所求的最小二乘解.它的平方誤差為
(5.8.7)
均方誤差為
在最小二乘逼近中,若取,則
,表示為
(5.8.8)
此時(shí)關(guān)于系數(shù)的法方程(5.8.5)是病態(tài)方程,通常當(dāng)n≥3時(shí)都不直接取
作為基。
//最小二乘法二次曲線擬合算法,Xval時(shí)間數(shù)據(jù),Yval每個(gè)時(shí)間點(diǎn)上的值數(shù)據(jù),M代表幾次曲線(如:2次的話就是3),N數(shù)據(jù)的個(gè)數(shù),A二次曲線方程的系數(shù)(A[2]代表a,A[1]代表b,A[0]代表c)
BOOL DlgDataAnalyse::CalculateCurveParameter(double *Xval,double *Yval,long M,long N,double *A)
{
//X,Y -- X,Y兩軸的坐標(biāo)
//M -- 次數(shù),表示幾次曲線
//N -- 采樣數(shù)目
//A -- 結(jié)果參數(shù)
register long i,j,k;
double Z,D1,D2,C,P,G,Q;
CDoubleArray B,T,S;
B.SetSize(N);
T.SetSize(N);
S.SetSize(N);
if(M>N)M=N;
for(i=0;i
Z=0;
B[0]=1;
D1=N;
P=0;
C=0;
for(i=0;i
P=P+Xval[i]-Z;
C=C+Yval[i];
}
C=C/D1;
P=P/D1;
A[0]=C*B[0];
if(M>1)
{
T[1]=1;
T[0]=-P;
D2=0;
C=0;
G=0;
for(i=0;i
Q=Xval[i]-Z-P;
D2=D2+Q*Q;
C=Yval[i]*Q+C;
G=(Xval[i]-Z)*Q*Q+G;
}
C=C/D2;
P=G/D2;
Q=D2/D1;
D1=D2;
A[1]=C*T[1];
A[0]=C*T[0]+A[0];
}
for(j=2;j
S[j]=T[j-1];
S[j-1]=-P*T[j-1]+T[j-2];
if(j>=3)
{
for(k=j-2;k>=1;k--)
S[k]=-P*T[k]+T[k-1]-Q*B[k];
}
S[0]=-P*T[0]-Q*B[0];
D2=0;
C=0;
G=0;
for(i=0;i
Q=S[j];
for(k=j-1;k>=0;k--)
Q=Q*(Xval[i]-Z)+S[k];
D2=D2+Q*Q;
C=Yval[i]*Q+C;
G=(Xval[i]-Z)*Q*Q+G;
}
C=C/D2;
P=G/D2;
Q=D2/D1;
D1=D2;
A[j]=C*S[j];
T[j]=S[j];
for(k=j-1;k>=0;k--)
{
A[k]=C*S[k]+A[k];
B[k]=T[k];
T[k]=S[k];
}
}
return TRUE;
}
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報(bào)考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計(jì)的實(shí)用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實(shí)施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價(jià)值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡(jiǎn)稱 BI)深度融合的時(shí)代,BI ...
2025-07-10SQL 在預(yù)測(cè)分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢(shì)預(yù)判? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代,預(yù)測(cè)分析作為挖掘數(shù)據(jù)潛在價(jià)值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價(jià)值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點(diǎn),而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報(bào)考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭(zhēng)搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢(shì)性檢驗(yàn):捕捉數(shù)據(jù)背后的時(shí)間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢(shì)性檢驗(yàn)如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時(shí)間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時(shí)間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實(shí)戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗(yàn):數(shù)據(jù)趨勢(shì)與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢(shì)變化以及識(shí)別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對(duì)策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨(dú)特的門控機(jī)制,在 ...
2025-07-07統(tǒng)計(jì)學(xué)方法在市場(chǎng)調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場(chǎng)調(diào)研是企業(yè)洞察市場(chǎng)動(dòng)態(tài)、了解消費(fèi)者需求的重要途徑,而統(tǒng)計(jì)學(xué)方法則是市場(chǎng)調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動(dòng)力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動(dòng)力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價(jià)值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03