日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数学建模最小二乘法拟合_MATLAB最小二乘法拟合曲线公式

發布時間:2023/12/14 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数学建模最小二乘法拟合_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最小二乘法拟合曲线公式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。