matlab非線性擬合匯總課件_第1頁
matlab非線性擬合匯總課件_第2頁
matlab非線性擬合匯總課件_第3頁
matlab非線性擬合匯總課件_第4頁
matlab非線性擬合匯總課件_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

非線性曲線擬合回歸的操作步驟:(1)根據(jù)圖形(實(shí)際點(diǎn)),選配一條恰當(dāng)?shù)暮瘮?shù)形式(類型)---需要數(shù)學(xué)理論與基礎(chǔ)和經(jīng)驗(yàn)。(并寫出該函數(shù)表達(dá)式的一般形式,含待定系數(shù))(2)選用某條回歸命令求出所有的待定系數(shù)所以可以說,回歸就是求待定系數(shù)的過程(需確定函數(shù)的形式)非線性曲線擬合回歸的操作步驟:(1)根據(jù)圖形(實(shí)際點(diǎn)),選配非線性曲線擬合配曲線的一般方法是:(一)先對兩個(gè)變量x和y作n次試驗(yàn)觀察得(xi,yi),i=1,2,…,n畫出散點(diǎn)圖。(二)根據(jù)散點(diǎn)圖確定須配曲線的類型。通常選擇的六類曲線如下:(1)雙曲線

1/y=a+b/x(2)冪函數(shù)曲線y=axb,其中x>0,a>0(3)指數(shù)曲線y=aebx其中參數(shù)a>0.(4)倒指數(shù)曲線y=aeb/x

其中a>0,(5)對數(shù)曲線y=a+blogx,x>0(6)S型曲線

y=1/(a+be-x)(三)然后由n對試驗(yàn)數(shù)據(jù)確定每一類曲線的未知參數(shù)a和b。非線性曲線擬合配曲線的一般方法是:(一)先對兩個(gè)變量x和y非線性曲線擬合一、一元多次擬合:

polyfit(x,y,n)二、多元非線性回歸

regress、

nlinfit、

lsqcurvefit、

fminsearchlsqnonlin、求解線性方程組’/’格式為:p=polyfit(x,y,n)其中x和y為原始的樣本點(diǎn)構(gòu)成的向量n為選定的多項(xiàng)式階次p為多項(xiàng)式系數(shù)按降冪排列得出的行向量

Y=polyval(p,x)

求polyfit所得的回歸多項(xiàng)式在x處的預(yù)測值Y

非線性曲線擬合一、一元多次擬合:polyfit(x,y,n非線性曲線擬合‘\’命令已知某函數(shù)的線性組合為:g(x)=c1f1(x)+c2f2(x)+c3f3(x)+…+cnfn(x)其中f1(x),f2(x),…,fn(x)為已知函數(shù),c1,c2,…,cn為待定系數(shù)。假設(shè)已經(jīng)測出(x1,y1),(x2,y2),..,(xm,ym)則可以建立如下線性方程。其中該方程的最小二乘解為

c=A\y非線性曲線擬合‘\’命令已知某函數(shù)的線性組合為:g(x)=c非線性曲線擬合xi00.20.40.70.90.920.991.21.41.481.5yi2.882.261.971.932.092.112.22.542.963.163.21例:假設(shè)測出一組(xi,yi),已知函數(shù)原型為y(x)=c1+c2e-3x+c3cos(-2x)e-4x+c4x2用已知數(shù)據(jù)求出待定系數(shù)ci的值。

程序運(yùn)行過程:>>x=[00.20.40.70.90.920.991.21.41.481.5]';>>y=[2.882.261.971.932.092.112.22.542.963.163.21]';>>A=[ones(size(x)),exp(-3*x),cos(-2*x).*(-4*x),x.^2];>>c=A\y;>>c1=c'c1=1.26861.6356-0.02890.9268非線性曲線擬合xi00.20.40.70.90.920.99非線性曲線擬合使用格式:

b=或[b,bint,r,rint,stats]=regress(y,x)或regress(y,x,alpha)

---命令中是先y后x,---須構(gòu)造好矩陣x(x中的每列與目標(biāo)函數(shù)的一項(xiàng)對應(yīng))---并且x要在最前面額外添加全1列/對應(yīng)于常數(shù)項(xiàng)---y必須是列向量---結(jié)果是從常數(shù)項(xiàng)開始---與polyfit的不同。)b為回歸系數(shù)

