① 曲線擬合的常用函數
指數函數(exponential function)的標準式形式為
Y=aebX (12.29)
對式(12.29)兩邊取對數,得lnY=lna+bX (12.30)
b>0時,Y隨X增大而增大;b<0時,Y隨X增大而減少。見圖12.4(a)、(b)。當以lnY和X繪制的散點圖呈直線趨勢時,可考慮採用指數函數來描述Y與X間的非線性關系,lna和b分別為截距和斜率。
更一般的指數函數
Y=aebX+k (12.31)
式中k為一常量,往往未知, 應用時可試用不同的值。 對數函數(lograrithmic function)的標準式形式為
Y=a+blnX (X>0) (12.32)
b>0時,Y隨X增大而增大,先快後慢;b<0時,Y隨X增大而減少,先快後慢,見圖12.4(c)、(d)。當以Y和lnX繪制的散點圖呈直線趨勢時,可考慮採用對數函數描述Y與X之間的非線性關系,式中的b和a分別為斜率和截距。
更一般的對數函數
Y=a+bln(X+k) (12.33)
式中k為一常量,往往未知。
(a)lnY=lna+bX(b)lnY=lna-bX(c)Y=a+blnX(d)Y=a-blnX 冪函數(power function)的標準式形式為
Y=aXb(a>0,X>0) (12.34)
式中b>0時,Y隨X增大而增大;b<0時,Y隨X增大而減少。
對式(12.34)兩邊取對數,得
lnY=lna+blnX(12.35)
所以,當以lnY和lnX繪制的散點圖呈直線趨勢時,可考慮採用冪函數來描述Y和X間的非線性關系,lna和b分別是截距和斜率。
更一般的冪函數
Y=aXb+k (12.36)
式中k為一常量,往往未知。
② 關於matlab 數據擬合 ,沒有經驗公式,不知道是幾次的函數,該如何擬合
不管是什麼程序(matlab或是excel),你必須得告許程序目標擬合公式的形式。這里的形式,是指你的公式是多項式型、對數型、三角形或其它的形式,但是這個公式裡面有待定的系數,而這個系數就是通過擬合得到的。
還有就是數據擬合,一般採用最小二乘的方法,這種方法並不是所有形式的公式都可以擬合。如果你的公式比較復雜,比如上說是一個積分形式,並且這個積分還不能顯示的積出來,需要數值積分才可以積出來的話,用最小二乘法就不行了,這時,matlab是沒有現成的函數來進行擬合的,這時就需要自己編程序來實現,比如可以運用「黃金分割法」、「Powell優化」等方法來實現。
但,如你所提的問題,多項式是可以擬合的,多項式擬合也是最基本的數據擬合。可是呢,你又不知這個多項式是多少次的,這時候就需要根據你對已有數據觀察加以判斷了。你可以先假定是N次的,然後根據擬合的效果看是否需要更改。數據擬合並沒有標准答案,只要你擬合出來的曲線和已有的數據符得相對比較好就行了。
最後,希望我的回答可以幫助你。也希望你能採納我的回答。
③ 如何用matlab數據擬合函數
MATLAB有好多方法來擬合函數,比如對數擬合、指數擬合、多項式擬合。建議你看一下講解MATLAB函數擬合的書籍。就你給的數據看,多項式擬合(Polyfit)比較適合且比較簡單。
④ 這個曲線用什麼函數來擬合
可以用三次函數來擬合。擬合函數方程:
y=a+b/x+c/x²
其中:a>0,b<0,c<0
⑤ 怎麼用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,則認為擬合是合理的。
⑥ polyfit的用法
polyfit的用法:
p = polyfit(x,y,n);
% 其中x,y表示需要擬合的坐標點,大小需要一樣; n表示多項式擬合的次數。
% 返回值p表示多項式擬合的系數,系數從高到低排列。
polyfit函數是matlab中用於進行曲線擬合的一個函數。其數學基礎是最小二乘法曲線擬合原理。曲線擬合:已知離散點上的數據集,即已知在點集上的函數值,構造一個解析函數(其圖形為一曲線)使在原離散點上盡可能接近給定的值。
調用方法:polyfit(x,y,n)。用多項式求過已知點的表達式,其中x為源數據點對應的橫坐標,可為行向量、矩陣,y為源數據點對應的縱坐標,可為行向量、矩陣,n為你要擬合的階數,一階直線擬合,二階拋物線擬合,並非階次越高越好,看擬合情況而定。
matlab polyfit 做出來的值從左到右表示從高次到低次的多項式系數。
例子:
x = (0: 0.1: 2.5)'。
y = erf(x)。
p = polyfit(x,y,6)。
p =。
0.0084 -0.0983 0.4217 -0.7435 0.1471 1.1064 0.0004。
則y=0.0084x^6-0.0983x^5+0.4217x^4-0.7435x^3+0.1471x^2+1.1064x+0.0004。
⑦ 請問matlab用什麼函數來擬合曲線方程,向量數據以給出,只求方法
1、先用plot3()函數,繪出其曲線。
x=[。。。]
y=[。。。]
z=[。。。]
plot3(x,y,z)
2、用你熟悉的曲線方程去比對,確定擬合曲線函數。
3、用 nlinfit()函數,求出擬合系數。
如:
b=[ b10 b20 b30];
func=inline('X(:,1).^2+X(:,2).^2+a(1)*X(:,1)+a(2)*X(:,2)+a(3)','a','X');
[a,r,J] = nlinfit(X,y,func,b);
⑧ excel表格擬合函數怎麼用
用wps表格來擬合的步驟:1、分兩列輸入你的數據,比如在A列輸入x,B列輸入y;2、選中兩列數據點,點擊「插入」-「圖表」鈕,出現「圖表類型」對話框;3、在「圖表類型」中選擇「散點圖」,按「完成」鈕;4、在圖表中,選中這些點,用滑鼠右鍵菜單中選擇「添加趨勢線」;5、在出現的類型對話框的「類型」中,選擇「多項式」,在右側的數據框中調整多項式階數,然後點「確定」鈕,就會出現你希望的曲線函數和圖
⑨ 如何用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)