matlab 韦布尔拟合,MATLAB数据拟合工具在数学建模中的简单应用
1.問題描述
下表是由中國國家統計局提供的《50個城市主要食品平均價格變動情況》整理得到的2016年1月到5月豆角價格數據表,請建立數學模型解決下來兩個問題:
(1)豆角價格有什么特點?
(2)對6月份豆角價格變化情況進行預測。
月份一月 二月 三月 四月 五月日期1-1011-2021-301-1011-2021-301-1011-2021-301-1011-2021-301-1011-2021-30價格10.3610.1912.6912.1417.416.4717.6917.2215.4813.8211.7610.939.157.922.模型假設,符號說明
2.1 模型假設
一個國家的宏觀經濟會呈現周期性,因此作為一國宏觀經濟的組成部分之一的物價水平也會呈現周期性,隨著經濟周期的上下波動,物價水平也會上下波動。基于這點,描述物價水平的數學模型——經驗公式也應該具有周期性。我們不妨假設描述物價水平數學模型是一個周期函數,并且可以轉化為傅里葉級數。
2.2 符號說明
從表中,我們不難發現,國家統計局會在一個月里對50個城市主要食品平均價格變動情況進行三次調查統計,分別是1-10日,11-20日和21-30日三個時間區間。因此,描述物價水平的周期函數的自變量是月份。為了方便處理,我們再做一次抽象處理,將時間抽象為整數N,其中0<=N<=36。那么如何使用N來表示某一個月呢?又如何使用N來表示某一個月里的第幾次調查呢?為此,我們使用如下兩個運算符(高級編程語言中都有這兩個運算符):/:整除運算符,比如13/3=4 %:取模運算符,比如13%3=1 這樣整數N與月份和當月的第幾次調查之間的關系可以表示如下: 調查次序Q=N%3 如果Q=0,那么調查月份M=N/3,否則M=N/3 + 1 比如取N=13,那么調查次序Q=1,調查月份M=5,這表示5月份的第一次調查,即調查時間為5月1-10日。
3.數學建模
接下來看看,如何使用MATLAB的數據擬合工具解決該問題。
設時間矩陣N = [1 2 3 4 5 6 7 8 9 10 11 12 13 14];
豆角價格的矩陣vigna= [10.36 10.19 12.69 12.14 17.4 16.47 17.69 17.22 15.48 13.82 11.76 10.93 9.15 7.92];
3.1 進入數據擬合窗口
在MATLAB命令行窗口中輸入cftool,回車即可。
3.2 數據擬合
在區域1中選擇相應坐標軸的變量名,在區域2中選擇擬合的函數模型,在區域3會會自動顯示擬合的圖像,在區域4中會給出擬合后的函數表達式。
區域2中可以選擇的函數模型有:
Custom Equation 自定義方程 Exponential 指數擬合 Fourier 傅里葉擬合 Gaussian 高斯擬合 Interpolant 插值 Linear Fitting 線性擬合 Polynoimal 多項式 Power 冪函數擬合 Rational 有理擬合,兩個多項式之比,分子和分母都是多項式 Smoothing Spline 平滑樣條 Sum of Sine 正弦曲線擬合 Weibull 韋布爾擬合
區域4中顯示擬合結果的評價指標,含義如下:
SSE:Sum of Squares due to Error誤差平方和,越接近0曲線的擬合效果(由最小二乘法計算得出) R-square:越接近1,曲線的擬合效果越好 Adjusted R-square:越接近1,曲線的擬合效果越好 RMSE:root mean square error 均方根誤差,越接近0曲線的擬合效果
最后看看本題的擬合效果,如下圖所示。
最后看看,區域4中顯示的函數模型:
General model Fourier1: f(x) = a0 + a1*cos(x*w) + b1*sin(x*w)Coefficients (with 95% confidence bounds): a0 = 13 (11.75, 14.25) a1 = -4.347 (-5.235, -3.459) b1 = 0.34 (-3.128, 3.808) w = 0.4398 (0.3295, 0.5501) Goodness of fit: SSE: 9.611 R-square: 0.9314 Adjusted R-square: 0.9108 RMSE: 0.9803
通過各種函數模型的擬合發現這個模型擬合效果最好,R-square: 0.9314,非常接近于1。
因此描述豆角價格變化規律的數學模型就是:
vigna = f(N) = 13 + -4.347*cos(N*0.4398) + 0.34*sin(N*0.4398)
這是一個周期函數,符合經濟周期的規律。
至此,本題基本解決了。
4.總結
本文通過一個數學建模題目講解了MATLAB中數據擬合工具的使用,該工具比較簡單,但是功能很強大。MATLAB中含有許多功能強大的工具,讀者有興趣的話,可以繼續探索,在使用該工具時,也可以從軟件設計的角度去欣賞,個人覺得MATLAB軟件的設計是一個經典的學習例子。
舉報/反饋
總結
以上是生活随笔為你收集整理的matlab 韦布尔拟合,MATLAB数据拟合工具在数学建模中的简单应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: apiCloud中的API对象
- 下一篇: iBase4J搭建