的估計(jì)值(第一個(gè)為常數(shù)項(xiàng)).bint為回歸系數(shù)的區(qū)間估計(jì)r:殘差rint:

殘差的置信區(qū)間stats:用于檢驗(yàn)回歸模型的統(tǒng)計(jì)量,有四個(gè)數(shù)值:相關(guān)系數(shù)r2、F值、與F對應(yīng)的概率p和殘差的方差(前兩個(gè)越大越好,后兩個(gè)越小越好)alpha:

顯著性水平(缺省時(shí)為0.05,即置信水平為95%)其中:顯著性(Significance)首次由Fisher在

假設(shè)性實(shí)驗(yàn)中提出.假設(shè)檢驗(yàn)中有兩種錯(cuò)誤:拒真和納偽.顯著性檢驗(yàn)僅考慮發(fā)生拒真錯(cuò)誤的概率,也就是考慮原假設(shè)的Significance的程度,把拒真的概率控制在提前所給定的閾值alpha之下,來考慮檢驗(yàn)原假設(shè)是否正確非線性曲線擬合使用格式:---命令中是先y后x,b為回歸系非線性曲線擬合1)相關(guān)系數(shù)r2越接近1,說明回歸方程越顯著;(r2越大越接近1越好)2)F越大,說明回歸方程越顯著;(F越大越好)與F對應(yīng)的概率p越小越好,一定要P<a時(shí)拒絕H0而接受H1,即回歸模型成立。3)(殘差)標(biāo)準(zhǔn)差(RMSE)越小越好注:例題同前例>>x=[00.20.40.70.90.920.991.21.41.481.5]';>>y=[2.882.261.971.932.092.112.22.542.963.163.21]';>>A=[ones(size(x)),exp(-3*x),cos(-2*x).*(-4*x),x.^2];>>[b,brint,r,rint,stats]=regress(y,A);程序非線性曲線擬合1)相關(guān)系數(shù)r2越接近1,說明回歸方程越顯著;非線性曲線擬合運(yùn)行結(jié)果b=1.26861.6356-0.02890.9268brint=1.05341.48381.40821.8631-0.11820.06050.58771.2659r=-0.02420.03540.0283-0.0068-0.0156-0.0183-0.0154-0.00570.00270.01020.0094rint=-0.0329-0.01560.00010.0707-0.01500.0716-0.05130.0378-0.06700.0357-0.06920.0326-0.06700.0362-0.04610.0347-0.04600.0513-0.03590.0562-0.03150.0503stats=1.0e+03*0.00101.47740.00000.0000非線性曲線擬合運(yùn)行結(jié)果b=brint=r=rint=非線性曲線擬合使用格式:

beta=nlinfit(x,y,‘程序名’,beta0)[beta,r,J]=nlinfit(X,y,fun,beta0)X給定的自變量數(shù)據(jù),Y給定的因變量數(shù)據(jù),fun要擬合的函數(shù)模型(句柄函數(shù)或者內(nèi)聯(lián)函數(shù)形式),

beta0函數(shù)模型中待定系數(shù)估計(jì)初值(即程序的初始實(shí)參)beta返回?cái)M合后的待定系數(shù)其中beta為估計(jì)出的回歸系數(shù);

r為殘差;

J為Jacobian矩陣

可以擬合成任意函數(shù),最通用的,萬能的命令.非線性曲線擬合使用格式:

