数学建模最小二乘法拟合_MATLAB最小二乘法拟合曲线公式
假設(shè) y = f(x),那么每個(gè)x應(yīng)該會(huì)對(duì)應(yīng)一個(gè)y。對(duì)一個(gè)未知公式的 f(x)系統(tǒng),在科學(xué)實(shí)驗(yàn)中,常常需要測(cè)量?jī)蓚€(gè)變量的多組數(shù)據(jù),然后找出他們的近似函數(shù)關(guān)系。通常,我們把這種處理數(shù)據(jù)的方法稱之為經(jīng)驗(yàn)配線,所找到的函數(shù)關(guān)系稱為經(jīng)驗(yàn)公式。最小二乘法就是最常用的一種配線方式。
最小二乘法是一種數(shù)學(xué)優(yōu)化技術(shù),它通過(guò)最小誤差的平方和找到一組數(shù)據(jù)的最佳函數(shù)匹配。最小二乘法常用于曲線擬合。
下面,我們通過(guò)一個(gè)例子來(lái)研究最小二乘法函數(shù)polyfit的使用。
首先,我們通過(guò)數(shù)據(jù)采集,得到一組y和x數(shù)據(jù)的對(duì)應(yīng)關(guān)系并繪制成曲線。
x = [88 88 96 98 99 101 101 102 102 104 105 106 107 109 111 113 113 113 116 119 121 121 126 128 128 132 134 140 140 141 141 145 147 148 150 153 154 154 154 155 158 160 161 165 166 168 172 174];y = [2.5882 2.7059 2.8729 2.8834 2.9814 3.0909 3.1638 3.2353 3.3929 3.5404 3.6158 3.7569 3.8235 3.865 3.8824 3.9286 3.9394 4.1765 4.2353 4.3558 4.5856 4.6061 4.6584 4.7059 4.7826 4.8066 4.8214 4.8824 4.9697 5.0847 5.092 5.092 5.1381 5.1553 5.1786 5.2381 5.2727 5.4118 5.4237 5.5882 5.5932 5.8564 5.9627 6.135 6.4972 6.6071 6.6471 6.8485];plot(x,y,'o');原始采樣數(shù)據(jù)通過(guò)polyfit進(jìn)行一階擬合
x = [88 88 96 98 99 101 101 102 102 104 105 106 107 109 111 113 113 113 116 119 121 121 126 128 128 132 134 140 140 141 141 145 147 148 150 153 154 154 154 155 158 160 161 165 166 168 172 174];y = [2.5882 2.7059 2.8729 2.8834 2.9814 3.0909 3.1638 3.2353 3.3929 3.5404 3.6158 3.7569 3.8235 3.865 3.8824 3.9286 3.9394 4.1765 4.2353 4.3558 4.5856 4.6061 4.6584 4.7059 4.7826 4.8066 4.8214 4.8824 4.9697 5.0847 5.092 5.092 5.1381 5.1553 5.1786 5.2381 5.2727 5.4118 5.4237 5.5882 5.5932 5.8564 5.9627 6.135 6.4972 6.6071 6.6471 6.8485];%一階擬合 coefficient=polyfit(x,y,1);%將擬合后系數(shù)帶入公式 Y = P(1)*X^N + P(2)*X^(N-1) + ... + P(N)*X + P(N+1) yn=polyval(coefficient,x);plot(x,y,'o');hold on; plot(x,yn,'-k');hold on; legend(sprintf("x-y"),sprintf("yn = (%f)x + (%f)",coefficient(1,1),coefficient(1,2)));1階擬合的曲線效果通過(guò)polyfit進(jìn)行二階擬合
x = [88 88 96 98 99 101 101 102 102 104 105 106 107 109 111 113 113 113 116 119 121 121 126 128 128 132 134 140 140 141 141 145 147 148 150 153 154 154 154 155 158 160 161 165 166 168 172 174];y = [2.5882 2.7059 2.8729 2.8834 2.9814 3.0909 3.1638 3.2353 3.3929 3.5404 3.6158 3.7569 3.8235 3.865 3.8824 3.9286 3.9394 4.1765 4.2353 4.3558 4.5856 4.6061 4.6584 4.7059 4.7826 4.8066 4.8214 4.8824 4.9697 5.0847 5.092 5.092 5.1381 5.1553 5.1786 5.2381 5.2727 5.4118 5.4237 5.5882 5.5932 5.8564 5.9627 6.135 6.4972 6.6071 6.6471 6.8485];%二階擬合 coefficient=polyfit(x,y,2);%將擬合后系數(shù)帶入公式 Y = P(1)*X^N + P(2)*X^(N-1) + ... + P(N)*X + P(N+1) yn=polyval(coefficient,x);plot(x,y,'o');hold on; plot(x,yn,'-k');hold on; legend(sprintf("x-y"),sprintf("yn = (%f)x2 + (%f)x + (%f)",coefficient(1,1),coefficient(1,2),coefficient(1,3)));同理,可得到更多階擬合的效果
3階擬合6階擬合由此可見,在系統(tǒng)允許的條件下,階數(shù)越多,擬合出來(lái)的曲線越逼近真實(shí)的測(cè)量曲線。這個(gè)工作要是放在人工設(shè)計(jì)里實(shí)現(xiàn),將會(huì)是一個(gè)非常繁瑣的事情,最小二乘法恰恰非常適合解決這類曲線擬合的工作。
總結(jié)
以上是生活随笔為你收集整理的数学建模最小二乘法拟合_MATLAB最小二乘法拟合曲线公式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux之调试mipi液晶屏
- 下一篇: windows下tomcat设置开机自启