数学建模最小二乘法拟合_MATLAB最小二乘法拟合曲线公式
生活随笔
收集整理的這篇文章主要介紹了
数学建模最小二乘法拟合_MATLAB最小二乘法拟合曲线公式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
假設 y = f(x),那么每個x應該會對應一個y。對一個未知公式的 f(x)系統,在科學實驗中,常常需要測量兩個變量的多組數據,然后找出他們的近似函數關系。通常,我們把這種處理數據的方法稱之為經驗配線,所找到的函數關系稱為經驗公式。最小二乘法就是最常用的一種配線方式。
最小二乘法是一種數學優化技術,它通過最小誤差的平方和找到一組數據的最佳函數匹配。最小二乘法常用于曲線擬合。
下面,我們通過一個例子來研究最小二乘法函數polyfit的使用。
首先,我們通過數據采集,得到一組y和x數據的對應關系并繪制成曲線。
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');原始采樣數據通過polyfit進行一階擬合
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);%將擬合后系數帶入公式 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階擬合的曲線效果通過polyfit進行二階擬合
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);%將擬合后系數帶入公式 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階擬合由此可見,在系統允許的條件下,階數越多,擬合出來的曲線越逼近真實的測量曲線。這個工作要是放在人工設計里實現,將會是一個非常繁瑣的事情,最小二乘法恰恰非常適合解決這類曲線擬合的工作。
總結
以上是生活随笔為你收集整理的数学建模最小二乘法拟合_MATLAB最小二乘法拟合曲线公式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux之调试mipi液晶屏
- 下一篇: c语言sobel边缘检测,Sobel图像