bet非線性曲線擬合結(jié)果要看殘差的大小和是否有警告信息,如有警告則換一個(gè)b0初始向量再重新計(jì)算例題同前例假設(shè)測出一組(xi,yi),已知函數(shù)原型為y(x)=c1+c2e-3x+c3cos(-2x)e-4x+c4x2用已知數(shù)據(jù)求出待定系數(shù)ci的值。>>x=[00.20.40.70.90.920.991.21.41.481.5]';y=[2.882.261.971.932.092.112.22.542.963.163.21]';myfunc=inline('beta(1)+beta(2)*exp(-3*x)+beta(3)*cos(-2*x).*exp(-4*x)+beta(4)*x.^2','beta','x');>>beta0=[0.2,0.2,0.2,0.2]';>>beta=nlinfit(x,y,myfunc,beta0)beta=1.21862.3652-0.70400.8716非線性曲線擬合結(jié)果要看殘差的大小和是否有警告信息,如有警告則非線性曲線擬合functionyy=myfun(beta,x)yy=beta(1)+beta(2)*exp(-3*x)+beta(3)*cos(-2*x).*exp(-4*x)+beta(4)*x.^2

end法二、>>x=[00.20.40.70.90.920.991.21.41.481.5]';>>y=[2.882.261.971.932.092.112.22.542.963.163.21]';>>beta0=[1,1,1,1]';>>beta=nlinfit(x,y,@myfun,beta0)beta=1.21862.3652-0.70400.8716非線性曲線擬合functionyy=myfun(bet非線性曲線擬合lsqcurvefit和lsqnonlin為兩個(gè)求非線性最小二乘擬合的函數(shù)兩個(gè)命令都要先建立M-文件fun.m,在其中定義函數(shù)f(x),但兩者定義f(x)的方式是不同的1.lsqcurvefit已知數(shù)據(jù)點(diǎn):xdata=(xdata1,xdata2,…,xdatan),

ydata=(ydata1,ydata2,…,ydatan)lsqcurvefit用以求含參量x(向量)的向量值函數(shù)F(x,xdata)=(F(x,xdata1),…,F(xiàn)(x,xdatan))T中的參變量x(向量),使得

非線性曲線擬合lsqcurvefit和lsqnonlin為兩非線性曲線擬合輸入格式為:x=lsqcurvefit(‘fun’,x0,xdata,ydata,options)fun是一個(gè)事先建立的定義函數(shù)F(x,xdata)

的M-文件,自變量為x和xdata迭代初值已知數(shù)據(jù)點(diǎn)選項(xiàng)見無約束優(yōu)化2.lsqnonlinlsqnonlin用以求含參量x(向量)的向量值函數(shù)

f(x)=(f1(x),f2(x),…,fn(x))T

中的參量x,使得

最小。

其中fi(x)=f(x,xdatai,ydatai)=F(x,xdatai)-ydatai下面是擬合的option設(shè)置(1)Display:結(jié)果顯示方式。off不顯示,iter顯示每次迭代的信息,final為最終結(jié)果,notify只有當(dāng)求解不收斂的時(shí)候才顯示結(jié)果(2)MaxFunEvals:允許函數(shù)計(jì)算的最大次數(shù),取值為正整數(shù)(3)MaxIter:允許迭代的最大次數(shù),正整數(shù)(4)TolFun:函數(shù)值(計(jì)算結(jié)果)精度,正整數(shù)(5)TolX:自變量的精度,正整數(shù)。使用方法如下option=optimset('MaxFunEvals',2^12,'MaxIter',2^14,'TolX',1e-8,'TolFun',1e-8);非線性曲線擬合輸入格式為:x=lsqcurvefit(非線性曲線擬合x=lsqnonlin(‘fun’,x0,options)fun是一個(gè)事先建立的定義函數(shù)f(x)的M-文件,自變量為x迭代初值選項(xiàng)見無約束優(yōu)化例2用下面一組數(shù)據(jù)擬合中的參數(shù)a,b,k該問題即解最優(yōu)化問題:非線性曲線擬合x=lsqnonlin(‘fun’,x0,非線性曲線擬合1)編寫M-文件curvefun1.m

functionf=curvefun1(x,tdata)f=x(1)+x(2)*exp(-0.02*x(3)*tdata)%其中x(1)=a;x(2)=b;x(3)=k;end2)輸入命令tdata=100:100:1000;cdata=1e-03*[4.54,4.99,5.35,5.65,5.90,6.10,6.26,6.39,6.50,6.59];x0=[0.2,0.05,0.05];

