A. matlab如何進行曲線擬合
您好,這樣的:一、 單一變數的曲線逼近
Matlab有一個功能強大的曲線擬合工具箱 cftool ,使用方便,能實現多種類型的線性、非線
性曲線擬合。下面結合我使用的 Matlab R2007b 來簡單介紹如何使用這個工具箱。
假設我們要擬合的函數形式是 y=A*x*x + B*x, 且A>0,B>0 。
1、在命令行輸入數據:
》x=[110.3323 148.7328 178.064 202.8258033 224.7105 244.5711 262.908 280.0447
296.204 311.5475]
》y=[5 10 15 20 25 30 35 40 45 50]
2、啟動曲線擬合工具箱
》cftool
3、進入曲線擬合工具箱界面「Curve Fitting tool」
(1)點擊「Data」按鈕,彈出「Data」窗口;
(2)利用X data和Y data的下拉菜單讀入數據x,y,可修改數據集名「Data set name」,然
後點擊「Create data set」按鈕,退出「Data」窗口,返回工具箱界面,這時會自動畫出數
據集的曲線圖;
(3)點擊「Fitting」按鈕,彈出「Fitting」窗口;
(4)點擊「New fit」按鈕,可修改擬合項目名稱「Fit name」,通過「Data set」下拉菜單
選擇數據集,然後通過下拉菜單「Type of fit」選擇擬合曲線的類型,工具箱提供的擬合類
型有:
Custom Equations:用戶自定義的函數類型
Exponential:指數逼近,有2種類型, a*exp(b*x) 、 a*exp(b*x) + c*exp(d*x)
Fourier:傅立葉逼近,有7種類型,基礎型是 a0 + a1*cos(x*w) + b1*sin(x*w)
Gaussian:高斯逼近,有8種類型,基礎型是 a1*exp(-((x-b1)/c1)^2)
Interpolant:插值逼近,有4種類型,linear、nearest neighbor、cubic spline、shape-
preserving
Polynomial:多形式逼近,有9種類型,linear ~、quadratic ~、cubic ~、4-9th degree ~
Power:冪逼近,有2種類型,a*x^b 、a*x^b + c
Rational:有理數逼近,分子、分母共有的類型是linear ~、quadratic ~、cubic ~、4-5th
degree ~;此外,分子還包括constant型
Smoothing Spline:平滑逼近(翻譯的不大恰當,不好意思)
Sum of Sin Functions:正弦曲線逼近,有8種類型,基礎型是 a1*sin(b1*x + c1)
Weibull:只有一種,a*b*x^(b-1)*exp(-a*x^b)
選擇好所需的擬合曲線類型及其子類型,並進行相關設置:
——如果是非自定義的類型,根據實際需要點擊「Fit options」按鈕,設置擬合演算法、修改
待估計參數的上下限等參數;
——如果選Custom Equations,點擊「New」按鈕,彈出自定義函數等式窗口,有「Linear
Equations線性等式」和「General Equations構造等式」兩種標簽。
在本例中選Custom Equations,點擊「New」按鈕,選擇「General Equations」標簽,輸入函
數類型y=a*x*x + b*x,設置參數a、b的上下限,然後點擊OK。
B. matlab擬合精度一般設為多少
0.5。
如果擬合效果不理想,可繼續提高精度。
C. 如何使用matlab擬合工具箱
1.打開CFTOOL工具箱。
在Matlab 6.5以上的環境下,在左下方有一個"Start"按鈕,如同Windows的開始菜單,點開它,在目錄"Toolboxes"下有一個"Curve Fitting",點開"Curve Fitting Tool",出現數據擬合工具界面,基本上所有的數據擬合和回歸分析都可以在這里進行。也可以在命令窗口中直接輸入」cftool」,打開工具箱。
2.輸入兩組向量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];
3.數據的選取。
打開曲線擬合共工具界面,點擊最左邊的"Data..."按鈕,出現一個Data對話框,在Data Sets頁面里,在X Data選項中選取x向量,Y Data選項中選取y向量,如果兩個向量的元素數相同,那麼Create data set按鈕就激活了,此時點擊它,生成一個數據組,顯示在下方Data Sets列表框中。關閉Data對話框。此時Curve Fitting Tool窗口中顯示出這一數據組的散點分布圖。
4.曲線擬合(冪函數power)。
點擊Fitting...按鈕,出現Fitting對話框,Fitting對話框分為兩部分,上面為Fit Editor,下面為Table of Fits,有時候窗口界面比較小,Fit Editor部分會被收起來,只要把Table of Fits上方的橫條往下拉就可以看見Fit Editor。在Fit Editor裡面點擊New Fit按鈕,此時其下方的各個選框被激活,在Data Set選框中選中剛才建立的x-y數據組,然後在Type of fit選框中選取擬合或回歸類型,各個類型的擬合或回歸相應的分別是: Custom Equations 用戶自定義函數 Expotential e指數函數 Fourier 傅立葉函數,含有三角函數 Gaussian 正態分布函數,高斯函數 Interpolant 插值函數,含有線性函數,移動平均等類型的擬合 Polynomial 多項式函數 Power 冪函數 Rational 有理函數(不太清楚,沒有怎麼用過) Smooth Spline (光滑插值或者光滑擬合,不太清楚) Sum of sin functions正弦函數類
在這個Type of fit選框中選擇好合適的類型,並選好合適的函數形式。於是點擊Apply按鈕,就開始進行擬合或者回歸了。此時在Curve Fitting Tool窗口上就會出現一個擬合的曲線。這就是所要的結果。 在上面的例子中,選擇sum of sin functions中的第一個函數形式,點擊Apply按鈕,就可以看見擬合得到的正弦曲線。
D. matlab多項式擬合
在命令窗口下輸入
x=[。。。]
y=[。。。]
cftool
在Curve Fitting Tool界面中,單擊Data。。。,選擇x Data和y Data,選擇Create data set,選擇Close
在Curve Fitting Tool界面中,單擊Fitting。。。,選擇New fit,選擇Type of fit,選擇Polynomial,選擇9th degree polynomial,打勾Center and scale X data項和Immediate apply項,選擇Apply
在Results框內,就會出現如下信息
Linear model Poly9:
f(x) = p1*x^9 + p2*x^8 + p3*x^7 + p4*x^6 +
p5*x^5 + p6*x^4 + p7*x^3 + p8*x^2 + p9*x + p10
where x is normalized by mean 2007 and std 4.183
Coefficients (with 95% confidence bounds):
p1 = 1250 (-2623, 5123)
p2 = -1317 (-3803, 1169)
p3 = -7686 (-2.787e+004, 1.25e+004)
p4 = 7016 (-4784, 1.882e+004)
p5 = 1.706e+004 (-1.775e+004, 5.186e+004)
p6 = -1.244e+004 (-2.995e+004, 5083)
p7 = -1.69e+004 (-3.952e+004, 5721)
p8 = 8533 (-214.7, 1.728e+004)
p9 = 9654 (5118, 1.419e+004)
p10 = 1.902e+004 (1.797e+004, 2.007e+004)
Goodness of fit:
SSE: 1.213e+006
R-square: 0.9921
Adjusted R-square: 0.9742
E. matlab中怎麼求擬合
polyfit最小二乘法擬合,一般這個就很好用
高級一點的,start——toolboxs——curve fitting——curve fitting tool
用擬合工具箱,這里包括了常用的所有擬合函數。你也可以自己定義函數擬合求出你要的系數。一般matlab書上都會介紹工具箱的用法。
進入曲線擬合工具箱界面「Curve Fitting tool」
(1)點擊「Data」按鈕,彈出「Data」窗口;
(2)利用X data和Y data的下拉菜單讀入數據x,y,可修改數據集名「Data set name」,然後點擊「Create data set」按鈕,退出「Data」窗口,返回工具箱界面,這時會自動畫出數據集的曲線圖;
(3)點擊「Fitting」按鈕,彈出「Fitting」窗口;
(4)點擊「New fit」按鈕,可修改擬合項目名稱「Fit name」,通過「Data set」下拉菜單選擇數據集,然後通過下拉菜單「Type of fit」選擇擬合曲線的類型,工具箱提供的擬合類型有:
Custom Equations:用戶自定義的函數類型
Exponential:指數逼近,有2種類型, a*exp(b*x) 、 a*exp(b*x) + c*exp(d*x)
Fourier:傅立葉逼近,有7種類型,基礎型是 a0 + a1*cos(x*w) + b1*sin(x*w)
Gaussian:高斯逼近,有8種類型,基礎型是 a1*exp(-((x-b1)/c1)^2)
Interpolant:插值逼近,有4種類型,linear、nearest neighbor、cubic spline、shape-preserving
Polynomial:多形式逼近,有9種類型,linear ~、quadratic ~、cubic ~、4-9th degree ~
Power:冪逼近,有2種類型,a*x^b 、a*x^b + c
Rational:有理數逼近,分子、分母共有的類型是linear ~、quadratic ~、cubic ~、4-5th degree ~;此外,分子還包括constant型
Smoothing Spline:平滑逼近(翻譯的不大恰當,不好意思)
Sum of Sin Functions:正弦曲線逼近,有8種類型,基礎型是 a1*sin(b1*x + c1)
Weibull:只有一種,a*b*x^(b-1)*exp(-a*x^b)
選擇好所需的擬合曲線類型及其子類型,並進行相關設置:
——如果是非自定義的類型,根據實際需要點擊「Fit options」按鈕,設置擬合演算法、修改待估計參數的上下限等參數;
——如果選Custom Equations,點擊「New」按鈕,彈出自定義函數等式窗口,有「Linear Equations線性等式」和「General Equations構造等式」兩種標簽。
在本例中選Custom Equations,點擊「New」按鈕,選擇「General Equations」標簽,輸入函數類型y=a*x*x + b*x,設置參數a、b的上下限,然後點擊OK。
(5)類型設置完成後,點擊「Apply」按鈕,就可以在Results框中得到擬合結果,如下例:
general model:
f(x) = a*x*x+b*x
Coefficients (with 95% confidence bounds):
a = 0.009194 (0.009019, 0.00937)
b = 1.78e-011 (fixed at bound)
Goodness of fit:
SSE: 6.146
R-square: 0.997
Adjusted R-square: 0.997
RMSE: 0.8263
同時,也會在工具箱窗口中顯示擬合曲線。
這樣,就完成一次曲線擬合啦,十分方便快捷。當然,如果你覺得擬合效果不好,還可以在「Fitting」窗口點擊「New fit」按鈕,按照步驟(4)~(5)進行一次新的擬合。
不過,需要注意的是,cftool 工具箱只能進行單個變數的曲線擬合,即待擬合的公式中,變數只能有一個。對於混合型的曲線,例如 y = a*x + b/x ,工具箱的擬合效果並不好。
這是一點介紹,具體還得自己摸索啊,少年
F. 在matlab中怎麼解線性回歸的擬合度
調用regress函數就能直接求出擬合度。
[B,BINT,R,RINT,STATS] = REGRESS(y,X,alpha) uses the input, ALPHA
alpha為顯著性水平(預設0.05) ,b,bint 為回歸系數估計值和它們的置信區間,r,rint 為殘差(向量)及其置信區間,stats 是用於檢驗回歸模型的統
計量,有四個數值,第一個是R^2 ,也就是擬合度的平方,第二個是F,第三個是與F 對應的概率 p, α < p 拒絕 H0,回歸模型成立,
第四個是殘差的方差s^2 。殘差及其置信區間可以用 rcoplot(r,rint)畫圖。
G. 請問用matlab做出三維曲線擬合後再加什麼函數才可以看到擬合的精度啊
頻率直方圖我沒太用過 但是其他形式的曲線 比如控制領域的時域圖用一下方法是可以實現的。
首先:想辦法讀出樣本點,x=(),y=() (在7.0里用小括弧就可以了,不同版本可以自行改一下)
之後可參見如下方法,我也是轉載ilove.MATLAB論壇上的方法 用過很好用
轉載:「在Matlab 6.5以上的環境下,在左下方有一個"Start"按鈕,如同Windows的開始菜單,點開它,在目錄"Toolboxes"下有一個"Curve Fitting",點開"Curve Fitting Tool",出現數據擬合工具界面,基本上所有的數據擬合和回歸分析都可以在這里進行。
下面給你簡單介紹一下它的使用方法。
首先在Matlab的命令行輸入兩個向量,一個向量是你要的x坐標的各個數據,另外一個是你要的y坐標的各個數據。輸入以後假定叫x向量與y向量,可以在workspace裡面看見這兩個向量,要確保這兩個向量的元素數一致,如果不一致的話是不能在工具箱裡面進行擬合的。
例如在命令行里輸入下列數據:
x=(0:0.02:0.98)';
y=sin(4*pi*x+rand(size(x)));
此時x-y之間的函數近似的為正弦關系,頻率為2,但是存在一個誤差項。
可以通過作圖看出它們的大體分布:
plot(x,y,'*','markersize',2);
打開曲線擬合共工具界面,點擊最左邊的"Data..."按鈕,出現一個Data對話框,在Data Sets頁面里,在X Data選項中選取x向量,Y Data選項中選取y向量,如果兩個向量的元素數相同,那麼Create data set按鈕就激活了,此時點擊它,生成一個數據組,顯示在下方Data Sets列表框中。關閉Data對話框。此時Curve Fitting Tool窗口中顯示出這一數據組的散點分布圖。
點擊Fitting...按鈕,出現Fitting對話框,Fitting對話框分為兩部分,上面為Fit Editor,下面為Table of Fits,有時候窗口界面比較小,Fit Editor部分會被收起來,只要把Table of Fits上方的橫條往下拉就可以看見Fit Editor。在Fit Editor裡面點擊New Fit按鈕,此時其下方的各個選框被激活,在Data Set選框中選中剛才建立的x-y數據組,然後在Type of fit選框中選取擬合或回歸類型,各個類型的擬合或回歸相應的分別是:
Custom Equations 用戶自定義函數
Expotential e指數函數
Fourier 傅立葉函數,含有三角函數
Gaussian 正態分布函數,高斯函數
Interpolant 插值函數,含有線性函數,移動平均等類型的擬合
Polynomial 多項式函數
Power 冪函數
Rational 有理函數(不太清楚,沒有怎麼用過)
Smooth Spline ??(光滑插值或者光滑擬合,不太清楚)
Sum of sin functions正弦函數類
Weibull 威布爾函數(沒用過)
不好意思,沒有學過數理統計,所以很多東西都是用了才知道,翻譯也就不太准確。不過在Type of fit選框下方有一個列表框,基本上各個函數類里的函數都寫成解析式列在下方以供選擇,所以找合適的函數還是比較容易的。
在這個Type of fit選框中選擇好合適的類型,並選好合適的函數形式。於是點擊Apply按鈕,就開始進行擬合或者回歸了。此時在Curve Fitting Tool窗口上就會出現一個擬合的曲線。這就是所要的結果。
在上面的例子中,選擇sum of sin functions中的第一個函數形式,點擊Apply按鈕,就可以看見擬合得到的正弦曲線。
在Fitting對話框中的Results文本框中顯示有此次擬合的主要統計信息,主要有
General model of sin1:
....... (函數形式)
Coefficients (with 95% conffidence range) (95%致信區間內的擬合常數)
a1=... ( ... ...) (等號後面是平均值,括弧里是范圍)
....
Godness of fit: (統計結果)
SSE: ... (方差)
R-squared: ... (決定系數,不知道做什麼的)
Adjusted R-squared: ... (校正後的決定系數,如何校正的不得而知)
RMSE: ... (標准差)
上面的例子中經過擬合得到的函數最後為
y=0.9354*sin(12.36x+6.886)
頻率為1.98加減0.03,和原來設置的頻率為2符合,相對誤差為1.5%。
這是曲線擬合工具箱的一個最簡單的使用方法,上面還有很多功能,寫是寫不完的,自己參照這個基本的思路,翻著英漢詞典,看著幫助,然後一個按鈕一個按鈕的試吧。
另外要說的是,如果想把這個擬合的圖像導出的話,在Curve Fitting Tool窗口的File菜單下選Print to Figure,此時彈出一個新的圖像窗口,裡面是你要導出的圖像,在這個figure窗口的File菜單里再選Export,選擇好合適的格式,一般是jpeg,選擇好路徑,點擊OK就可以了。出來的圖像可以在Word等編輯環境中使用,就不多說了。
要修改圖像的性質,如數據點的大小、顏色等等的,只需要在對象上點右鍵,就差不多可以找到了。」
上面所說的X,Y向量就是樣本點。
下面是轉載的網址,希望有用處
ilovematlab是個不錯的論壇,我也是剛發現,不過幫助很大,基本的問題在那都會有答案。
H. matlab中利用擬合工具箱如何找出最佳擬合曲線
可以但比較困難,需要太多的數據,三維以上難以在圖上直觀表達,而公式是可以的。對於多維情況,在曲線擬合的情況,每增加一個變數,所需數據都會以幾何級數增加,這個叫維災,所以不過不是萬不得已要避免。
I. 急!MATLAB中用cftool工具數據擬合之後,擬合結果好壞判斷
R^2衡量的是回歸方程整體的擬合度,是表達因變數與所有自變數之間的總體關系。R^2等於回歸平方和在總平方和中所佔的比率,即回歸方程所能解釋的因變數變異性的百分比。
實際值與平均值的總誤差中,回歸誤差與剩餘誤差是此消彼長的關系。因而回歸誤差從正面測定線性模型的擬合優度,剩餘誤差則從反面來判定線性模型的擬合優度。
(9)matlab擬合工具箱擬合度擴展閱讀:
曲線擬合
實際工作中,變數間未必都有線性關系,如服葯後血葯濃度與時間的關系;疾病療效與療程長短的關系;毒物劑量與致死率的關系等常呈曲線關系。曲線擬合(curve fitting)是指選擇適當的曲線類型來擬合觀測數據,並用擬合的曲線方程分析兩變數間的關系。
最小二乘法(又稱最小平方法)是一種數學優化技術。它通過最小化誤差的平方和尋找數據的最佳函數匹配。利用最小二乘法可以簡便地求得未知的數據,並使得這些求得的數據與實際數據之間誤差的平方和為最小。最小二乘法還可用於曲線擬合。其他一些優化問題也可通過最小化能量或最大化熵用最小二乘法來表達。