離散信號如何插值平滑 matlabR2012a中如何進行數據擬合?
matlabR2012a中如何進行數據擬合?方法一、用數據擬合工具箱 Curve Fitting Tool打開CFTOOL工具箱。在matlab的command window中輸入cftool,即可進
matlabR2012a中如何進行數據擬合?
方法一、用數據擬合工具箱 Curve Fitting Tool
打開CFTOOL工具箱。在matlab的command window中輸入cftool,即可進入數據擬合工具箱。
輸入兩組向量x,y。
首先在Matlab的命令行輸入兩個向量,一個向量是你要的x坐標的各個數據,另外一個是你要的y坐標的各個數據。輸入以后假定叫x向量與y向量,可以在workspace里面看見這兩個向量,要確保這兩個向量的元素數一致,如果不一致的話是不能在工具箱里面進行擬合的。
例如在命令行里輸入下列數據:
x [196,186, 137, 136, 122, 122, 71, 71, 70, 33]
y [0.012605 0.013115 0.016866 0.014741 0.022353 0.019278 0.041803 0.038026 0.038128 0.088196]
數據的選取。打開曲線擬合共工具界面,點擊最左邊的X data和Y data,選擇剛才輸入的數據,這時界面中會出現這組數據的散點圖。
選擇擬合方法,點擊Fit
左側results為擬合結果,下方表格為誤差等統計數據。
方法二、用神經網絡工具箱
1、打開神經網絡工具箱,在command window內輸入nftool,進入Neural fitting tool
2、導入數據,點擊next,導入Inputs為x,Targets為y。
3、選擇網絡參數,點擊next,選擇訓練集和測試集數量,點next,選隱藏層節點個數。
4、訓練數據,點next,選train。
5、繪制擬合曲線,訓練完成后電機plot fit
訓練結果參數在訓練完后自動彈出
神經網絡工具箱可以用command寫,請搜索關鍵字matlab 神經網絡工具箱函數。
方法三、用polyfit函數寫
polyfit函數是matlab中用于進行曲線擬合的一個函數。其數學基礎是最小二乘法曲線擬合原理。曲線擬合:已知離散點上的數據集,即已知在點集上的函數值,構造一個解析函數(其圖形為一曲線)使在原離散點上盡可能接近給定的值。
調用方法:apolyfit(xdata,ydata,n),
其中n表示多項式的最高階數,xdata,ydata為將要擬合的數據,它是用數組的輸入。輸出參數a為擬合多項式 ya1x^n ... anx a,共n 1個系數。
%例程Apolyfit(x,y,2)zpolyval(A,x)plot(x,y,r*,x,z,b)
方法四、自行寫算法做擬合
請參考數值分析教科書,擬合、插值方法較多,算法并不復雜,靈活套用循環即可
擬合法和插值法有什么區別呢?
擬合與插值的區別:
1、在含義上不同:插值是指已知某函數的在若干離散點上的函數值或者導數信息,通過求解該函數中待定形式的插值函數以及待定系數,使得該函數在給定離散點上滿足約束。 而擬合是指,擬合就是把平面上一系列的點,用一條光滑的曲線連接起來。因為這條曲線有無數種可能,從而有各種擬合方法。擬合的曲線一般可以用函數表示,根據這個函數的不同有不同的擬合名字。
2、在圖像上是不同:插值在圖像是一定得過了數據的才行;擬合在圖像上是必須要得到最接近得結果,是要看總體的效果。
3、在幾何意義上不同:擬合是給定了空間中的一些點,找到一個已知形式未知參數的連續曲面來最大限度地逼近這些點;而插值是找到一個(或幾個分片光滑的)連續曲面來穿過這些點。 :擬合- :插值-