Ⅰ 誰能教教我怎麼把大量數據擬合成一個比較復雜的函數
擬合函數是用於曲線擬合的函數。如果您知道y和x有關,但不知道是什麼關系,只能通過實驗得到一組數據,如x=x1時y=y1,x=x2時y=y2,...這里(x1,y1)、(x2,y2)、...都是實驗結果,您就可以在直角坐標系中畫出各點,描點可得兩者的關系曲線。根據曲線的形狀您可以選擇一個函數,如果類似於直線那就簡單了,如果是彎曲的可以選擇y是x的多項式函數,如y=a*x*x*x+b*x*x+c*x+d等等,也可以是其他形式的函數類型,然後利用最小二乘法或其他擬合方法求出系數a,b,c,d等,即可得到y和x的關系,這個過程就是曲線擬合,這個函數就是擬合函數。由於實驗有誤差,選擇的函數也不一定就很合適,擬合出來的函數一般難以准確通過各點,但可以離各點盡量近,從而近似地表示y和x的關系。
Ⅱ 求急!!用MATLAB對大量的離散數據進行擬合,哪種擬合方法的精確度比較高
這主要看數據的擬合趨勢,是線性關系的,還是非線性關系的。對於線性關系的,可以用regress()函數;非線性關系的,可以用lsqcurvefit()函數或nlinfit()函數。
Ⅲ 簡述實驗數據及模型參數的擬合方法
(1) 簡述實驗數據及模型參數擬合方法,並舉2個例子。
答:實驗數據擬合方法:試驗測得的數據常常是一組離散型序列,含有不可避免的誤差,或者無法同時滿足某特定的函數,那麼我們用所逼近函數ψ(x)最優的靠近樣點,此法稱為擬合函數。
模型參數擬合方法:在某一反應工程實驗中,對測得的某一組數據,採用不同的模型去擬合實驗數據,求出最佳的模型和模擬參數。
舉例:線性擬合函數和二次擬合函數。
(2) 線性擬合和二次擬合函數之間的異同點。
線性擬合:給定一組數據(xi,yi),i=1,2,···,m作擬合直線p(x)=a0+a1x;
二次擬合:給定數據排列(xi,yi),i=1,2,···,m,用二次多項式函數p(x)=a0+a1x+a2x2擬合各組數據。
相同點:二者都是Q與Y之間誤差最小原則作為最優標準的逼近函數,二者都用於離散型函數組的擬合,二者都用於單變數函數擬合。
不同點:線性擬合構造的函數為二次函數,二次擬合構造的函數為二次函數。
(3) 什麼是矛盾方程組,其如何求解。
答:一般情況下,當方程數n多於變數數m,且m個方程之間線性不相關,則方程組無解,這時方程組稱為矛盾方程組。方程組在一般意義下無解,也即無法找到n個變數同時滿足m個方程。這種情況和擬合曲線無法同時滿足所有的實驗數據點相仿,故可以通過求解均方誤差min||AX-Y)||22極小意義下矛盾方程的解來換取擬合曲線。由數學知識還可以證明,方程組ATAX=ATY的解是矛盾方程組AX=Y在最小二乘法下的解。
(4) 什麼叫非線性方程求解,試舉出五個以上方法。
答:對於一般的非線性方程f(x)=0,通常其根不止一個,求解月無法確定的方法,而任何一種方法,只能算出一個根。因此,在求解非線性方程式,要給定初始值或求解范圍。採用相應的方法求解方程f(x)=0的根叫做非線性方程求解。
方法:對分法、直接迭代法、鬆弛迭代法、牛頓迭代法、割線法。
Ⅳ 使用matlab軟體,大量的離散數據進行數據擬合,如何把多組參數的擬合曲線放在一個圖上進行比較
你可以直接在命令窗口下執行就行了。
x1=[....],y1=[....]
x2=[....]],y2=[....]
x3=[....]],y3=[....]
。。。。。
plot(x1,y1,x2,y2,x3,y3,.........),grid on
Ⅳ 在EXCEL中如何使用指數函數,冪函數,對數函數擬合一組數據
1、框選數據——散點圖——點擊圖片上的點——右擊,添加趨勢線,就有各種函數的擬合方式。
2、用Excel,輸入數據後,選定數據,然後點擊「插入」,找到「散點圖」,畫出散點圖,選中散點圖的曲線(沒趨勢線的就選擇點),右鍵,「添加趨勢線」或「設置趨勢線格式」,可以看見有不同的擬合可以選擇。選中某個後,可以勾選「顯示公式」以及「顯示R的平方」,可以查看公式以及擬合程度。
Ⅵ 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。
(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 ,工具箱的擬合效果並不好。
Ⅶ MATLAB多組數據如何進行擬合
要兼顧三組數據,在試驗條件不變的情況下,可對三組數據取平均值後再擬合。
如:a1=[x1,y1];a2=[x2,y2];a3=[x3,y3];假設x1,x2,x3,y1,y2,y3是列向量且元素個數相等,
x=mean([x1,x2,x3],2);
y=mean([y1,y2,y3],2);
a=[x,y];
再對x,y進行擬合就可對三組數據都兼顧到了。
Ⅷ MATLAB數據擬合處理大量數據的實例分析
給你用一個一元情況的吧;
>>x=-1:0.2:1;
>>y=[0.841470984807897-0.717356090899523-0.564642473395035-0.3894183423086...
-0.19866933079506100.1986693307950610.389418342308650.564642473395035...0.7173560908995230.841470984807897];
如果要你想擬合成一個2次多元函數
命令為
>>p=polyfit(x,y,2)
就可以得到擬合多項式的系數。
還可以通過做出原圖和擬合後的效果圖,見圖1,就可以比較擬合效果,命令如下:
>>fval=polyval(p,x);
>>plot(x,fval),holdon
>>plot(x,y),holdoff
當然還有一個更為實用的方法,就是直接的應用命令polytool;
>>polytool(x,y,n)
n是你想最高次擬合為多少,如果是5,就輸入>>polytool(x,y,5)
得到的是一個含有偏差的擬合效果圖,其中圖形中的degree代表可以改變擬合次數。見圖2
Ⅸ 如何將函數與數據擬合
可以用k次多項式擬合。運行步驟如下:
x=[。。。];
y=[。。。];
p=polyfit(x,y,2) %y=p1*x^2+p2*x+p3
xi=[。。。]
yi=polyval(p,xi)
plot(x,y,'o',xi,yi) %繪圖,查看擬合效果
ok
Ⅹ 怎麼用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,則認為擬合是合理的。