国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

最小二乘法的幾種擬合函數(shù)

這篇具有很好參考價值的文章主要介紹了最小二乘法的幾種擬合函數(shù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

1.最小二乘法的原理和解決的問題

2.最小二乘法的公式解法

2.1? 擬合h(x)?= a * x

2.2 擬合 h(x) = a0 + a1*x

2.3擬合 h(x) = a0 + a1 *x + a3 * x^3


?因為采用矩陣法來進(jìn)行最小二乘法的函數(shù)擬合時,會出現(xiàn)系數(shù)矩陣的逆矩陣不存在的情況有一定的局限性,所以本篇對公式法進(jìn)行簡單說明。并用c++進(jìn)行代碼的書寫。

1.最小二乘法的原理和解決的問題

最下二乘法的形式:

目標(biāo)函數(shù) =???(觀測值? -? 理論值)^2

? ? ? ? 觀測值就是我們實際數(shù)據(jù)中的值,理論值就是我們進(jìn)行函數(shù)擬合后用擬合函數(shù)計算出的值。

本篇中我們以最簡單的線性回歸為例進(jìn)行說明。

? ? ? ? 我們有n組樣本(Xi,Yi) i = (1,2,3,……,n)

? ? ? ? 擬合函數(shù)的形式:h(x)?= a0 + a1 * x + a2 *x^2 + a3 *x^3.

? ? ? ? 最小二乘法要做的就是找到最小的一組 a(a0 、a1、a2、a3……),使得

? ? ? ???(h(x) -? yi)^2最小。方法就是對各個系數(shù)求偏導(dǎo),并讓偏導(dǎo)數(shù)等于0即可。

2.最小二乘法的公式解法

2.1? 擬合h(x)?= a * x

??? ? 對a求偏導(dǎo)得:

?2 *??= 0

?化簡得:a = Lxy / Lxx

?其中??Lxx =?? ,? ?Lxy =?,ex為x的均值,ey為y的均值

代碼如下:

double calculate(std::vector<double> xs,std::vector<double> ys){

    int len = xs.size();

    double Lxy = 0;
    double Lxx = 0;

    for(int i = 0; i < len ; i++){
        Lxy += xs[i] * ys[i];
        Lxx += qPow(xs[i],2);
    }

    double ret = 0;
    ret = Lxy / Lxx;
    return ret;
}

2.2 擬合 h(x) = a0 + a1*x

對a0和a1分別求偏導(dǎo)的得:

a0:?= 0

a1:? ?2 *?= 0

?聯(lián)立兩個方程解得:a0 = ey - a1 * ex?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?a1 = Lxy / Lxx(ex、ey、Lxy 和Lxx的含義同上)

代碼如下:

double *calculate1(std::vector<double> xs,std::vector<double> ys){
    int len = xs.size();

    //結(jié)果
    double *ret = new double[2];

    double ex = 0;//x坐標(biāo)的均值
    double ey = 0;//y坐標(biāo)的均值
    double Lxx = 0;//x坐標(biāo)的平方差*len
    double Lxy = 0;//(Xi-ex)*(Yi-ey)

    //輔助計算
    double xsum = 0;//x的和
    double ysum = 0;//y的和

    //計算xusm
    for(int i = 0; i < len ; i++){
        xsum += xs[i];
        ysum += ys[i];
    }
    ex = xsum / len;
    ey = double(ysum / len);
    for(int i = 0; i < len ; i++){
        Lxx += pow(xs[i]-ex,2);
        Lxy += (xs[i]-ex)*(ys[i]-ey);
    }


    ret[1] = Lxy / Lxx;//計算a1
    ret[0] = ey - ret[1]*ex;//計算a0
    return ret;
}

2.3擬合 h(x) = a0 + a1 *x + a3 * x^3

對a0、a1和a3分別求偏導(dǎo)的得:

a0:? ? 2*?= 0;

a1:? ?2*?= 0;

a3 :? ?2*?= 0

聯(lián)立方程組解得:

a0?= ey - a1*ex - a3 * ex^3( ey為y 的均值,ex 為x的均值,ex^3為x^3的均值)

a1 = (Lxy * L(x^3)(x^3)?- Lx^3 y * Lxy) / (Lxx *L(x^3)(x^3) - Lxy*Lyx)

a3 = (Lx^3y * Lxx - Lxy * L(x^3)*x) / (Lxx*L(x^3*x^3) - Lxy*Lyx)

Lxy、Lxx含義同上

L(x^3)(x^3)表示:

Lx3y表示:

?代碼如下:

double *calculate(std::vector<double> xs,std::vector<double> ys){

    int len = xs.size();

    double ey = 0;//y的均值
    double ex1 = 0;//x的均值
    double ex3 = 0;//x的三次方的均值
    double L11 = 0;//x的平方差
    double L12 = 0;//x的3次方的平方差*len
    double L21= 0;//等于L12
    double L1y = 0;//(Xi-ex)*(Yi-ey)的和
    double L2y = 0;//(Xi^3-ex3)*(Yi-ey)的和
    double L22 = 0;//x的3次方的平方差*len
    double Lyy = 0;//y的平方差*len

    double ysum = 0;
    double xsum1 = 0;
    double xsum3 = 0;

    //計算均值
    for(int i = 0; i < len; i++){

        ysum += ys[i];//y的總和

        xsum1 += xs[i];//x的總和
        xsum3 += std::pow(xs[i],3);//x的3次方的總和
    }
    //計算各個值
    ey = ysum / len;
    ex1 = xsum1 / len;
    ex3 = xsum3 / len;

    for(int i = 0 ; i < len ;i++){
        L11 += qPow(xs[i]-ex1,2);//x的方差*len

        L12 += (xs[i]-ex1)*(qPow(xs[i],3)-ex3);

        L1y += (xs[i]-ex1)*(ys[i]-ey);
        L2y += (qPow(xs[i],3)-ex3)*(ys[i]-ey);

        L22 += qPow((qPow(xs[i],3)-ex3),2);//x的3次方的方差*len

        Lyy += qPow(ys[i]-ey,2);
    }
    L21 = L12;
    double ret[3];
    ret[2] = (L2y * L11 - L1y * L21)/(L11 * L22 - L12 * L21);
    ret[1] = (L1y * L22 - L2y * L12)/(L11 * L22 - L12 * L21);
    ret[0] = ey - ret[1]*ex1 - ret[2]*ex3;
   
    return ret;
}

以上是我在編寫一個插值函數(shù)時遇到矩陣法不可以求出擬合函數(shù)后,從原始的概念入手進(jìn)行的函數(shù)擬合,如有差錯之處歡迎批評指正。文章來源地址http://www.zghlxwxcb.cn/news/detail-534605.html

到了這里,關(guān)于最小二乘法的幾種擬合函數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 人工智能基礎(chǔ)_機(jī)器學(xué)習(xí)006_有監(jiān)督機(jī)器學(xué)習(xí)_正規(guī)方程的公式推導(dǎo)_最小二乘法_凸函數(shù)的判定---人工智能工作筆記0046

    人工智能基礎(chǔ)_機(jī)器學(xué)習(xí)006_有監(jiān)督機(jī)器學(xué)習(xí)_正規(guī)方程的公式推導(dǎo)_最小二乘法_凸函數(shù)的判定---人工智能工作筆記0046

    我們來看一下公式的推導(dǎo)這部分比較難一些, 首先要記住公式,這個公式,不用自己理解,知道怎么用就行, 比如這個(mA)T 這個轉(zhuǎn)置的關(guān)系要知道 然后我們看這個符號就是求X的導(dǎo)數(shù),X導(dǎo)數(shù)的轉(zhuǎn)置除以X的導(dǎo)數(shù),就得到單位矩陣, 可以看到下面也是,各種X的導(dǎo)數(shù),然后計算,得到對應(yīng)的矩陣

    2024年02月08日
    瀏覽(98)
  • 數(shù)值分析——曲線擬合的最小二乘法

    數(shù)值分析——曲線擬合的最小二乘法

    擬合曲線定義:求近似函數(shù) φ(x), 使之 “最好” 的逼近f(x) ,無需滿足插值原則. 這就是曲線擬合問題。 (時間緊迫直接看例子就行,智慧交通專業(yè)的補修課,可能理論學(xué)的不那么深入,主要是方法。) 超定方程組 是指方程個數(shù)大于未知量個數(shù)的方程組 。 最小二乘解 : 對于

    2024年02月09日
    瀏覽(21)
  • Matlab 最小二乘法 擬合平面 (PCL PCA擬合平面)

    Matlab 最小二乘法 擬合平面 (PCL PCA擬合平面)

    最小二乘法 擬合平面是我們最常用的擬合平面的方法,但是有特殊的情況是用這種方法是不能擬合的,后續(xù)會加上這種擬合方法(RANSAC)。 matlab 最小二乘擬合平面(方法一) - 灰信網(wǎng)(軟件開發(fā)博客聚合) 平面方程:Ax+By+Cz+D=0; ? 1、隨機(jī)出來一些離散的點 ?? 2、將其寫成

    2024年02月16日
    瀏覽(24)
  • 【Matlab】最小二乘法擬合多項式

    【Matlab】最小二乘法擬合多項式

    在最近的電機(jī)項目中,有遇到有傳感器數(shù)據(jù)并不線性的問題,然后想要用最小二乘法做個曲線擬合,反過來去校準(zhǔn)不線性的傳感器的數(shù)據(jù),因此記錄一下使用最小二乘法來擬合多項式的曲線的步驟。本篇從最小二乘法的原始公式入手編寫M文件,目的是方便使用單片機(jī)實現(xiàn),或

    2023年04月22日
    瀏覽(24)
  • 最小二乘法公式

    最小二乘法公式

    最小二乘法我不需要理解他的本質(zhì),只需要會使用這個公式即可: 最小二乘法是求解擬合直線的。注意!!是直線 設(shè)直線的方程為 y=bx+a 則以上公式就是用一堆二維平面上的點,來求擬合的直線 其中?? 為求和符號? ?? 如 的意思是? ?求xi的平方的和? ? 為期望,即平均值

    2024年02月11日
    瀏覽(29)
  • C語言編程:最小二乘法擬合直線

    C語言編程:最小二乘法擬合直線

    本文研究通過C語言實現(xiàn)最小二乘法擬合直線。 最小二乘法,簡單來說就是根據(jù)一組觀測得到的數(shù)值,尋找一個函數(shù),使得函數(shù)與觀測點的誤差的平方和達(dá)到最小。在工程實踐中,這個函數(shù)通常是比較簡單的,例如一次函數(shù)或二次函數(shù)。 汽車上的毫米波雷達(dá)可以探測到其他目

    2024年02月12日
    瀏覽(23)
  • 數(shù)值計算大作業(yè):最小二乘法擬合(Matlab實現(xiàn))

    數(shù)值計算大作業(yè):最小二乘法擬合(Matlab實現(xiàn))

    ? ? 作為研究生的入門課,數(shù)值計算的大作業(yè)算是所有研究生開學(xué)的重要編程作業(yè)。 ? ? ?我把最小二乘算法在MATLAB中整合成了一個M函數(shù)文件least square fitting.m,直線擬合函數(shù)lsf_linear.m,以及拋物線擬合函數(shù)lsf_parabolic.m。程序放在文章最后了,需要的同學(xué)自取。下文為作業(yè)詳

    2024年02月07日
    瀏覽(25)
  • chatgpt賦能python:Python如何擬合直線:使用最小二乘法

    在數(shù)據(jù)分析和機(jī)器學(xué)習(xí)領(lǐng)域,擬合一個最佳的直線是很常見和有用的。Python中有很多庫可以擬合直線,但最小二乘法是其中最常用的一種方法。在本文中,我們將介紹最小二乘法的原理和如何在Python中實現(xiàn)。 最小二乘法是一種常用的回歸分析方法,目的是找到一條直線來擬合

    2024年02月08日
    瀏覽(26)
  • 最小二乘法,極大似然估計,交叉熵的公式推導(dǎo)

    最小二乘法,極大似然估計,交叉熵的公式推導(dǎo)

    最小二乘法、極大似然估計和交叉熵是常用的三種損失函數(shù)。 最小二乘法是一種回歸問題中常用的損失函數(shù),用于衡量預(yù)測值與實際值之間的誤差平方和。它常用于線性回歸問題中,目標(biāo)是最小化預(yù)測值與真實值之間的均方誤差(MSE)。 極大似然估計(Maximum Likelihood Estima

    2024年02月08日
    瀏覽(17)
  • 3D點云處理:用SVD分解法和最小二乘法擬合平面點云,求解平面方程

    3D點云處理:用SVD分解法和最小二乘法擬合平面點云,求解平面方程

    本文主要介如何用SVD分解法和最小二乘法擬合平面點云,包含原理推導(dǎo)和代碼 將空間中的離散點擬合為一個平面,就是使離散點到某個平面距離和最小的問題,可以將求解過程看作最優(yōu)化的過程。 一個先驗知識為擬合平面一定經(jīng)過離散點的質(zhì)心(離散點坐標(biāo)的平均值)。平

    2024年02月03日
    瀏覽(121)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包