x=lsqcurvefit('curvefun1',x0,tdata,cdata)f=curvefun1(x,tdata)3)運(yùn)算結(jié)果為:f=0.00430.00510.00560.00590.00610.00620.00620.00630.00630.0063x=0.0063-0.00340.2542非線性曲線擬合1)編寫M-文件curvefun1.m2)輸非線性曲線擬合解法2

用命令lsqnonlin

f(x)=F(x,tdata,ctada)=x=(a,b,k)1)編寫M-文件curvefun2.m

functionf=curvefun2(x)tdata=100:100:1000;cdata=1e-03*[4.54,4.99,5.35,5.65,5.90,6.10,6.26,6.39,6.50,6.59];f=x(1)+x(2)*exp(-0.02*x(3)*tdata)-cdata

end2)輸入命令:

x0=[0.2,0.05,0.05];x=lsqnonlin('curvefun2',x0)f=curvefun2(x)非線性曲線擬合解法2用命令lsqnonlin1)非線性曲線擬合3)運(yùn)算結(jié)果為

f=1.0e-003*(0.2322-0.1243-0.2495-0.2413-0.1668-0.07240.02410.11590.20300.2792x=0.0063-0.00340.25424)結(jié)論:即擬合得a=0.0063b=-0.0034k=0.2542可以看出,兩個(gè)命令的計(jì)算結(jié)果是相同的.非線性曲線擬合3)運(yùn)算結(jié)果為4)結(jié)論:即擬合得a=0.006非線性曲線擬合比較以上幾種非線性擬合函數(shù)適用的條件和注意事項(xiàng):1)Regress函數(shù)和‘\’命令:1)首先要確定要擬合的函數(shù)形式,然后確定待定的系數(shù)從常數(shù)項(xiàng)開始排列,須構(gòu)造矩陣(每列對應(yīng)于函數(shù)中的一項(xiàng),剔除待定系數(shù))2)適用于多元(可通過變形而適用于任意函數(shù))。y為列向量;x為矩陣,第一列為全1列(即對應(yīng)于常數(shù)項(xiàng)),其余每一列對應(yīng)于一個(gè)變量(或一個(gè)含變量的項(xiàng)),即x要配成目標(biāo)函數(shù)的形式(常數(shù)項(xiàng)在最前)3)regress只能用于函數(shù)中的每一項(xiàng)只能有一個(gè)待定系數(shù)的情況,不能用于aebx等的情況,且必須有常數(shù)項(xiàng)的情況(且每項(xiàng)只有一個(gè)待定系數(shù),即項(xiàng)數(shù)與待定系數(shù)數(shù)目相同)非線性曲線擬合比較以上幾種非線性擬合函數(shù)適用的條件和注意事項(xiàng)非線性曲線擬合2)nlinfit、

lsqcurvefit、

lsqnonlin函數(shù)1)x,y順序,x不需要任何加工,直接用原始數(shù)據(jù)。(也不需要全1列)---所編的程序一定是兩個(gè)形參(待定系數(shù)/向量,自變量/矩陣:每一列為一個(gè)自變量)2)結(jié)果要看殘差的大小和是否有警告信息,如有警告則換一個(gè)b0初始向量再重新計(jì)算3)多元任意函數(shù),(自己任意設(shè)計(jì)函數(shù),再求待定系數(shù))4)存在的問題:不同的beta0,則會產(chǎn)生不同的結(jié)果,如何給待定系數(shù)的初值以及如何分析結(jié)果的好壞因?yàn)閿M合本來就是近似的,可能有多個(gè)結(jié)果。在利用MATLAB進(jìn)行非線性擬合時(shí)的初值,最好根據(jù)參數(shù)的物理意義進(jìn)行確定,可能的話可根據(jù)已有的經(jīng)驗(yàn)值對參數(shù)進(jìn)行賦值1)盡可能將模型線性化,如進(jìn)行取變量的倒數(shù)、對數(shù)等數(shù)學(xué)變換,關(guān)系式的微分-積分線性化變換,分段線性化。根據(jù)專業(yè)理論簡化模型(如忽略小量)等,將非線性擬合問題轉(zhuǎn)化為線性擬合問題.

