Matlab線性回歸擬合_第1頁
Matlab線性回歸擬合_第2頁
Matlab線性回歸擬合_第3頁
Matlab線性回歸擬合_第4頁
Matlab線性回歸擬合_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、Matlab線性回歸(擬合)對于多元線性回歸模型:設(shè)變量的n組觀測值為記 ,則 的估計值為 (11.2)在Matlab中,用regress函數(shù)進行多元線性回歸分析,應(yīng)用方法如下:語法:b = regress(y, x) b, bint, r, rint, stats = regress(y, x) b, bint, r, rint, stats = regress(y, x, alpha) b = regress(y, x),得到的維列向量b即為(11.2)式給出的回歸系數(shù)的估計值 b, bint, r, rint, stats=regress(y, x) 給出回歸系數(shù)的估計值b,的95置信區(qū)

2、間(向量)bint,殘差r以及每個殘差的95置信區(qū)間(向量)rint;向量stats給出回歸的R2統(tǒng)計量和F以及臨界概率p的值 如果的置信區(qū)間(bint的第行)不包含0,則在顯著水平為時拒絕的假設(shè),認(rèn)為變量是顯著的 b, bint, r, rint, stats=regress(y, x, alpha) 給出了bint和rint的100(1-alpha)%的置信區(qū)間三次樣條插值函數(shù)的MATLAB程序matlab的spline x = 0:10; y = sin(x); %插值點xx = 0:.25:10; %繪圖點yy = spline(x,y,xx); plot(x,y,'o'

3、;,xx,yy)非線性擬合非線性擬合可以用以下命令(同樣適用于線形回歸分析):1.beta = nlinfit(X,y,fun,beta0) X給定的自變量數(shù)據(jù),Y給定的因變量數(shù)據(jù),fun要擬合的函數(shù)模型(句柄函數(shù)或 者內(nèi)聯(lián)函數(shù)形式), beta0函數(shù)模型中系數(shù)估計初值,beta返回擬合后的系數(shù) 2.x = lsqcurvefit(fun,x0,xdata,ydata) fun要擬合的目標(biāo)函數(shù),x0目標(biāo)函數(shù)中的系數(shù)估計初值,xdata自變量數(shù)據(jù),ydata函數(shù)值數(shù)據(jù) X擬合返回的系數(shù)(擬合結(jié)果) nlinfit格式: beta,r,J=nlinfit(x,y,model, beta0)Beta

4、 估計出的回歸系數(shù)r 殘差J Jacobian矩陣x,y 輸入數(shù)據(jù)x、y分別為n*m矩陣和n維列向量,對一元非線性回歸,x為n維列向量。model是事先用m-文件定義的非線性函數(shù)beta0 回歸系數(shù)的初值例1已知數(shù)據(jù): x1=0.5,0.4,0.3,0.2,0.1;  x2=0.3,0.5,0.2,0.4,0.6; x3=1.8,1.4,1.0,1.4,1.8; y=0.785,0.703,0.583,0.571,0.126;且y與x1,x2 , x3關(guān)系為多元非線性關(guān)系(只與x2,x3相關(guān))為:  y=a+b*x2+c*x3+d*(x2.2)+e*(x3.2)求

5、非線性回歸系數(shù)a , b , c , d , e 。(1)對回歸模型建立M文件model.m如下: function yy=myfun(beta,x)x1=x(:,1);x2=x(:,2);x3=x(:,3);yy=beta(1)+beta(2)*x2+beta(3)*x3+beta(4)*(x2.2)+beta(5)*(x3.2);(2)主程序如下:x=0.5,0.4,0.3,0.2,0.1;0.3,0.5,0.2,0.4,0.6;1.8,1.4,1.0,1.4,1.8'y=0.785,0.703,0.583,0.571,0.126'beta0=1,1, 1,1, 1'

6、;beta,r,j = nlinfit(x,y,myfun,beta0)例題2:混凝土的抗壓強度隨養(yǎng)護時間的延長而增加,現(xiàn)將一批混凝土作成12個試塊,記錄了養(yǎng)護日期(日)及抗壓強度y(kg/cm2)的數(shù)據(jù): 養(yǎng)護時間:x =2 3 4 5 7 9 12 14 17 21 28 56 抗壓強度:y =35+r 42+r 47+r 53+r 59+r 65+r 68+r 73+r 76+r 82+r 86+r 99+r 建立非線性回歸模型,對得到的模型和系數(shù)進行檢驗。 注明:此題中的+r代表加上一個-0.5,0.5之間的隨機數(shù) 模型為:y=a+k1*exp(m*x)+k2*exp(-m*x); M

7、atlab程序:x=2 3 4 5 7 9 12 14 17 21 28 56; r=rand(1,12)-0.5; y1=35 42 47 53 59 65 68 73 76 82 86 99; y=y1+r ;myfunc=inline('beta(1)+beta(2)*exp(beta(4)*x)+beta(3)*exp(-beta(4)*x)','beta','x'); beta=nlinfit(x,y,myfunc,0.5 0.5 0.5 0.5); a=beta(1),k1=beta(2),k2=beta(3),m=beta(4) %

