版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)值分析課程設(shè)計(jì)報(bào)告中英文設(shè)計(jì)簽名課 程 設(shè) 計(jì) 報(bào) 告 課程名稱: 數(shù)值分析 題 目: 用三次樣條插值設(shè)計(jì)中英文簽名 院 系: 專 業(yè): 班 級(jí): 學(xué) 號(hào): 姓 名: 時(shí) 間: 目 錄1、理論分析(含問題分析,理論依據(jù),求解對(duì)策等);2、方法詳解(含推導(dǎo)、求解、分析、程序框圖等);3、應(yīng)用實(shí)例(含程序清單、計(jì)算結(jié)果輸出、圖形演示等);4、效果分析(含對(duì)不同方法間的圖形、數(shù)值等多方位的對(duì)比分析,對(duì)所得結(jié)果的合理解釋等)一、 理論分析:1. 問題分析 (1)設(shè)計(jì)自己的英文簽名,給出一組數(shù)據(jù)點(diǎn),用三次樣條曲線畫出所設(shè)計(jì)的英文簽名的字體。(2)設(shè)計(jì)你的草體漢字簽名,給出一組數(shù)據(jù)點(diǎn),分別用三次樣條曲線
2、畫出所設(shè)計(jì)的中文簽字的字體. (3)如果設(shè)計(jì)出的三次樣條不滿意,怎么改進(jìn)算法?2.2 分析思想 要設(shè)計(jì)出英(中)文簽名,首先、要獲得與自己英(中)文簽名相似的一組數(shù)據(jù)點(diǎn),最好這組數(shù)據(jù)點(diǎn)的獲取可因名字的改變而改變且簡(jiǎn)單易行,以適應(yīng)不同的簽名;其次、要選用合適的算法,才能設(shè)計(jì)出較美觀的簽名,問題要求用三次樣條插值做,若效果不滿意,改進(jìn)時(shí)可選擇其他算法;最后、選擇合適數(shù)學(xué)工具和備用改進(jìn)算法,合適的數(shù)學(xué)工具能大大簡(jiǎn)化我們的工作量,獲得滿意結(jié)果。備用的改進(jìn)算法的提出可以引導(dǎo)我們?cè)谙旅娴恼n程設(shè)計(jì)中注意基本算法的不足,多思考,勤探究。2. 理論依據(jù) 2.1 交互式界面 交互式界面即窗口、光標(biāo)、按鍵、菜單、文
3、字說明等對(duì)象(objects)構(gòu)成的一個(gè)用戶界面。用戶通過一定的方法(如鼠標(biāo)或鍵盤)選擇、激活這些圖形對(duì)象,使計(jì)算機(jī)產(chǎn)生某種動(dòng)作或變化,比如實(shí)現(xiàn)獲取數(shù)據(jù)、計(jì)算、繪圖等。要使數(shù)據(jù)點(diǎn)可因名字的改變而改變且簡(jiǎn)單易行,以適應(yīng)不同的簽名,可采用交互式界面進(jìn)行操作。如我們可以用鼠標(biāo)點(diǎn)擊獲取名字大致的數(shù)據(jù)點(diǎn),顯然,不同名字可以實(shí)現(xiàn)能得到不同數(shù)據(jù)點(diǎn)。在matlab中,可以用ginput()函數(shù)輕松實(shí)現(xiàn)這一功能。 2.2 三次樣條插值算法 在區(qū)間a,b上給定有n+1個(gè)節(jié)點(diǎn)的分割:a=xxx=b。若在a,b上定義的函數(shù)s(x)滿足:(1)在子區(qū)間x,x上s(x)是最高為三次的多項(xiàng)式,i=0,1, n-1;(2)在
4、a,b上s(x)是二階連續(xù)可微函數(shù),即s(x)ca.b。則稱s(x)為a,b上關(guān)于分割的三次樣條函數(shù)。s(x)對(duì)應(yīng)的曲線稱為三次樣條曲線。若s(x)還滿足(3)s(x)=y=f,i=0,1,n則稱s(x)為a,b上關(guān)于分割的三次樣條插值函數(shù),f(x)稱為被插函數(shù)。三次樣條插值函數(shù)對(duì)應(yīng)的曲線稱為三次樣條插值曲線。我們知道分段低次插值的優(yōu)點(diǎn)是具有收斂性與穩(wěn)定性,缺點(diǎn)是光滑性較差,不能滿足實(shí)際需要.例如高速飛機(jī)的機(jī)翼形線、船體放樣形值線、精密機(jī)械加工等都要求有二階光滑度,即二階導(dǎo)數(shù)連續(xù),通常三次樣條(spline)函數(shù)即可滿足要求。所以對(duì)于簽名,三次樣條插值算法完全能夠在給定的一組數(shù)據(jù)點(diǎn)下實(shí)現(xiàn)簽名效
5、果。3. 求解對(duì)策 對(duì)策 問題 matlab7.0選用合適的數(shù)學(xué)工具雙三次插值算法選用改進(jìn)算法三次樣條插值算法:可產(chǎn)生二階光滑度,即二階導(dǎo)數(shù)連續(xù)簽名圖樣選用合適的算法采用交互式界面進(jìn)行操作,用鼠標(biāo)點(diǎn)擊獲取名字大致的數(shù)據(jù)點(diǎn)獲得與簽名相似的一組數(shù)據(jù)點(diǎn),最好可因名字的改變而改變實(shí)現(xiàn)英(中)文簽名二、 算法設(shè)計(jì)(推導(dǎo)、求解):2.1、三次樣條插值函數(shù)的定義樣條(spline)是繪圖員用來描繪光滑曲線的均勻有彈性的細(xì)長(zhǎng)木條(或有機(jī)玻璃條)。用壓鐵將木條加以固定使它通過各型值點(diǎn),最后沿著這根木條畫出光滑曲線,作用與曲線板和云形規(guī)相似。我們稱這條光滑的曲線為樣條曲線,樣條曲線對(duì)應(yīng)的函數(shù)稱為樣條函數(shù)。它是連續(xù)
6、的光滑的,具有連續(xù)變化的曲率,實(shí)際上就是一條三次樣條曲線。定義:在區(qū)間a,b上給定有n+1個(gè)節(jié)點(diǎn)的分割:a=xxx=b。若在a,b上定義的函數(shù)s(x)滿足:(1)在子區(qū)間x,x上s(x)是最高為三次的多項(xiàng)式,i=0,1, n-1;(2)在a,b上s(x)是二階連續(xù)可微函數(shù),即s(x)ca.b。則稱s(x)為a,b上關(guān)于分割的三次樣條函數(shù)。s(x)對(duì)應(yīng)的曲線稱為三次樣條曲線。若s(x)還滿足(3)s(x)=y=f,i=0,1,n則稱s(x)為a,b上關(guān)于分割的三次樣條插值函數(shù),f(x)稱為被插函數(shù)。三次樣條插值函數(shù)對(duì)應(yīng)的曲線稱為三次樣條插值曲線。同時(shí)我們還可以通過計(jì)算三次樣條函數(shù)s(x)在節(jié)點(diǎn)上
7、的一階導(dǎo)數(shù)m=s(x)或二階導(dǎo)數(shù)m=s(x),i=0,1,n的值來求過型值點(diǎn)。(x,y),i=0,1,n的三次樣條函數(shù)。對(duì)應(yīng)地可以導(dǎo)出稱之為m關(guān)系式和關(guān)系式,它們分別是關(guān)于m和m的代數(shù)方程組。2.2三次樣條插值算法推導(dǎo)、求解記h=x,i=0,1,n-1。根據(jù)三次樣條函數(shù)的定義,當(dāng)x x,x時(shí),它是一個(gè)三次多項(xiàng)式,所以s(x)是線性函數(shù),可以表示為: s(x)= m+ m從x到x對(duì)其積分兩次,得s(x)= - m+ m+as (x)= m+ m+ a(x-x)+b 這里a,b是積分常數(shù),可由插值條件,即s(x)= y,s(x)=y,來確定。 解得: 則s(x),s(x)在xx上可表示為:s(x)
8、= m+ m+ (x-x)+y-ms(x)=-m+m+-由上式易見,若m(i=0,1,n)確定后,則三次樣條插值函數(shù)s(x)就完全確定了。在上,由4.5.9得由此可得: 由于s(x)在x點(diǎn)處應(yīng)是連續(xù)函數(shù),即s(x)=s(x) i=1,2,n-1,得 令 得 , i=1,2,n-1這是一個(gè)含有n+1個(gè)未知量m,m,m的n-1個(gè)方程組成的線性方程組,我們稱它為m關(guān)系式。記m,根據(jù)hermite插值,在,上由,,可得: 它在的右極限和的左極限分別為: 得 由 ,i=1,2,,n-1,得 兩邊乘以 ,并記 得 , = 1,2,n-1這是一個(gè)含有n+1個(gè)未知量,的n-1個(gè)方程組成的線性方程組,我們稱它為
9、m關(guān)系式。注:無論是m關(guān)系式還是m關(guān)系式,都應(yīng)該補(bǔ)充2個(gè)條件才能把它的解唯一地確定下來,這就是我們所要討論的端點(diǎn)約束條件。樣條插值函數(shù)的端點(diǎn)條件有多種形式,主要根據(jù)實(shí)際問題來確定。從物理觀點(diǎn)看,它們對(duì)應(yīng)在曲線兩端給出的約束類型。常用的端點(diǎn)約束條件有:自由端點(diǎn)條件,夾持端點(diǎn)條件,周期端點(diǎn)條件。下面我們主要來討論夾持端點(diǎn)條件來求解結(jié)果。在端點(diǎn)給定的一階導(dǎo)數(shù)值,即 , 這里,為已知數(shù),將它們代入關(guān)系式得 =這是關(guān)于n-1個(gè)未知量,由n-1個(gè)方程組成的線性方程組,根據(jù)其系數(shù)矩陣嚴(yán)格對(duì)角占優(yōu),方程組存在唯一解。關(guān)于m關(guān)系式,只要注意到 記 , ,和m關(guān)系式聯(lián)立得: = (20)這是一個(gè)關(guān)于n+1未知量,
10、,由n+1個(gè)方程組成的線性方程組,其系數(shù)矩陣為三角嚴(yán)格對(duì)角占優(yōu)矩陣,非奇異,上20式存在唯一解。 下面我們來分析一下樣條函數(shù)的收斂性問題:定理設(shè)在閉區(qū)間a,b上給定了一個(gè)分割序列 :記 中子區(qū)間的最大最小長(zhǎng)度分別為和即 = 設(shè)在區(qū)間上有4階連續(xù)導(dǎo)數(shù),且 對(duì)給定的分割序列成立 設(shè)為上的的樣條函數(shù),且,i=0,1,n, 則對(duì)一切成立 | , i= 0,1,2,3其中,和無關(guān),且,該定理表明,只要分割是比較均勻的,則樣條插值函數(shù)序列及其一至三階導(dǎo)函數(shù)均收斂于被插函數(shù)及其對(duì)應(yīng)階導(dǎo)函數(shù)。誤差估計(jì)問題: 設(shè),s是在上關(guān)于剖分的滿足i型邊界條件的三次樣條插值函數(shù),則有估計(jì)式 其中,。證明:設(shè)為上關(guān)于節(jié)點(diǎn)的分
11、段三次ermite插值多項(xiàng)式, j=0,1,n。在子區(qū)間(j=0,1,n-1)上,其中,為三次hermite插值的基函數(shù)。對(duì)于,利用三次樣條插值函數(shù)表達(dá)式得 = 利用三次hermite插值多項(xiàng)式的余項(xiàng)估計(jì)有 , 。 利用引理,當(dāng)有 由區(qū)間的任意性,即可以得出 由此說明了三次樣條插值函數(shù)s,當(dāng)時(shí),一致收斂于被插值函數(shù)三、 程序設(shè)計(jì)(分析、程序框圖):本實(shí)驗(yàn)中所有程序均是在matlab7.0環(huán)境下實(shí)現(xiàn)。3.1 ginput()程序分析 本實(shí)驗(yàn)利用兩種方法獲取簽名數(shù)據(jù)點(diǎn)(以下簡(jiǎn)稱點(diǎn)),由于matlab7.0中自帶的交互式函數(shù)ginput()在鼠標(biāo)單擊取點(diǎn)時(shí)無法顯示該點(diǎn)位置,為了能夠清晰地知道當(dāng)前和已
12、經(jīng)取過的點(diǎn)的位置,我才用了兩種取點(diǎn)方法:方法1:對(duì)matlab7.0中自帶的交互式函數(shù)ginput()進(jìn)行了修正 通過edit ginput,打開ginput()函數(shù),在位置136138行: pt = get(gca, currentpoint); line(parent,gca,xdata,pt(1,1),ydata,pt(1,2),marker,p,color,r);(我插入的) how_many = how_many - 1; 插入以上語(yǔ)句。另存為:myginput.m,即可實(shí)現(xiàn)交互式函數(shù)取點(diǎn),并留下痕跡。 方法2:不改ginput()函數(shù),利用while(1)單個(gè)取點(diǎn) while(1)
13、 取一個(gè)點(diǎn),x,y=ginput(1) 用line函數(shù)將點(diǎn)改成紅色星星 將該點(diǎn)橫縱坐標(biāo)分別送入x、y向量集內(nèi) if x,y無值,按了回車鍵 break endend 3.2三次樣條插值程序分析 3.2.1 符號(hào)對(duì)應(yīng)含義程序中符號(hào)算法分析中符號(hào)實(shí)際含義xxx插值點(diǎn)橫坐標(biāo) yyy插值點(diǎn)縱坐標(biāo) mn給定插值數(shù)據(jù)的維數(shù)h區(qū)間長(zhǎng)度lambda后一區(qū)間長(zhǎng)度比前兩個(gè)區(qū)間長(zhǎng)度之和mu前一區(qū)間長(zhǎng)度比后兩個(gè)區(qū)間長(zhǎng)度之和d的二階均差sx三次樣條插值所得函數(shù)3.2.2 初始化數(shù)據(jù):m取給定插值數(shù)據(jù)的維數(shù):m=length(x)h初始化為1*n的零矩陣:h=zeros(1,n),h(1)=x(2)-x(1),這里n=m
14、-1lambda初始化為1*n的零矩陣:lambda=zeros(1,n) ,lambda(1)=1a初始化為m*m的零矩陣:a=zeros(m,m),a(1,1)=2,a(1,2)=lambda(1)mu初始化為1*n的零矩陣:mu=zeros(1,n), mu(1)=1d初始化為1*n的零矩陣:d=zeros(1,n),d(1)=3*(y(2)-y(1)3.2.3 求hk 、lambdak 、muk、dk算法:求hk:for k=1:nhk=x(k+1)-x(k);h(k+1)=hk;end求lambdak、muk、dk:for k=1:n-1lambdak=h(k)/(h(k)+h(k+
15、1); lambda(k+1)=lambdak;muk=1-lambda(k+1);mu(k)=muk;dk=3*(mu(k).*(y(k+1)-y(k)./h(k)+(lambda(k+1).*(y(k+2)-y(k+1)./h(k+1);d(k+1)=dfor k=2:m3.2.4 求sx算法sx=y(k-1)*(h(k-1)-2*x(k-1)+2*x)*(x-x(k)2)/(h(k-1)3)+y(k)*(h(k-1)+2*x(k)-2*x)*(x-x(k-1)2)/(h(k-1)3)+dy(k-1)*(x-x(k-1)*(x-x(k)2)/(h(k-1)2)+dy(k)*(x-x(k)*
16、(x-x(k-1)2)/(h(k-1)2)fprintf(%6.4fx,x(k-1);fprintf(%6.4fn,x(k);end3.3 圖像(簽名)輸出程序分析 利用subplot(m,n,t)z函數(shù)在一個(gè)窗口上顯示多個(gè)圖樣。用plot()畫出由spline()插值后的點(diǎn)所得簽名圖像。 用x,y,button=ginput(1)來實(shí)現(xiàn)中英文簽名判斷: if button等于1 輸出標(biāo)題:英文簽名 elseif button等于3 輸出標(biāo)題:中文簽名 else 輸出空白標(biāo)題 end3.4 程序框圖 開始將gca設(shè)置成:set(gca,xlimmode,manual,ylimmode,manu
17、al) 取 點(diǎn)方法1:調(diào)用函數(shù)mygiput()方法2:或調(diào)用函數(shù)ginput()獲取插值點(diǎn)的橫縱坐標(biāo)x,y初始化數(shù)據(jù): m、h、lambda、a、mu、d等 插 值調(diào)用三次樣條插值函數(shù)spline()調(diào)用雙三次插值函數(shù)cubic() 輸出簽 名圖像調(diào)用窗口圖像控制函數(shù)subplot()調(diào)用繪圖輸出函數(shù)plot() 判斷簽 名類型buttonbutton=3中文簽名button=1英文簽名=結(jié)束輸出簽名圖像和類型四、 簽名驗(yàn)證(應(yīng)用實(shí)例):4.1 程序清單 見附錄4.2 圖形演示 1.程序運(yùn)行,如下圖出現(xiàn)交互式界面,等待簽名者簽名。2.在窗口內(nèi)點(diǎn)擊簽名字樣,進(jìn)行取點(diǎn)簽名,如下圖為:wei的英文
18、輪廓,紅色星星為鼠標(biāo)點(diǎn)擊留下的痕跡。4. 按回車鍵結(jié)束鼠標(biāo)取點(diǎn),程序輸出簽名圖像,如下圖(注意:此時(shí)并未輸出簽名類型,界面有十字光標(biāo),等待簽名者判斷操作):5. 單擊鼠標(biāo)左鍵,右下角出現(xiàn)簽名類型和圖例,如下圖為:英文簽名。若為中文簽名單擊鼠標(biāo)右鍵即可。5.中文簽名步驟與英文類似,以下僅給出最后簽名結(jié)果: 4.3 計(jì)算結(jié)果輸出以下是對(duì)英文w進(jìn)行簽名得到的三次樣條函數(shù),由于wei取點(diǎn)較多,會(huì)輸出大量數(shù)據(jù),故僅對(duì)w進(jìn)行簽名能得到較簡(jiǎn)單的輸出:sx = 62464/3*(-193/448+2*x)*(x-235/896)2+56320/3*(249/448-2*x)*(x-207/896)2+6118
19、033249439999/4398046511104*(x-207/896)*(x-235/896)2-6540245714505983/2199023255552*(x-235/896)*(x-207/896)2 0.2310x0.2623 sx = 1014570924054025338880/14357685692506197*(-113/224+2*x)*(x-253/896)2+6511700658019471720448/100503799847543379*(131/224-2*x)*(x-235/896)2-53577692893233012736/74447259146328
20、49*(x-235/896)*(x-253/896)2-42397238503447396352/7444725914632849*(x-253/896)*(x-235/896)2 0.2623x0.2824 sx = 34594/3*(-237/448+2*x)*(x-285/896)2+28126/3*(43/64-2*x)*(x-253/896)2-31699595438673743/17592186044416*(x-253/896)*(x-285/896)2-326583779752527493/140737488355328*(x-285/896)*(x-253/896)2 0.2
21、824x0.3181 sx = 23634890844440363008/2077211471716767*(-135/224+2*x)*(x-45/128)2+45540399431970455552/4846826767339123*(165/224-2*x)*(x-285/896)2-6824934499318125568/2584974275914195*(x-285/896)*(x-45/128)2-1791493680497956608/2584974275914195*(x-45/128)*(x-285/896)2 0.3181x0.3516 sx = 7286463909115
22、27288832/11764505149049443*(-307/448+2*x)*(x-331/896)2+728646390911527288832/11764505149049443*(339/448-2*x)*(x-45/128)2-342903087282812007/140737488355328*(x-45/128)*(x-331/896)2+358054521960066379/281474976710656*(x-331/896)*(x-45/128)2 0.3516x0.3694 sx = 80896/7*(-317/448+2*x)*(x-359/896)2+306176
23、/21*(373/448-2*x)*(x-331/896)2+7307235142042171/17592186044416*(x-331/896)*(x-359/896)2+8991211591613103/1099511627776*(x-359/896)*(x-331/896)2 0.3694x0.4007 sx = 176498447297252989861888/119115614634127461*(-89/112+2*x)*(x-365/896)2+198929688090883804626944/119115614634127461*(23/28-2*x)*(x-359/896
24、)2+1178496085735912636416/6617534146340383*(x-359/896)*(x-365/896)2+1143740219012357160960/6617534146340383*(x-365/896)*(x-359/896)2 0.4007x0.4074 sx = 6216552752840118894592/183498707266227759*(-177/224+2*x)*(x-387/896)2+7544718326147206610944/183498707266227759*(199/224-2*x)*(x-365/896)2+357418818
25、44136161280/2780283443427697*(x-365/896)*(x-387/896)2+20118645543346483200/2780283443427697*(x-387/896)*(x-365/896)2 0.4074x0.4319 sx = 3772359163073603305472/68932647357711963*(-377/448+2*x)*(x-407/896)2+1429622665712490250240/22977549119237321*(417/448-2*x)*(x-387/896)2+20118645543346483200/229775
26、4911923729*(x-387/896)*(x-407/896)2-2775508141924100096/2297754911923729*(x-407/896)*(x-387/896)2 0.4319x0.4542 sx = 571849066284996100096/1985260243902075*(-401/448+2*x)*(x-419/896)2+7987440183916235849728/29778903658531125*(425/448-2*x)*(x-407/896)2-11102032567696400384/3308767073170137*(x-407/896
27、)*(x-419/896)2-28520465010548310016/1102922357723379*(x-419/896)*(x-407/896)2 0.4542x0.4676 sx = 3993720091958117924864/91749353633115129*(-51/56+2*x)*(x-63/128)2+1116028016459427872768/30583117877705043*(113/112-2*x)*(x-419/896)2-10695174378955616256/1390141721713861*(x-419/896)*(x-63/128)2-1128892
28、9969426923520/1390141721713861*(x-63/128)*(x-419/896)2 0.4676x0.4922 sx = 2232056032918855745536/61166235755409253*(-215/224+2*x)*(x-463/896)2+5109748108417545797632/183498707266227759*(237/224-2*x)*(x-63/128)2-22577859938853847040/2780283443427697*(x-63/128)*(x-463/896)2-19102396736613715968/278028
29、3443427697*(x-463/896)*(x-63/128)2 0.4922x0.5167 sx = 10219496216835091595264/141174061788594639*(-65/64+2*x)*(x-479/896)2+9112691572412518498304/141174061788594639*(487/448-2*x)*(x-463/896)2-76409586946454863872/5882252574524761*(x-463/896)*(x-479/896)2-18483686365463552000/5882252574524761*(x-479/
30、896)*(x-463/896)2 0.5167x0.5346 sx = 2803905099203851845632/5429771607253539*(-475/448+2*x)*(x-487/896)2+5165088340638674452480/10083861556328001*(491/448-2*x)*(x-479/896)2-4620921591365888000/367640785907793*(x-479/896)*(x-487/896)2+1508454554874475264/367640785907793*(x-487/896)*(x-479/896)2 0.534
31、6x0.5435 sx = 23058430092136939520/3455776494575901*(-235/224+2*x)*(x-521/896)2+152185638608103800832/18814783137135461*(269/224-2*x)*(x-487/896)2+1508454554874475264/6640511695459569*(x-487/896)*(x-521/896)2+12413145765656442880/6640511695459569*(x-521/896)*(x-487/896)2 0.5435x0.5815 sx = 182622766
32、3297245609984/23529010298098669*(-513/448+2*x)*(x-537/896)2+2047588592181760229376/23529010298098669*(545/448-2*x)*(x-521/896)2+3103286441414110720/367640785907793*(x-521/896)*(x-537/896)2+1463550859570462208/122546928635931*(x-537/896)*(x-521/896)2 0.5815x0.5993 sx = 4095177184363520458752/47058020
33、596198213*(-529/448+2*x)*(x-79/128)2+14130205960461516537856/141174061788594639*(561/448-2*x)*(x-537/896)2+70250441259382185984/5882252574524761*(x-537/896)*(x-79/128)2+65950649484600975360/5882252574524761*(x-79/128)*(x-537/896)2 0.5993x0.6172 sx = 7065102980230758268928/100503799847543379*(-17/14+
34、2*x)*(x-571/896)2+7766079255031721230336/100503799847543379*(145/112-2*x)*(x-79/128)2+65950649484600975360/7444725914632849*(x-79/128)*(x-571/896)2+55857837321506127872/7444725914632849*(x-571/896)*(x-79/128)2 0.6172x0.6373 sx = 7766079255031721230336/29778903658531125*(-565/448+2*x)*(x-583/896)2+27
35、85458355130142294016/9926301219510375*(589/448-2*x)*(x-571/896)2+55857837321506127872/3308767073170137*(x-571/896)*(x-583/896)2+70453716399031435264/3308767073170137*(x-583/896)*(x-571/896)2 0.6373x0.6507五、 效果分析如上:前兩圖分別為三次樣條插值和雙三次插值的結(jié)果,第三個(gè)為兩種插值法對(duì)比截圖; 如上:兩圖分別為漢字魏的稀疏取點(diǎn)和簽名結(jié)果截圖;5.1效果對(duì)比 整體觀察,可以發(fā)現(xiàn),三次樣條插值的
36、簽名比較圓潤(rùn),而雙三次插值的簽名比較硬朗。 在前三個(gè)圖中,從第三個(gè)圖可以看出:在下面的三個(gè)標(biāo)注的紅色圈處,雙三次插值效果要比三次樣條插值好,而且不難發(fā)現(xiàn),這三個(gè)地點(diǎn)都是字母與字母的連接處。雙三次插值能夠快速實(shí)現(xiàn)連接,而樣條插值在字母連接處處理較慢。在上面標(biāo)注的紅色圈處可以看出三次樣條插值光滑度明顯優(yōu)于雙三次插值。從后兩個(gè)漢字簽名圖可以觀察到:簽名點(diǎn)數(shù)比較稀疏的情況下,雙三次插值能夠出色完成簽名任務(wù),得到較理想效果,而雙三次樣條插值字跡比較草,亂,不如雙三次插值字跡工整。5.2結(jié)果解釋在理論分析中,我們已經(jīng)提到,三次樣條插值有二階光滑度,即二階導(dǎo)數(shù)連續(xù),這是它的優(yōu)點(diǎn)。當(dāng)某點(diǎn)與前面點(diǎn)產(chǎn)生較大偏差時(shí)
37、,如字母e的頂點(diǎn)與前面w上的點(diǎn)相比偏差過大,三次樣條插值算法會(huì)找出二階連續(xù)曲線去穿過這點(diǎn),所以導(dǎo)致它在簽名的 字母與字母的過度階段處理不夠直接。而雙三次插值不具有二階導(dǎo)數(shù)連續(xù)的性質(zhì),它對(duì)于上述偏差,視而不見,所以能夠快速實(shí)現(xiàn)字母之間的過度,這是它優(yōu)點(diǎn),但同時(shí)也是不足之處,它不能簽出較圓潤(rùn)的字體。所以,如果做單個(gè)字母的簽名,建議用三次樣條插值算法,做較多字母的簽名用雙三次插值好些。同時(shí)取點(diǎn)稀疏的簽名也建議用雙三次插值做。六、 附錄:程序如下:function out1,out2,out3 = myginput(arg1)%ginput graphical input from mouse.% x
38、,y = ginput(n) gets n points from the current axes and returns % the x- and y-coordinates in length n vectors x and y. the cursor% can be positioned using a mouse (or by using the arrow keys on some % systems). data points are entered by pressing a mouse button% or any key on the keyboard except car
39、riage return, which terminates% the input before n points are entered.% x,y = ginput gathers an unlimited number of points until the% return key is pressed.% % x,y,button = ginput(n) returns a third result, button, that % contains a vector of integers specifying which mouse button was% used (1,2,3 f
40、rom left) or ascii numbers if a key on the keyboard% was used.% copyright 1984-2004 the mathworks, inc.% $revision: 5.32.4.3 $ $date: 2004/04/10 23:33:41 $out1 = ; out2 = ; out3 = ; y = ;c = computer;if strcmp(c(1:2),pc) tp = get(0,terminalprotocol);else tp = micro;endif strcmp(tp,none) & strcmp(tp,
41、x) & strcmp(tp,micro), if nargout = 1, if nargin = 1, out1 = trmginput(arg1); else out1 = trmginput; end elseif nargout = 2 | nargout = 0, if nargin = 1, out1,out2 = trmginput(arg1); else out1,out2 = trmginput; end if nargout = 0 out1 = out1 out2 ; end elseif nargout = 3, if nargin = 1, out1,out2,ou
42、t3 = trmginput(arg1); else out1,out2,out3 = trmginput; end endelse fig = gcf; figure(gcf); if nargin = 0 how_many = -1; b = ; else how_many = arg1; b = ; if isstr(how_many) . | size(how_many,1) = 1 | size(how_many,2) = 1 . | (fix(how_many) = how_many) . | how_many 0 error(requires a positive integer
43、.) end if how_many = 0 ptr_fig = 0; while(ptr_fig = fig) ptr_fig = get(0,pointerwindow); end scrn_pt = get(0,pointerlocation); loc = get(fig,position); pt = scrn_pt(1) - loc(1), scrn_pt(2) - loc(2); out1 = pt(1); y = pt(2); elseif how_many 0 error(argument must be a positive integer.) end end % remo
44、ve figure button functions state = uisuspend(fig); pointer = get(gcf,pointer); set(gcf,pointer,fullcrosshair); fig_units = get(fig,units); char = 0; % we need to pump the event queue on unix % before calling waitforbuttonpress drawnow while how_many = 0 % use no-side effect waitforbuttonpress waserr
45、 = 0; trykeydown = wfbp; catchwaserr = 1; end if(waserr = 1) if(ishandle(fig) set(fig,units,fig_units); uirestore(state); error(interrupted); else error(interrupted by figure deletion); end end ptr_fig = get(0,currentfigure); if(ptr_fig = fig) if keydown char = get(fig, currentcharacter); button = abs(get(fig, currentcharacter); scrn_pt = get(0, pointerlocation); set(fig,units,pixels) loc = get(fig, position); pt = scrn_pt(1) - loc(1), scrn_pt(2) - loc(2); set(fig,currentpoint,pt); else button = get(fig, selectiontype); if strcmp(button,open) bu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育培訓(xùn)機(jī)構(gòu)與老師簽的合同樣書7篇
- 1+x郵輪內(nèi)裝工藝職業(yè)技能等級(jí)證書(中級(jí))理論考試題庫(kù)及答案
- 2025年沙洲職業(yè)工學(xué)院高職單招高職單招英語(yǔ)2016-2024歷年頻考點(diǎn)試題含答案解析
- 2025年江西水利職業(yè)學(xué)院高職單招語(yǔ)文2018-2024歷年參考題庫(kù)頻考點(diǎn)含答案解析
- 專題04《海底兩萬里》真題精練(單一題)
- 滬教版(上海)七年級(jí)地理第一學(xué)期中國(guó)區(qū)域篇(上)2《自主學(xué)習(xí) 認(rèn)識(shí)區(qū)域-廣西壯族自治區(qū)》聽課評(píng)課記錄
- 幼兒園綜合語(yǔ)言活動(dòng)策劃方案五篇
- 學(xué)校炊事員聘用合同書年
- 簡(jiǎn)單的個(gè)人勞務(wù)承包合同范本
- 環(huán)境監(jiān)測(cè)技術(shù)應(yīng)用合同
- 山東省濰坊市2024-2025學(xué)年高三上學(xué)期1月期末 英語(yǔ)試題
- 春節(jié)節(jié)后收心會(huì)
- 《榜樣9》觀后感心得體會(huì)四
- 七年級(jí)下冊(cè)英語(yǔ)單詞表(人教版)-418個(gè)
- 交警安全進(jìn)校園課件
- 潤(rùn)滑油過濾培訓(xùn)
- 內(nèi)蒙自治區(qū)烏蘭察布市集寧二中2025屆高考語(yǔ)文全真模擬密押卷含解析
- 浙江省紹興市2023-2024學(xué)年高一上學(xué)期期末考試物理試題(含答案)
- 《住院患者身體約束的護(hù)理》團(tuán)體標(biāo)準(zhǔn)解讀課件
- 2024年中考物理科技創(chuàng)新題型(教師版)
- 唐山市重點(diǎn)中學(xué)2024-2025學(xué)年全國(guó)高考大聯(lián)考信息卷:數(shù)學(xué)試題試卷(3)含解析
評(píng)論
0/150
提交評(píng)論