多峰曲線擬合_第1頁(yè)
多峰曲線擬合_第2頁(yè)
多峰曲線擬合_第3頁(yè)
多峰曲線擬合_第4頁(yè)
多峰曲線擬合_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

#/13step5:若k=n,令x=x,轉(zhuǎn)step2.0kstep6:d=—g+dstep6:kkk—1step7:若果dTg>0,令x=x,轉(zhuǎn)step2;否則轉(zhuǎn)step3。kk0k在第三步中,要求米用一維搜索獲取最佳步長(zhǎng)九,本文米用0.618法來(lái)作精k確線性搜索。2.1.20.618法0.618法是一種用于求單峰函數(shù)的極小值的分割法。其基本思想是通過(guò)取試探點(diǎn)和進(jìn)行函數(shù)值的比較,使包含極小點(diǎn)的搜索區(qū)間不斷縮短,當(dāng)區(qū)間長(zhǎng)度縮短到一定程度時(shí),區(qū)間上各點(diǎn)的函數(shù)值均接近極小值,從而各點(diǎn)可以看作為極小點(diǎn)的近似。這種方法僅需計(jì)算函數(shù)值,不涉及導(dǎo)數(shù),又稱(chēng)直接法。下面介紹0.618法的技術(shù)細(xì)節(jié)。設(shè)包含極小點(diǎn)的初始搜索區(qū)間為[a,b],設(shè)^(a)=f(x+ad)在[a,b]上kk是凸函數(shù)。0.618法的基本思想是在搜索區(qū)間[a,b]上選取兩個(gè)對(duì)稱(chēng)點(diǎn)a,a,12其中a是區(qū)間[a,b]上的黃金分割點(diǎn),a是a的對(duì)稱(chēng)點(diǎn),且a<a,比較這兩21212點(diǎn)處的函數(shù)值申(a)和申(a)的大小,若申(a)>申(a),則說(shuō)明極小值在區(qū)間1212[a,b]內(nèi),故取新區(qū)間為[a,b],若申(a)<^(a),則說(shuō)明極小值在區(qū)間[a,a]11122內(nèi),故取新區(qū)間為[a,a]。新區(qū)間的長(zhǎng)度為原區(qū)間長(zhǎng)度的0.618倍。新區(qū)間包含2原區(qū)間中兩個(gè)對(duì)稱(chēng)點(diǎn)中的一點(diǎn),我們只要再選一個(gè)對(duì)稱(chēng)點(diǎn),并利用這兩個(gè)新對(duì)稱(chēng)點(diǎn)處的函數(shù)值繼續(xù)比較,重復(fù)這個(gè)過(guò)程,最后即可確定極小點(diǎn)a*。下面給出具體算法步驟。stepl:選取初始數(shù)據(jù)。確定初始搜索區(qū)間[a,b]和精度要求8>0。計(jì)算最11初兩個(gè)試探點(diǎn)九,卩,11九=a+0.328(b—a)1111卩二a+0.618(b—a)1111計(jì)算甲(九)和申(卩),令k=1。11step2:比較目標(biāo)函數(shù)值。若申(九)>申(卩),轉(zhuǎn)step3,否則轉(zhuǎn)step4。kkstep3:若b-X<5,則停止計(jì)算,輸出卩;否則,令TOC\o"1-5"\h\zkkka=X,b=b,X=卩,k+1kk+1kk+1k申(X)=申(卩),卩=a+0.618(b-a)k+1kk+1k+1k+1k+1計(jì)算甲(卩),轉(zhuǎn)step2。k+1step4:若卩-a<5,則停止計(jì)算,輸出X,否則,令:kkka=a,b=卩,卩=Xk+1kk+1kk+1k申(卩)=申(X),X=a+0.382(b—a)k+1kk+1k+1k+1k+1計(jì)算申(X),轉(zhuǎn)step2。k+12.1.3計(jì)算效果本文采用C#作為編程語(yǔ)言來(lái)實(shí)現(xiàn)上述算法。當(dāng)進(jìn)行多次調(diào)試之后,發(fā)現(xiàn)共軛梯度法并不能解決問(wèn)題。現(xiàn)總結(jié)原因如下。1、迭代初始值難以確定。共軛梯度法在開(kāi)始之前要求設(shè)定初始迭代值。該方法對(duì)初始值的設(shè)定非常敏感,如果初始值設(shè)置的不夠好,這種方法的收斂將會(huì)變得非常慢,甚至不能收斂。由于每次進(jìn)行電泳的DNA片段有可能不同,峰值信息業(yè)會(huì)不斷變化,因此沒(méi)有一個(gè)好的方法來(lái)為算法提供初始值。2、在一維線性搜索方法中,首先要求給出搜索區(qū)間。這個(gè)搜索區(qū)間也是由于問(wèn)題的實(shí)際背景決定的。在本文中,不能確定峰值信息的取值區(qū)間,因此一維搜索只能采用純數(shù)學(xué)意義上的搜索區(qū)間,這樣搜索負(fù)擔(dān)將會(huì)變得非常沉重,迭代計(jì)算變得非常耗時(shí)。

