❶ 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。
❷ 如何用matlab進行函數組的擬合
我覺得,首先你應該對微分方程求積分。使其變成一個一個隨時間變化的函數。
cw=G(t),或者cp=F(t)等等。這樣就是一個比較簡單的函數關系式。最後調用擬合函數就可以了。
比如由微分方程變化cw=G(t),使用微分非齊次公式。成為cw=C1*exp(C2*t)+C3。當然C1,C2,C3包括了你的未知變數K1~K4。你使用完指數擬合後能知道C1~C3的值。
再把C1~C3求導,放回微分方程中。往變數t中帶值,這樣就會形成一個方程組求取K1~K4。由於可能是奇異矩陣,所以你用最小二乘法就能求出最後的K1~K4值。
❸ 怎麼用matlab進行數據的多元擬合
如何用matlab進行數據的多元函數擬合?
1、擬合前,我們應准備x1,x2,x3,。。。,y的一系列數據
2、將x1,x2,x3,。。。數據賦值給X變數
3、自定義多元函數擬合函數,如func=@(a,x)a(1)*x1+a(2)*x2+a(3)*x3+a(4),a為擬合系數
4、初定a的初始值,如a0=[0,0,0,0] %其個數必須與擬合顯示對應
5、利用nlinfit或lsqcurvefit函數,求其擬合系數。如
[a,r,J]=nlinfit(X,y,func,a0)
這里,a為擬合系數;r為殘差;J為Jacobian 矩陣
6、利用nlparci函數,求得擬合系數的置信區間,即
ci = nlparci(p,r,J)
7、計算擬合值,即 yi=func(a,x)
8、計算原數據與擬合數據的相關性,如R²≈1,則認為擬合是合理的。
❹ MATLAB中如何把cftool擬合的函數輸出到命令行
綜述如下:
1、在使用cftool擬合好理想的曲線後,點擊File下的Generate Code,MATLAB會自動生成一個未命名的function,自行保存到工作文件夾。此處注意,默認的函數名叫createFit(XX,YY,、、、),可根據個人需要修改。
2、回到、m文件,在需要擬合函數的那一步,鍵入"fitresult,gof=createFit(XX,YY,、、、);"其中fitresult返回的是系數取值,gof返回的是goodness-of-fitness擬合好壞的信息。
3、後續如果想調用某一個具體的系數值,例如關心的系數a1,可使用「fitresult、a1」命令。又或者c3,則使用「fitresult、c3」命令,以此類推。
MATLAB優點簡單易用
Matlab是一個高級的矩陣/陣列語言,它包含控制語句、函數、數據結構、輸入和輸出和面向對象編程特點。用戶可以在命令窗口中將輸入語句與執行命令同步,也可以先編寫好一個較大的復雜的應用程序(M文件)後再一起運行。新版本的MATLAB語言是基於最為流行的C++語言基礎上的,因此語法特徵與C++語言極為相似,而且更加簡單,更加符合科技人員對數學表達式的書寫格式。
❺ 如何用matlab數據擬合函數
1、首先啟動matlab,選擇編輯器,再新建一個命令文件。
❻ matlab擬合函數
題主給出中國人口預測問題(二),可以使用英國經濟學家馬爾薩斯提出的Malthus模型來擬合與預測。其步驟:
第一步,自定義Malthus模型函數(指數函數),如
func=@(k,t)N0*exp(D*(t-t0))
這里,N0=60.2;t0=1954;
第二步,利用1954-2005年的數據,分別使用lsqcurvefit函數,求出系數D。即
[D,resnorm,resial,exitflag]=lsqcurvefit(func,a0,t,N);
第三步,計算擬合值,即
x1=func(D,t);
第四步,計算相關系數R^2,即
R2=R2_fun(x,x1);
第五步,預測2010年和2030年的人口數,即
xhat=func(D,2010);
disp(['預測2010年人口數為',num2str(xhat),'千萬'])
xhat=func(D,2030);
disp(['預測2030年人口數為',num2str(xhat),'千萬'])
第六步,使用plot函數繪制,中國人口數的統計數據與預測模型曲線對比圖,即
plot(t,x,'*-',t,x1,'+-')
第七步,標注圖例,即
legend('統計數據','Malthus模型')
第八步,編寫標題,即
title='中國人口數的統計數據與Malthus模型曲線對比';
第九步,標注坐標軸名稱,即
xlabel('年份');ylabel('人口(千萬)');
最後,編寫程序,並運行可以得到如下結果。
其他問題與上述過程類似。
❼ MATLAB如何對三角函數進行擬合
Matlab可以輸入與三角函數相關的數據以及三角函數形式,從而求出待定的系數,完成數據擬合。完成三角函數擬合過程如下:
1、打開Matlab,在命令行窗口輸入需要擬合數據。
❽ matlab如何做線性擬合
方法一
1、最常用的是多項式擬合,採用polyfit函數,在命令窗口輸入自變數x和因變數y。
❾ 怎樣用matlab指數函數擬合
擬合函數表達式:y=a*exp(b+cx)
式中a=0.06154920769,
b=-3.18125203,
c=7.822374803
擬合度0.9725(相關系數)
用V=A(1)*exp(A(2)*I)+A(3)*exp(A(4)*I)模型比較好。
A = nlinfit(X,Y,myfun,[700 -0.01 -700 -1 ])
I=min(X):0.1:max(X);
V=A(1)*exp(A(2)*I)+A(3)*exp(A(4)*I);
plot(X,Y,'o',I,V)
結果:A =668.9571 -0.0688 -656.7991 -1.0321
意義
a>1時,Y隨X增大而增大,先快後慢;0<a<1時,Y隨X增大而減少,先快後慢。當以Y和lnX繪制的散點圖呈直線趨勢時,可考慮採用對數函數描述Y與X之間的非線性關系,式中的b和a分別為斜率和截距。
曲線直線化是曲線擬合的重要手段之一。對於某些非線性的資料可以通過簡單的變數變換使之直線化,這樣就可以按最小二乘法原理求出變換後變數的直線方程,在實際工作中常利用此直線方程繪制資料的標准工作曲線,同時根據需要可將此直線方程還原為曲線方程,實現對資料的曲線擬合。
以上內容參考:網路-曲線擬合
❿ 怎麼用matlab進行非線性的多元函數擬合
方法一:
1、最常用的是多項式擬合,採用polyfit函數,在命令窗口輸入自變數x和因變數y。