非線性曲線擬合2)nlinfit、lsqcurvefit、請趙老師、大家批評指教!請趙老師、大家批評指教!非線性曲線擬合回歸的操作步驟:(1)根據(jù)圖形(實(shí)際點(diǎn)),選配一條恰當(dāng)?shù)暮瘮?shù)形式(類型)---需要數(shù)學(xué)理論與基礎(chǔ)和經(jīng)驗(yàn)。(并寫出該函數(shù)表達(dá)式的一般形式,含待定系數(shù))(2)選用某條回歸命令求出所有的待定系數(shù)所以可以說,回歸就是求待定系數(shù)的過程(需確定函數(shù)的形式)非線性曲線擬合回歸的操作步驟:(1)根據(jù)圖形(實(shí)際點(diǎn)),選配非線性曲線擬合配曲線的一般方法是:(一)先對兩個(gè)變量x和y作n次試驗(yàn)觀察得(xi,yi),i=1,2,…,n畫出散點(diǎn)圖。(二)根據(jù)散點(diǎn)圖確定須配曲線的類型。通常選擇的六類曲線如下:(1)雙曲線

1/y=a+b/x(2)冪函數(shù)曲線y=axb,其中x>0,a>0(3)指數(shù)曲線y=aebx其中參數(shù)a>0.(4)倒指數(shù)曲線y=aeb/x

其中a>0,(5)對數(shù)曲線y=a+blogx,x>0(6)S型曲線

y=1/(a+be-x)(三)然后由n對試驗(yàn)數(shù)據(jù)確定每一類曲線的未知參數(shù)a和b。非線性曲線擬合配曲線的一般方法是:(一)先對兩個(gè)變量x和y非線性曲線擬合一、一元多次擬合:

polyfit(x,y,n)二、多元非線性回歸

regress、

nlinfit、

lsqcurvefit、

fminsearchlsqnonlin、求解線性方程組’/’格式為:p=polyfit(x,y,n)其中x和y為原始的樣本點(diǎn)構(gòu)成的向量n為選定的多項(xiàng)式階次p為多項(xiàng)式系數(shù)按降冪排列得出的行向量

Y=polyval(p,x)

求polyfit所得的回歸多項(xiàng)式在x處的預(yù)測值Y

非線性曲線擬合一、一元多次擬合:polyfit(x,y,n非線性曲線擬合‘\’命令已知某函數(shù)的線性組合為:g(x)=c1f1(x)+c2f2(x)+c3f3(x)+…+cnfn(x)其中f1(x),f2(x),…,fn(x)為已知函數(shù),c1,c2,…,cn為待定系數(shù)。假設(shè)已經(jīng)測出(x1,y1),(x2,y2),..,(xm,ym)則可以建立如下線性方程。其中該方程的最小二乘解為

c=A\y非線性曲線擬合‘\’命令已知某函數(shù)的線性組合為:g(x)=c非線性曲線擬合xi00.20.40.70.90.920.991.21.41.481.5yi2.882.261.971.932.092.112.22.542.963.163.21例:假設(shè)測出一組(xi,yi),已知函數(shù)原型為y(x)=c1+c2e-3x+c3cos(-2x)e-4x+c4x2用已知數(shù)據(jù)求出待定系數(shù)ci的值。

程序運(yùn)行過程:>>x=[00.20.40.70.90.920.991.21.41.481.5]';>>y=[2.882.261.971.932.092.112.22.542.963.163.21]';>>A=[ones(size(x)),exp(-3*x),cos(-2*x).*(-4*x),x.^2];>>c=A\y;>>c1=c'c1=1.26861.6356-0.02890.9268非線性曲線擬合xi00.20.40.70.90.920.99非線性曲線擬合使用格式:

b=或[b,bint,r,rint,stats]=regress(y,x)或regress(y,x,alpha)

---命令中是先y后x,---須構(gòu)造好矩陣x(x中的每列與目標(biāo)函數(shù)的一項(xiàng)對應(yīng))---并且x要在最前面額外添加全1列/對應(yīng)于常數(shù)項(xiàng)---y必須是列向量---結(jié)果是從常數(shù)項(xiàng)開始---與polyfit的不同。)b為回歸系數(shù)

