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)
B. 怎麼用matlab進行非線性的多元函數擬合
方法一:抄
1、最常用的是多項式擬合,採用polyfit函數,在命令窗口輸入自變數x和因變數y。
C. matlab中的csape怎麼使用
function pp = csape(x,y,conds,valconds)
%pp=csape(x,y,'變界類型','邊界值'),生成各種邊界條件的三次樣條插值. 其中,(x,y)為數據向量
%邊界類型可為:'complete',給定邊界一階導數.
% 'not-a-knot',非扭結條件,不用給邊界值.
% 'periodic',周期性邊界條件,不用給邊界值.
% 'second',給定邊界二階導數.
% 'variational',自然樣條(邊界二階導數為0)
% .
%例 考慮數據
% x | 1 2 4 5
% ---|-------------
% y | 1 3 4 2
%邊界條件S''(1)=2.5,S''(5)=-3,
% x=[1 2 4 5];y=[1 3 4 2];
% pp=csape(x,y,'second',[2.5,-3]);pp.coefs
% xi=1:0.1:5;yi=ppval(pp,xi);
% plot(x,y,'o',xi,yi);
pp0 = csape(x,[1,zeros(1,length(y)),0],[1,0]);
pp = csape( x, [1 sin(x) 0], [1 2] ) %左邊的點一階導數為1,右邊的點二階導數為0
splinetool是一個圖形化的插值工具
lagrange插值,由於lagrange插值可能不收斂,所以工程中很少有人用這種插值。matlab中沒有專門的lagrange插值函數。但我們可以自己編一個,如下:
%lagrange插值子函數
function y=lagrange(x0,y0,x)
n=length(x0); m=length(x);
for i=1:m
z=x(i);
s=0.0;
for k=1:n
p=1.0;
for j=1:n
if j~=k
p=p*(z-x0(j))/(x0(k)-x0(j));
end
end
s=p*y0(k)+s;
end
y(i)=s;
end
D. 如何使用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按鈕,就可以看見擬合得到的正弦曲線。
E. MATLAB中如何將擬合工具箱中的擬合函數保存為函數並隨時調用
復制擬合結果(擬合函數及系數),寫成完整的表達式,然後用int()函數計算積分。函數使用格式
int('f(x)')
求不定積分
int('f(x)',a,b)
求定積分
F. 用matlab擬合工具箱擬合函數後,如何求這個函數的積分
復制擬合結果(擬合函數及系數),寫成完整的表達式,然後用int()函數計算積分。函數使用格式
int('f(x)') 求不定積分
int('f(x)',a,b) 求定積分
G. matlab擬合工具箱最多幾個變數
%% 用擬合工具箱進行對xm和r的參數擬合
% 可以在APP中找到curve fitting tool或者直接在命令行中輸入cftool,都是可以打開的
% 擬合工具箱的左側是讓我們選擇數據的窗口,可以看到有X/Y/Z三個數據選項
% 意思是說,我們的擬合做斗工具箱最多可以用來處理一個變數或者兩個變數的擬合問題
% 如果是多維的擬合,我們可以用粒子群演算法
% 在數模比賽中,我們最常用的擬合演算法有兩種:Custom Equation和Polymial(多項式擬合)
%% Custom Equation是用戶自定義函數擬合,比如這道題,題目要求我們用指定的函數擬合
% 就可以選擇這種方法,x是關於t的函數,然後對應函數的形式把函數輸入到框中
% 此時我們已經得到了一條擬合曲線,但是效果非常的差
% 導致這種現象發生的銷賀原因是:在擬合的時候matlab會自動為我們選擇xm和r的初值
% 但如果初值的選取不合理,就會造成這種現象,方法是我們再選項中對初值進行調試
% 現在就得到了一條正常的曲線
%% 對結果參數的解釋
% 由結果我們可以看到,擬合參數xm=342.4,r=0.02735
% 區間的意思是,r的值有95%的幾率落在[0.0265,0.0282],xm同理
% 對於下面的參數,最重要的是SSE和R-SQUARE(即R²)
% 但是這里需要注意,如果函數是線性的,那麼需要關注的有SSE和R²
% 如果函數是非線性的,那麼需要關注的只有SSE
% 如何理解線性?
% 這里的線性指的是對參數的線性,如y(x)=ax+bx²,它是一個線性函數,a和b是我們要預測的參數且都為一次
% 再如y(x)=acx+bx²,此時就不再滿足線性,y(x)=e^(ax+bx),同樣也是線性函數喲
% 本題純斗磨顯然就是一個非線性的函數,所以我們關注其SSE=1225,看起來是一個非常大的數
% 但是你別忘了,Y裡面的值本來就偏大,更何況平方和,所以1225是一個比較理想的數據了
% 文件選項中的Generate Code可以用於生成代碼,保存後就可以使用了
H. 擬合工具箱如何變成一個變數
通過load命令輸入變數。
擬合工具箱可以通過load命令輸命令輸入進行變數,數據處理中。
求取自變數x和因變數y之間的近似函數關系表達式y=f(x)的問題就是曲線擬合。
I. Matlab擬合工具箱
您好,這樣的:一、
單一變數的曲線逼近
matlab有一個功能強大的曲線擬合回工具箱
cftool
,使用方便,能實現多種答類型的線性、非線
性曲線擬合。下面結合我使用的
matlab
r2007b
來簡單介紹如何使用這個工具箱。
假設我們要擬合的函數形式是
y=a*x...
J. matlab 裡面數據擬合工具箱使用
不是matlab安裝的問題,這個問題我也遇到過,遍求解答無果之後,終於自己摸索出來了。是這樣的,不要用GUI中的data按鈕來新建數據集,而要在matlab命令窗口中,輸入命令:cftool(a,b),其中a,b就是你要設置的x、y坐標的向量。這樣出來散點圖,之後再在cftool工具箱的GUI中點fitting按鈕,選擇曲線擬合