經(jīng)過(guò)再三權(quán)衡,筆者決定放棄這種方法??赡芄P者對(duì)共軛梯度法的認(rèn)識(shí)還不夠,也可能這種方法不適合本問(wèn)題的求解。因此筆者決定采用《數(shù)值分析》中的多項(xiàng)式擬合算法來(lái)獲取峰值信息。2.2分段多項(xiàng)式擬合2.2.1多項(xiàng)式擬合的不足多項(xiàng)式擬合算法簡(jiǎn)單,易于實(shí)現(xiàn),是工程應(yīng)用中常用的擬合方法。多項(xiàng)式擬合對(duì)于單峰、變化平緩的曲線擬合效果較好,但對(duì)于多峰曲線擬合來(lái)說(shuō),則差強(qiáng)人意。圖4是對(duì)電泳數(shù)據(jù)作40階多項(xiàng)式擬合的結(jié)果。從圖4可以看到,多項(xiàng)式函數(shù)不能表現(xiàn)曲線的突變趨勢(shì),因而便不能直接用來(lái)擬合多峰曲線。標(biāo)題I一廿生茁1I一廿生茁1050010001500200025003M0timififEra圖4多項(xiàng)式擬合電泳曲線為了改變這種現(xiàn)狀,本文采用分段多項(xiàng)式擬合技術(shù),實(shí)踐證明,將數(shù)據(jù)人為分段之后,對(duì)每一段單獨(dú)進(jìn)行擬合,效果很好[3]。分段的目的就是要把曲線平坦的部分和有峰的部分區(qū)分開(kāi),這樣才會(huì)得到好的擬合效果。下面介紹針對(duì)于本問(wèn)題的一種分段方式。2.2.2分段標(biāo)準(zhǔn)對(duì)于整段曲線來(lái)說(shuō),有峰的地方所占的比例不大,因此整段曲線的平均值將接近于背景暗電流值。在經(jīng)過(guò)試驗(yàn)以后,發(fā)現(xiàn)曲線的平均值如圖5所示。在圖5

中,紅線表示了整段曲線的平均值??梢钥吹?,這條紅線并不能“經(jīng)過(guò)”所有的峰,這樣就不能夠獲取分組依據(jù)。datal標(biāo)題44—I111datal標(biāo)題44—I111111111111111111111111111105001000150020002M03D0<]time圖5曲線平均值示意圖考慮到去掉一些暗電流值,再將余下的數(shù)據(jù)作平均,則可能使得新的平均值“經(jīng)過(guò)”所有的峰。本文采用這樣一種策略:以第一次求得整條曲線的平均值作為標(biāo)準(zhǔn),將每個(gè)數(shù)據(jù)與之比較,去掉所有小于平均值的數(shù)據(jù)點(diǎn),對(duì)剩下的數(shù)據(jù)點(diǎn)再做一次平均,將新獲得的平均值作為分組依據(jù)。圖6顯示了新平均值的位置??梢钥吹剑碌钠骄到?jīng)過(guò)所有峰,這樣就可以根據(jù)新的平均值與原曲線的“交點(diǎn)”來(lái)劃分曲線了。標(biāo)題22-J"1"11J■1"1■J1■■1■11!■!■11■1!]20-圖6新平均值示意圖對(duì)每一段曲線作40階多項(xiàng)式插值,最后得到的插值效果如圖7所示。由于