的估計(jì)值(第一個(gè)為常數(shù)項(xiàng)).bint為回歸系數(shù)的區(qū)間估計(jì)r:殘差rint:

殘差的置信區(qū)間stats:用于檢驗(yàn)回歸模型的統(tǒng)計(jì)量,有四個(gè)數(shù)值:相關(guān)系數(shù)r2、F值、與F對應(yīng)的概率p和殘差的方差(前兩個(gè)越大越好,后兩個(gè)越小越好)alpha:

顯著性水平(缺省時(shí)為0.05,即置信水平為95%)其中:顯著性(Significance)首次由Fisher在

假設(shè)性實(shí)驗(yàn)中提出.假設(shè)檢驗(yàn)中有兩種錯(cuò)誤:拒真和納偽.顯著性檢驗(yàn)僅考慮發(fā)生拒真錯(cuò)誤的概率,也就是考慮原假設(shè)的Significance的程度,把拒真的概率控制在提前所給定的閾值alpha之下,來考慮檢驗(yàn)原假設(shè)是否正確非線性曲線擬合使用格式:---命令中是先y后x,b為回歸系非線性曲線擬合1)相關(guān)系數(shù)r2越接近1,說明回歸方程越顯著;(r2越大越接近1越好)2)F越大,說明回歸方程越顯著;(F越大越好)與F對應(yīng)的概率p越小越好,一定要P<a時(shí)拒絕H0而接受H1,即回歸模型成立。3)(殘差)標(biāo)準(zhǔn)差(RMSE)越小越好注:例題同前例>>x=[00.20.40.70.90.920.991.21.41.481.5]';>>y=[2.882.261.971.932.092.112.22.542.963.163.21]';>>A=[ones(size(x)),exp(-3*x),cos(-2*x).*(-4*x),x.^2];>>[b,brint,r,rint,stats]=regress(y,A);程序非線性曲線擬合1)相關(guān)系數(shù)r2越接近1,說明回歸方程越顯著;非線性曲線擬合運(yùn)行結(jié)果b=1.26861.6356-0.02890.9268brint=1.05341.48381.40821.8631-0.11820.06050.58771.2659r=-0.02420.03540.0283-0.0068-0.0156-0.0183-0.0154-0.00570.00270.01020.0094rint=-0.0329-0.01560.00010.0707-0.01500.0716-0.05130.0378-0.06700.0357-0.06920.0326-0.06700.0362-0.04610.0347-0.04600.0513-0.03590.0562-0.03150.0503stats=1.0e+03*0.00101.47740.00000.0000非線性曲線擬合運(yùn)行結(jié)果b=brint=r=rint=非線性曲線擬合使用格式:

beta=nlinfit(x,y,‘程序名’,beta0)[beta,r,J]=nlinfit(X,y,fun,beta0)X給定的自變量數(shù)據(jù),Y給定的因變量數(shù)據(jù),fun要擬合的函數(shù)模型(句柄函數(shù)或者內(nèi)聯(lián)函數(shù)形式),

beta0函數(shù)模型中待定系數(shù)估計(jì)初值(即程序的初始實(shí)參)beta返回?cái)M合后的待定系數(shù)其中beta為估計(jì)出的回歸系數(shù);

r為殘差;

J為Jacobian矩陣

可以擬合成任意函數(shù),最通用的,萬能的命令.非線性曲線擬合使用格式:

bet非線性曲線擬合結(jié)果要看殘差的大小和是否有警告信息,如有警告則換一個(gè)b0初始向量再重新計(jì)算例題同前例假設(shè)測出一組(xi,yi),已知函數(shù)原型為y(x)=c1+c2e-3x+c3cos(-2x)e-4x+c4x2用已知數(shù)據(jù)求出待定系數(shù)ci的值。>>x=[00.20.40.70.90.920.991.21.41.481.5]';y=[2.882.261.971.932.092.112.22.542.963.163.21]';myfunc=inline('beta(1)+beta(2)*exp(-3*x)+beta(3)*cos(-2*x).*exp(-4*x)+beta(4)*x.^2','beta','x');>>beta0=[0.2,0.2,0.2,0.2]';>>beta=nlinfit(x,y,myfunc,beta0)beta=1.21862.3652-0.70400.8716非線性曲線擬合結(jié)果要看殘差的大小和是否有警告信息,如有警告則非線性曲線擬合functionyy=myfun(beta,x)yy=beta(1)+beta(2)*exp(-3*x)+beta(3)*cos(-2*x).*exp(-4*x)+beta(4)*x.^2

