1. 緊急,在線等。matlab上的對數函數數據擬合。y=algx+b
%求擬合系數a,b,c
a= nlinfit(x,y,func,a0),
c=a(3),b=a(2),a=a(1),
當0<a<1, b>1時,y=logab<0;
當a>1, 0<b<1時,y=logab<0。
兩邊對x求導:y'/y=ln a,y'=yln a=a^xln a,
特殊地,當a=e時,y'=(a^x)'=(e^x)'=e^xln e=e^x。
eº=1,
[a,r] = nlinfit(x,y,func,a0) %a擬合系數,r差值,
當r比較小(接近於零),說明擬合結果是合理的。
(1)對數擬合是什麼數學模型擴展閱讀:
fix(x):無論正負,捨去小數至相鄰整數
floor(x):下取整,即捨去正小數至相鄰整數
ceil(x):上取整,即加入正小數至相鄰整數
rat(x):將實數x化為多項分數展開
rats(x):將實數x化為分數表示
sign(x):符號函數(Signum function)。
當x<0時,sign(x)=-1
當x=0時,sign(x)=0;
當x>0時,sign(x)=1。
如果ax=N(a>0,且a≠1),那麼數x叫做以a為底N的對數,記作x=logaN,讀作以a為底N的對數,其中a叫做對數的底數,N叫做真數。
一般地,函數y=logaX(a>0,且a≠1)叫做對數函數,也就是說以冪(真數)為自變數,指數為因變數,底數為常量的函數,叫對數函數。
其中x是自變數,函數的定義域是(0,+∞),即x>0。它實際上就是指數函數的反函數,可表示為x=ay。因此指數函數里對於a的規定,同樣適用於對數函數。
2. 什麼叫數據擬合
插值和擬合都是函數逼近或者數值逼近的重要組成部分
他們的共同點都是通過已知一些離散點集M上的約束,求取一個定義
在連續集合S(M包含於S)的未知連續函數,從而達到獲取整體規律的
目的,即通過"窺幾斑"來達到"知全豹"。
簡單的講,所謂擬合是指已知某函數的若干離散函數值{f1,f2,…,fn},通
過調整該函數中若干待定系數f(λ1, λ2,…,λ3), 使得該函數與已知點集的
差別(最小二乘意義)最小。如果待定函數是線性,就叫線性擬合或者
線性回歸(主要在統計中),否則叫作非線性擬合或者非線性回歸。表
達式也可以是分段函數,這種情況下叫作樣條擬合。
而插值是指已知某函數的在若干離散點上的函數值或者導數信息,通
過求解該函數中待定形式的插值函數以及待定系數,使得該函數在給
定離散點上滿足約束。插值函數又叫作基函數,如果該基函數定義在
整個定義域上,叫作全域基,否則叫作分域基。如果約束條件中只有
函數值的約束,叫作Lagrange插值,否則叫作Hermite插值。
從幾何意義上將,擬合是給定了空間中的一些點,找到一個已知形式
未知參數的連續曲面來最大限度地逼近這些點;而插值是找到一個(
或幾個分片光滑的)連續曲面來穿過這些點。
具體插值擬合的計算參考下面回復:
1)Matlab中如何作線性擬合/線性回歸/多元線性回歸?
:#FangQ([email protected]),2002/6/21, BigGreen/MathTools #
即用y=a*x+b來擬合一組數據{{x1,y1},{x2,y2}…{xn,yn}}
matlab中使用polyfit
x=data(:,1);
y=data(:,2);
p=polyfit(x,y,1);
p(1)為斜率a,p(2)為截距b
多元線性回歸即用y=a1*x1+a2*x2+..+am*xm來擬合數據點{x1i,x2i,…xmi,yi}
(i=1~n)
|x11,x21,…xm1|
A=|x12,x22,…xm2|
|…………… |
|x1n,x2n,…xmn|
Y={y1,y2,y3,…,yn}'
則系數{a1,a2,…,am}'=pinv(A)*Y
在matlab中使用
coeff=A\Y
則可以得到最小二乘意義上的擬合系數
matlab默認只提供了多項式擬合的函數polyfit,對於其他稍微簡單
一點的擬合,如標準的指數、對數、高階多項式擬合,都有解析公式,參見:
http://mathworld.wolfram.com/LeastSquaresFitting.html
對於更加復雜的非線性函數,建議使用Mathematica或者DataFit
Mathematica中提供了Fit[],以及
<< Statistics`NonlinearFit`
NonlinearFit[],NonlinearRegress[]
可以擬合任意復雜的表達式。
DataFit可以自定義擬合模型,適用於復雜系統的擬合。
3. 做一次擬合,二次擬合,對數擬合。要程序和結果。謝謝!
打開matlab,新建M文件,粘貼以下程序代碼並運行:
X=[2005,2006,2007,2008,2009,2010];
Y=[75,54,33,40,36,54];
a1=polyfit(X,Y,1) %求一次擬合系數
a2=polyfit(X,Y,2) %求二次擬合系數
l=polyfit(log(X),Y,1) %求函數yl=l(1)*log(x)+l(2)中的待定系數l(1)、l(2),此處log為自然對數,可自行調整,比如說以10為底log10
x=[2000:0.01:2015];
y1=a1(1)*x+a1(2); %一次擬合所得函數
y2=a2(1)*x.^2+a2(2)*x+a2(3); %二次擬合系數所得函數
yl=l(1)*log(x)+l(2); %對數擬合所得函數
subplot(3,1,1);
plot(x,y1);gridon;gridminor;
subplot(3,1,2);
plot(x,y2);gridon;gridminor;
subplot(3,1,3);
plot(x,yl);gridon;gridminor;
%作出擬合曲線,注意此時一次擬合和對數擬合曲線幾乎重合,故分圖作出
運行結果:
a1=
1.0e+003*
-0.0043 8.7670
a2=
1.0e+007*
0.0000 -0.0019 1.8936
l=
1.0e+004*
-0.8723 6.6386
註:1.0e+003=10^3,其他類似
4. 擬合對數曲線疑問(急用,謝謝各位幫我解答一下)
首先數據個數不能少於待定參數個數,否則就不是擬合了。
數據點少的情況下,你的實驗誤差就會嚴重影響你的擬合質量,所以數據點不能太少。
理論上來說,給定的數據可以使任意行事的,就想你說的,可以就是對數的,也可以是現行的,擬合結果只是告訴你,在這些數據點下,我得到的這幾個待定參數能夠使方程和數據點之間的誤差最小,至於方程本省是不是如實反映了數據點的變化趨勢,那是你的工作,需要選擇合適的函數形式去擬合
5. 請教 擬合與回歸的區別(關系)
1、性質不同
形象地說,擬合就是把平面上一系列的點,用一條光滑的曲線連接起來。因為這條曲線有無數種可能,從而有各種擬合方法。
回歸,研究一組隨機變數(Y1,Y2,Yi)和另一組(X1,X2,Xk)變數之間關系的統計分析方法。通常Y1,Y2,Yi是因變數,X1、X2,Xk是自變數。
2、方法不同
回歸分析的主要內容有以下:從一組數據出發,確定某些變數之間的定量關系式;即建立數學模型並估計未知參數。通常用最小二乘法。檢驗這些關系式的可信任程度。
在多個自變數影響一個因變數的關系中,判斷自變數的影響是否顯著,並將影響顯著的選入模型中,剔除不顯著的變數。通常用逐步回歸、向前回歸和向後回歸等方法。利用所求的關系式對某一過程進行預測或控制。
常用的擬合方法有如最小二乘曲線擬合法等,在MATLAB中也可以用polyfit來擬合多項式。擬合以及插值還有逼近是數值分析的三大基礎工具,擬合為已知點列,從整體上靠近它們;插值為已知點列並且完全經過點列;逼近為已知曲線,或者點列,通過逼近使得構造的函數無限靠近它們。
3、應用不同
相關分析研究的是現象之間是否相關、相關的方向和密切程度,一般不區別自變數或因變數。而回歸分析則要分析現象之間相關的具體形式,確定其因果關系,並用數學模型來表現其具體關系。
比如說,從相關分析中我們可以得知「質量」和「用戶滿意度」變數密切相關,但是這兩個變數之間到底是哪個變數受哪個變數的影響,影響程度如何,則需要通過回歸分析方法來確定。
實際工作中,變數間未必都有線性關系,如服葯後血葯濃度與時間的關系;疾病療效與療程長短的關系;毒物劑量與致死率的關系等常呈曲線關系。曲線擬合(curve fitting)是指選擇適當的曲線類型來擬合觀測數據,並用擬合的曲線方程分析兩變數間的關系。
聯系:擬合優度R²衡量的為回歸方程整體的擬合度,是表達因變數與所有自變數之間的總體關系。R²等於回歸平方和在總平方和中所佔的比率,即回歸方程所能解釋的因變數變異性的百分比。
實際值與平均值的總誤差中,回歸誤差與剩餘誤差是此消彼長的關系。因而回歸誤差從正面測定線性模型的擬合優度,剩餘誤差則從反面來判定線性模型的擬合優度。統計上定義剩餘誤差除以自由度n-2所得之商的平方根為估計標准誤。
為回歸模型擬合優度的判斷和評價指標,估計標准誤顯然不如判定系數R²。R²為無量綱系數,有確定的取值范圍(0—1),便於對不同資料回歸模型擬合優度進行比較;而估計標准誤差是有計量單位的,又沒有確定的取值范圍,不便於對不同資料回歸模型擬合優度進行比較。
6. 非典對經濟的影響建模為什麼用對數擬合
就是可能都是和他的影響因素是有關系的,所以才會形成這樣的線