8、test the model xx=min(x):max(x); yy=a+k1*exp(m*xx)+k2*exp(-m*xx); plot(x,y,'o',xx,yy,'r') 結(jié)果: a = 87.5244 k1 = 0.0269 k2 = -63.4591 m = 0.1083 圖形:lsqnonlin非線性最小二乘(非線性數(shù)據(jù)擬合)的標(biāo)準(zhǔn)形式為其中:L為常數(shù)在MATLAB5.x中,用函數(shù)leastsq解決這類問題,在6.0版中使用函數(shù)lsqnonlin。設(shè)則目標(biāo)函數(shù)可表達(dá)為其中:x為向量,F(xiàn)(x)為函數(shù)向量。函數(shù) lsqnonlin格式 x = lsqn

9、onlin(fun,x0) %x0為初始解向量;fun為,i=1,2,m,fun返回向量值F,而不是平方和值,平方和隱含在算法中,fun的定義與前面相同。x = lsqnonlin(fun,x0,lb,ub) %lb、ub定義x的下界和上界:。x = lsqnonlin(fun,x0,lb,ub,options) %options為指定優(yōu)化參數(shù),若x沒有界,則lb= ,ub= 。x,resnorm = lsqnonlin() % resnorm=sum(fun(x).2),即解x處目標(biāo)函數(shù)值。x,resnorm,residual = lsqnonlin() % residual=fun(x),

10、即解x處fun的值。x,resnorm,residual,exitflag = lsqnonlin() %exitflag為終止迭代條件。x,resnorm,residual,exitflag,output = lsqnonlin() %output輸出優(yōu)化信息。x,resnorm,residual,exitflag,output,lambda = lsqnonlin() %lambda為Lagrage乘子。x,resnorm,residual,exitflag,output,lambda,jacobian =lsqnonlin() %fun在解x處的Jacobian矩陣。例5-17 求下面非

11、線性最小二乘問題初始解向量為x0=0.3, 0.4。解:先建立函數(shù)文件,并保存為myfun.m,由于lsqnonlin中的fun為向量形式而不是平方和形式,因此,myfun函數(shù)應(yīng)由建立: k=1,2,10function F = myfun(x)k = 1:10;F = 2 + 2*k-exp(k*x(1)-exp(k*x(2);然后調(diào)用優(yōu)化程序:x0 = 0.3 0.4;x,resnorm = lsqnonlin(myfun,x0) 結(jié)果為:Optimization terminated successfully:Norm of the current step is less than O

12、PTIONS.TolXx = 0.2578 0.2578resnorm = %求目標(biāo)函數(shù)值lsqcurvefit非線性曲線擬合是已知輸入向量xdata和輸出向量ydata,并且知道輸入與輸出的函數(shù)關(guān)系為ydata=F(x, xdata),但不知道系數(shù)向量x。今進行曲線擬合,求x使得下式成立:在MATLAB5.x中,使用函數(shù)curvefit解決這類問題。函數(shù) lsqcurvefit格式 x = lsqcurvefit(fun,x0,xdata,ydata)x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub)x = lsqcurvefit(fun,x0,xdata,y

13、data,lb,ub,options)x,resnorm = lsqcurvefit()x,resnorm,residual = lsqcurvefit()x,resnorm,residual,exitflag = lsqcurvefit()x,resnorm,residual,exitflag,output = lsqcurvefit()x,resnorm,residual,exitflag,output,lambda = lsqcurvefit()x,resnorm,residual,exitflag,output,lambda,jacobian =lsqcurvefit()參數(shù)說明:x0

14、為初始解向量;xdata,ydata為滿足關(guān)系ydata=F(x, xdata)的數(shù)據(jù);lb、ub為解向量的下界和上界,若沒有指定界,則lb= ,ub= ;options為指定的優(yōu)化參數(shù);fun為擬合函數(shù),其定義方式為:x = lsqcurvefit(myfun,x0,xdata,ydata),其中myfun已定義為 function F = myfun(x,xdata)F = % 計算x處擬合函數(shù)值fun的用法與前面相同;resnorm=sum (fun(x,xdata)-ydata).2),即在x處殘差的平方和;residual=fun(x,xdata)-ydata,即在x處的殘差;exi

15、tflag為終止迭代的條件;output為輸出的優(yōu)化信息;lambda為解x處的Lagrange乘子;jacobian為解x處擬合函數(shù)fun的jacobian矩陣。例5-16 求解如下最小二乘非線性擬合問題已知輸入向量xdata和輸出向量ydata,且長度都是n,擬合函數(shù)為即目標(biāo)函數(shù)為其中:初始解向量為x0=0.3, 0.4, 0.1。解:先建立擬合函數(shù)文件,并保存為myfun.mfunction F = myfun(x,xdata)F = x(1)*xdata.2 + x(2)*sin(xdata) + x(3)*xdata.3;然后給出數(shù)據(jù)xdata和ydata>>xdata = 3.6 7.7 9.3 4.1 8.6 2.8 1.3 7.9 10.0 5.4;>>ydata = 16.5 150.6 263.1 24.7 208.5 9.9 2.7 1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論