多項(xiàng)式插值的算法已經(jīng)非常成熟,在此就不作詳細(xì)介紹[4]。需要指明的是,本文

在實(shí)現(xiàn)多項(xiàng)式插值算法的時(shí)候,求解法方程組所采用的算法是Gauss按比例列主

元消去法。圖8、圖9為圖7采取局部放大之后的圖像,來(lái)顯示多項(xiàng)式插值的細(xì)

節(jié)。標(biāo)題2222AHI-n—1圖7分段多項(xiàng)式擬合效果曷丁由1-4001500曷丁由1-4001500圖8擬合細(xì)節(jié)dotal10.610.4145015001550time/rns圖9擬合細(xì)節(jié)2.2.3峰位、峰面積計(jì)算在分段多項(xiàng)式插值完成后,每一個(gè)峰都可以用一個(gè)多項(xiàng)式函數(shù)來(lái)表達(dá),那么對(duì)峰位的求解就轉(zhuǎn)化為求這個(gè)多項(xiàng)式函數(shù)在閉區(qū)間內(nèi)的最小值,對(duì)峰面積的求解就轉(zhuǎn)化為對(duì)此多項(xiàng)式函數(shù)在閉區(qū)間內(nèi)求定積分,這在算法的實(shí)現(xiàn)上都非常簡(jiǎn)單,使得程序設(shè)計(jì)變得非常輕松。圖10下方文本框中顯示了峰位、峰面積計(jì)算結(jié)果。標(biāo)盞I加富伽~~I050010001500200025003000Eime/ms圖10峰位、峰面積計(jì)算結(jié)果3軟件介紹本軟件采用微軟的WPF程序設(shè)計(jì)框架設(shè)計(jì)而成。這使得界面設(shè)計(jì)變得靈活簡(jiǎn)單,界面元素也變得更加漂亮。圖像顯示控件采用一款開(kāi)源圖表控件ZedGraph這款控件編程簡(jiǎn)單,性能優(yōu)良。整個(gè)軟件界面分成三個(gè)部分。最上面是圖像顯示部分,用來(lái)顯示曲線。左下角為操作部分,有兩個(gè)按鈕,第一個(gè)用來(lái)載入數(shù)據(jù),數(shù)據(jù)文件格式為.txt格式,第二個(gè)按鈕用來(lái)執(zhí)行擬合操作。右下角有一個(gè)文本框,用來(lái)顯示計(jì)算結(jié)果。具體構(gòu)造可以參看圖10。4結(jié)語(yǔ)本文為了獲取曲線的峰值信息,嘗試了多種不同的方式進(jìn)行求解。實(shí)踐證明,復(fù)雜的算法并不一定能夠產(chǎn)生好的效果。就像本文之前介紹的共軛梯度法,用這個(gè)方法可以解決大型非線性最優(yōu)化問(wèn)題,當(dāng)然也應(yīng)該能夠解決高斯擬合參數(shù)求解問(wèn)題,但是在實(shí)際操作中由于此種方法對(duì)于初始迭代值的要求過(guò)高,沒(méi)有能夠成功實(shí)現(xiàn),并且該算法計(jì)算復(fù)雜,耗時(shí)很長(zhǎng),對(duì)于一個(gè)擬合問(wèn)題來(lái)說(shuō),的確有大材小用之嫌。所以,本文隨后采用了熟悉的方法:多項(xiàng)式擬合。只是在擬合之前對(duì)數(shù)據(jù)作了分段處理。這樣一來(lái),可以很完美的解決問(wèn)題,而算法設(shè)計(jì)又非常簡(jiǎn)單,且計(jì)算非常輕松。所以,在考慮問(wèn)題解決方式的時(shí)候,對(duì)于同樣能解決問(wèn)題的方法,應(yīng)當(dāng)選擇那些簡(jiǎn)單而易于實(shí)現(xiàn)的方法,這樣才能得到最快的完成效率。參

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論