end法二、>>x=[00.20.40.70.90.920.991.21.41.481.5]';>>y=[2.882.261.971.932.092.112.22.542.963.163.21]';>>beta0=[1,1,1,1]';>>beta=nlinfit(x,y,@myfun,beta0)beta=1.21862.3652-0.70400.8716非線性曲線擬合functionyy=myfun(bet非線性曲線擬合lsqcurvefit和lsqnonlin為兩個(gè)求非線性最小二乘擬合的函數(shù)兩個(gè)命令都要先建立M-文件fun.m,在其中定義函數(shù)f(x),但兩者定義f(x)的方式是不同的1.lsqcurvefit已知數(shù)據(jù)點(diǎn):xdata=(xdata1,xdata2,…,xdatan),

ydata=(ydata1,ydata2,…,ydatan)lsqcurvefit用以求含參量x(向量)的向量值函數(shù)F(x,xdata)=(F(x,xdata1),…,F(xiàn)(x,xdatan))T中的參變量x(向量),使得

非線性曲線擬合lsqcurvefit和lsqnonlin為兩非線性曲線擬合輸入格式為:x=lsqcurvefit(‘fun’,x0,xdata,ydata,options)fun是一個(gè)事先建立的定義函數(shù)F(x,xdata)

的M-文件,自變量為x和xdata迭代初值已知數(shù)據(jù)點(diǎn)選項(xiàng)見無約束優(yōu)化2.lsqnonlinlsqnonlin用以求含參量x(向量)的向量值函數(shù)

f(x)=(f1(x),f2(x),…,fn(x))T

中的參量x,使得

最小。

其中fi(x)=f(x,xdatai,ydatai)=F(x,xdatai)-ydatai下面是擬合的option設(shè)置(1)Display:結(jié)果顯示方式。off不顯示,iter顯示每次迭代的信息,final為最終結(jié)果,notify只有當(dāng)求解不收斂的時(shí)候才顯示結(jié)果(2)MaxFunEvals:允許函數(shù)計(jì)算的最大次數(shù),取值為正整數(shù)(3)MaxIter:允許迭代的最大次數(shù),正整數(shù)(4)TolFun:函數(shù)值(計(jì)算結(jié)果)精度,正整數(shù)(5)TolX:自變量的精度,正整數(shù)。使用方法如下option=optimset('MaxFunEvals',2^12,'MaxIter',2^14,'TolX',1e-8,'TolFun',1e-8);非線性曲線擬合輸入格式為:x=lsqcurvefit(非線性曲線擬合x=lsqnonlin(‘fun’,x0,options)fun是一個(gè)事先建立的定義函數(shù)f(x)的M-文件,自變量為x迭代初值選項(xiàng)見無約束優(yōu)化例2用下面一組數(shù)據(jù)擬合中的參數(shù)a,b,k該問題即解最優(yōu)化問題:非線性曲線擬合x=lsqnonlin(‘fun’,x0,非線性曲線擬合1)編寫M-文件curvefun1.m

functionf=curvefun1(x,tdata)f=x(1)+x(2)*exp(-0.02*x(3)*tdata)%其中x(1)=a;x(2)=b;x(3)=k;end2)輸入命令tdata=100:100:1000;cdata=1e-03*[4.54,4.99,5.35,5.65,5.90,6.10,6.26,6.39,6.50,6.59];x0=[0.2,0.05,0.05];

x=lsqcurvefit('curvefun1',x0,tdata,cdata)f=curvefun1(x,tdata)3)運(yùn)算結(jié)果為:f=0.00430.00510.00560.00590.00610.00620.00620.00630.00630.0063x=0.0063-0.00340.2542非線性曲線擬合1)編寫M

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論