打靶法求邊值問題_第1頁
打靶法求邊值問題_第2頁
打靶法求邊值問題_第3頁
打靶法求邊值問題_第4頁
打靶法求邊值問題_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、本科畢業(yè)論文(設(shè)計(jì))論文(設(shè)計(jì))題目:打靶法求邊值問題 學(xué) 院:理學(xué)院 專 業(yè):數(shù)學(xué)應(yīng)用數(shù)學(xué) 班 級(jí):091 學(xué) 號(hào):0907010228 學(xué)生姓名:鐘玲聲 指導(dǎo)教師:汪萌萌2013年 4月 21日打靶法求邊值問題目 錄摘要:1引言:2第一章 常微分方程初值問題的解法31.1 常微分方程的離散化31.2 歐拉(Euler)方法41.3 改進(jìn)的Euler方法61.4 龍格庫塔(RungeKutta)方法71.5 4階龍格庫塔公式91.6 線性多步法9第二章 邊值問題的數(shù)值解法112.1 打靶法112.2 差分法15第三章 Matlab數(shù)值解163.1 常微分方程的解法163.2 打靶法的matl

2、ab實(shí)現(xiàn)23致 謝:27主要參考文獻(xiàn)27摘要常微分方程在很多領(lǐng)域都有非常重要的應(yīng)用,然而很多常微分方程的解是無法用解析解寫出的,因而要借助于數(shù)值方法。本文介紹了常微分方程邊值問題的常見解法,例如:歐拉法,龍格庫塔法等。而對(duì)于常微分方程邊值問題,常見的解法有打靶法、有限差分法和有限元法等。在本文中,我們重點(diǎn)介紹了打靶法,并給出了相關(guān)算法,然后結(jié)合實(shí)例編寫程序進(jìn)行了上機(jī)實(shí)驗(yàn)。關(guān)鍵詞:常微分方程,初值問題,邊值問題,打靶法AbstractOrdinary differential equations play an important role in different areas. However

3、, most equations cannot be expressed analytically. We need to use numerical methods. In this paper, we discuss the methods of solving initial value problem (IVP) , such as Euler method Runge-Kutta method. For boundary value problem (BVP), shooting method, finite difference method (FDM) and finite el

4、ement method(FEM) are presented. We mainly discuss shooting method and give the algorithm. Numerical experiment is presented in the end of the paper. Keywords: Ordinary differential equations, initial value problem, boundary value problem, the shooting method引言雖然常微分方程理論發(fā)展已經(jīng)有幾百年,但目前仍然在發(fā)展中。特別是最近三十年,常微

5、分方程迎來了發(fā)展的高峰。常微分方程邊值問題是常微分方程理論的重要組成部分, 在眾多科學(xué)技術(shù)領(lǐng)域中有著特別廣泛的應(yīng)用。打靶法是求解常微分方程邊值問題的一種數(shù)值方法,它的基本思想是將微分方程的邊值問題轉(zhuǎn)化為初值問題來求解,它的比較突出的特點(diǎn)是精度很高,程序很簡單,實(shí)用性很強(qiáng)。邊值問題:對(duì)n階常微分方程 如果能在不同的兩點(diǎn)和處,唯一地刻畫n個(gè)附加條件,并且在區(qū)間上求解,則稱此為邊值問題。在微分方程中,所謂的邊值問題就是我們給定的一個(gè)微分方程和一組被我們稱之為邊界條件的約束條件。邊值問題的解一般情況下是符合特定的約束條件的微分方程的解。我們在求解這個(gè)微分方程時(shí),除了給出方程的本身,往往還需要提供一定的

6、定解條件。最常見的就是給出初值問題,也就是說給出的定解條件為初始條件;但是也有一些情況,定解條件要求我們考慮所討論區(qū)域的邊界,比如說在一個(gè)給定區(qū)間討論時(shí),把定解條件在區(qū)間的兩個(gè)端點(diǎn)給出,給定的這種定解條件就被我們稱之為邊界條件,與之相應(yīng)的定解問題我們就稱之為邊值問題。第1章 常微分方程組初值問題的解法1.1 常微分方程的離散化下面主要討論一階常微分方程的初值問題,它的一般形式是 (1)在下面的討論中,總假定函數(shù)連續(xù),且滿足Lipschitz條件,也就是存在常數(shù),使得那么,根據(jù)常微分方程理論知,初值問題(1)的解存在并且唯一.所謂數(shù)值解法,就是求問題(1)的解在若干點(diǎn)處的近似值的方法,稱為問題(

7、1)的數(shù)值解,稱為由到的步長.今后如無特別說明,我們總?cè)〔介L為常量.建立數(shù)值解法,首先要將微分方程離散化,一般采用以下幾種方法:1.1.1用差商近似導(dǎo)數(shù)如果用向前差商代替代入(1)中的微分方程,則得化簡得如果用的近似值代入上式右端,所得結(jié)果作為的近似值,記為,那么有 (2)這樣,問題(1)的近似解可通過求解下面的問題 (3)得到,按式(3)由初值可逐次算出.式子(3)是個(gè)離散化的問題,稱為差分方程初值問題.需要說明的是,用不一樣的差商近似導(dǎo)數(shù),將得到不一樣的計(jì)算公式.1.1.2 用數(shù)值積分方法將問題(1)的解表成積分形式,用數(shù)值積分方法離散化.例如,對(duì)微分方程兩端積分,得到 (4)右邊的積分用

8、矩形公式或梯形公式計(jì)算.1.1.3 Taylor多項(xiàng)式近似將函數(shù)在處展開,取一次Taylor多項(xiàng)式近似,則得再將的近似值代入上式右端,所得結(jié)果作為的近似值,得到離散化的計(jì)算公式上面的三種方法都是將微分方程離散化的常用方法,每一類方法又可導(dǎo)出不同形式的計(jì)算公式.其中的Taylor展開法,不僅可以得到求數(shù)值解的公式,而且容易估計(jì)截?cái)嗾`差.1.2歐拉(Euler)方法1.2.1 Euler方法Euler 方法就是用差分方程初值問題(3)的解來近似微分方程初值問題(1)的解,即由公式(3)依次算出的近似值。這組公式求問題(1)的數(shù)值解稱為向前Euler公式.如果在微分方程離散化時(shí),用向后差商代替導(dǎo)數(shù),

9、也就是,則得計(jì)算公式 (5)用這組公式求問題(1)的數(shù)值解稱為向后Euler公式.向后Euler法與Euler法形式上相似,但實(shí)際計(jì)算時(shí)卻復(fù)雜得多.向前Euler公式是顯式的,可直接求解.向后Euler公式的右端含有,因此是隱式公式,一般要用迭代法求解,迭代公式通常為 (6)1.2.2 Euler方法的誤差估計(jì) 對(duì)于向前Euler公式(3)我們看到,因?yàn)闀r(shí)公式右端的都是近似的,所以用它計(jì)算的會(huì)有累積誤差,分析累積誤差比較復(fù)雜,這里先討論比較簡單的所謂局部截?cái)嗾`差.假設(shè)用(3)式時(shí)右端的沒有誤差,即,那么由此算出 (7)局部截?cái)嗾`差指的是,按(7)式計(jì)算由到這一步的計(jì)算值與精確值之差.為了估計(jì)它

10、,根據(jù)Taylor展開得到的精確值是 (8)(7)、(8)兩式相減(注意到)得到 (9)也就是局部截?cái)嗾`差是階的,而數(shù)值算法的精度定義為: 如果一種算法的局部截?cái)嗾`差為,則稱該算法具有階精度.顯然越大,方法的精度越高。式(9)說明,向前Euler方法是一階方法,因此它的精度不高。1.3 改進(jìn)的Euler方法1.3.1 梯形公式利用數(shù)值積分方法將微分方程離散化的時(shí)候,如果用梯形公式計(jì)算式(4)中之右端積分,即并用代替,那么得計(jì)算公式這就是求解初值問題(1)的梯形公式.直觀上容易看出,用梯形公式計(jì)算數(shù)值積分要比矩形公式好.梯形公式為二階方法。 梯形公式也是隱式格式,一般需用迭代法求解,迭代公式為

11、(10) 由于函數(shù)關(guān)于滿足Lipschitz條件,容易看出其中為Lipschitz常數(shù).因此,當(dāng)時(shí),迭代收斂.但是這樣做計(jì)算量較大.如果實(shí)際計(jì)算時(shí)精度要求不太高,用公式(10)求解時(shí),每步可以只迭代一次,由此導(dǎo)出一種新的方法改進(jìn)Euler法.1.3.2 改進(jìn)Euler法按照式(5)計(jì)算問題(1)的數(shù)值解時(shí),如果每步只迭代一次,相當(dāng)于將Euler公式與梯形公式結(jié)合使用:先用Euler公式求的一個(gè)初步近似值,稱為預(yù)測值,然后用梯形公式校正求得近似值,即 (11)式(11)稱為由Euler公式和梯形公式得到的預(yù)測校正系統(tǒng),也叫改進(jìn)Euler法.為了便于編制程序上機(jī),式子(11)常改寫成 (12)改進(jìn)

12、Euler法是二階方法.1.4 龍格庫塔(RungeKutta)方法回到Euler方法的基本思想用差商代替導(dǎo)數(shù).實(shí)際上,按照微分中值定理應(yīng)有注意到方程就有 (13)不妨記,稱為區(qū)間上的平均斜率.可見給出一種斜率,(13)式就對(duì)應(yīng)地導(dǎo)出一種算法.向前Euler公式簡單地取為,精度自然很低.改進(jìn)的Euler公式可理解為取,的平均值,其中,這種處理提高了精度.如上分析啟示我們,在區(qū)間內(nèi)多取幾個(gè)點(diǎn),將它們的斜率加權(quán)平均作為,就有可能構(gòu)造出精度更高的計(jì)算公式.這就是龍格庫塔方法的基本思想. 首先不妨在區(qū)間內(nèi)仍取2個(gè)點(diǎn),仿照(13)式用以下形式試一下 (14)其中為待定系數(shù),看看如何確定它們使(14)式的

13、精度盡量高.為此我們分析局部截?cái)嗾`差,因?yàn)?,所以?4)可以化為 (15)其中在點(diǎn)作了Taylor展開.(15)式又可表為注意到中,可見為使誤差,只須令 , (16)待定系數(shù)滿足(16)的(15)式稱為2階龍格庫塔公式.由于(16)式有4個(gè)未知數(shù)而只有3個(gè)方程,所以解不唯一.不難發(fā)現(xiàn),若令 ,即為改進(jìn)的Euler公式.可以證明,在內(nèi)只取2點(diǎn)的龍格庫塔公式精度最高為2階.1.5 四階龍格庫塔公式要進(jìn)一步提高精度,必須取更多的點(diǎn),如取4點(diǎn)構(gòu)造如下形式的公式: (17)其中待定系數(shù)共13個(gè),經(jīng)過與推導(dǎo)2階龍格庫塔公式類似、但更復(fù)雜的計(jì)算,得到使局部誤差的11個(gè)方程.取既滿足這些方程、又較簡單的一組,

14、可得 (18)這就是常用的4階龍格庫塔方法(簡稱RK方法).1.6 線性多步法以上所介紹的各種數(shù)值解法都是單步法,這是因?yàn)樗鼈冊谟?jì)算時(shí),都只用到前一步的值,單步法的一般形式是 (19)其中稱為增量函數(shù),例如Euler方法的增量函數(shù)為,改進(jìn)Euler法的增量函數(shù)為怎么樣通過較多地利用前面的已知信息,如,來構(gòu)造高精度的算法計(jì)算,這就是多步法的基本思想.經(jīng)常使用的是線性多步法.讓我們試驗(yàn)一下,即利用計(jì)算的情況.從用數(shù)值積分方法離散化方程的(4)式出發(fā),記,式中被積函數(shù)用二節(jié)點(diǎn),的插值公式得到(因,所以是外插. (20)此式在區(qū)間上積分可得于是得到 (21)注意到插值公式(20)的誤差項(xiàng)含因子,在區(qū)間

15、上積分后得出,故公式(21)的局部截?cái)嗾`差為,精度比向前Euler公式提高1階.若取可以用類似的方法推導(dǎo)公式,如對(duì)于有 (22)其局部截?cái)嗾`差為.如果將上面代替被積函數(shù)用的插值公式由外插改為內(nèi)插,可進(jìn)一步減小誤差.內(nèi)插法用的是,取時(shí)得到的是梯形公式,取時(shí)可以得到 (23)與(22)式相比,雖然其局部截?cái)嗾`差仍為,但因它的各項(xiàng)系數(shù)(絕對(duì)值)大為減小,誤差還是小了.當(dāng)然,(23)式右端的未知,需要如同向后Euler公式一樣,用迭代或校正的辦法處理.第2章 邊值問題的數(shù)值解法2.1 打靶法解兩點(diǎn)邊值問題 (1)的打靶法實(shí)質(zhì)上是把邊值問題化為初值問題來解,我們設(shè)法確定的值,使得初值問題 (2)的解在的

16、值滿足或者是其中為我們允許的誤差界限. 這樣,我們把看作邊值問題(1)的近似解.為此,可以采用逐次逼近的方法來實(shí)現(xiàn).假設(shè)為邊值問題的解,我們估計(jì)的值為之后,求解初值問題(在(2)中令).這樣得到的解為,并且計(jì)算得到.一般地,.但是如果或,則把作為邊值問題(1)的近似解;否則的話,則做適當(dāng)?shù)恼{(diào)整,例如取,則在(2)中令,再求解此初值問題.設(shè)計(jì)算得到它的解為,若或,則作為邊值問題(1)的近似解;否則,再做適當(dāng)?shù)恼{(diào)整.如此重復(fù)計(jì)算,直至或時(shí),便以作為邊值問題(1)的近似解,參考下圖:上面的積分曲線()的過大,下面的曲線()的過小.我們已經(jīng)介紹了解常微分方程初值問題的數(shù)值方法.現(xiàn)在的問題是怎么樣確定參

17、數(shù).當(dāng)時(shí),從初值問題計(jì)算得到解.自然地,我們希望.因此,確定的問題可以歸納為求方程 (3)的近似根.(3)是一個(gè)非線性方程.二分法,割線法和牛頓法都可以用來求解方程(3).假如用弦割法來求解方程(3),我們需要選取初始近似,由公式 (4)生成序列.按照(4)的方式求,直到為止,其中為允許的誤差界.令.給定初值,誤差容限,最大迭代次數(shù).取,解初值問題(2)得解在的近似值:.如果,則輸出作為初值問題(1)的解在的近似值;停機(jī)令,解初值問題(2)得解在的近似值:如果,則輸出作為初值問題(1)的解在的近似值;停機(jī).對(duì)重復(fù)做。由(4)公式計(jì)算;令,解初值問題(2)的解在的(近似)值:如果,則輸出作為初值

18、問題(1)的解在的近似解;停機(jī).對(duì)第三邊值問題,我們同樣可以用打靶法求解.設(shè)第三邊值問題為 (5) (6) (7)打靶法的基本過程如下:選取參數(shù),令.設(shè),則可以由(6)式確定,從而得到初值問題 (8)求初值問題(8)的解代入(7)式左端得如果,則為所求解的邊值問題的近似解;如果,則令.設(shè)(以取代)解初值問題(8),求得解后在代入(7)式左端得從出發(fā),由割線法 (9)產(chǎn)生,以取代解決初值問題(8)確定,如此繼續(xù)進(jìn)行下去,求得序列,直到為止,為誤差容限.如果,則(5),(6),(7)為第二邊值問題,處理方法完全類似.2.2 差分法在這里我們介紹一種求解(1)的簡單方法,我們以最簡單的二階常微分方程

19、為例來說明邊值問題的數(shù)值解法.解法可以用數(shù)值微分公式替代導(dǎo)數(shù),將其變成代數(shù)方程,然后我們再求解,這種求解的方法我們通常把它叫做差分法. (即中心差商) (即二階差商)令并略去和用差商表示中的二次項(xiàng),然后代入(1),這樣我們就得到: (10)其中,.從(10)中解出,即為所求的常微分方程的計(jì)算解.一般情況下,(10)是一個(gè)非線性方程組,求解也比較困難.但是,如果微分方程(1)中第一式的右端為的線性函數(shù)時(shí),則方程組(10)就可以轉(zhuǎn)化成線性方程組,求解問題也就簡單多了.第三章 Matlab數(shù)值解3.1 常微分方程的解法3.1.1.利用Matlab求解一階方程初值問題在Matlab的工具箱中,給我們提

20、供了很多求解常微分方程的功能函數(shù).如ode45,ode23,ode113,其中ode45采用四五階RK方法,是解非剛性常微分方程的首選方法,ode23采用二三階RK方法,ode113采用的是多步法,效率一般比ode45高.Matlab的工具箱中沒有Euler方法的功能函數(shù).對(duì)簡單的一階方程的初值問題改進(jìn)的Euler公式為一階微分方程初值問題的求解在Matlab中非常簡單明了并且容易求解的方法,而且由于Matlab中內(nèi)嵌的微分方程初值問題的求解方法是變步長的龍格庫塔法,故而求解的結(jié)果是值得我們相信的.對(duì)于微分方程,直接利用Matlab語言的內(nèi)嵌函數(shù)ode45,按照調(diào)用格式x,y=ode45(,)

21、即可求出最終的結(jié)果.其中指函數(shù)名或所建立的M文件的文件名,為已知離散節(jié)點(diǎn)向量,為初值.例:求解一階微分方程初值問題: (1)先編寫M文件fun.m:Function f=fun(x,y)f=y-2*x/y;命令窗口寫入:x=0:0.2:1;x,y=ode45(fun,x,1)求解結(jié)果為:x,y=0.0000 1.0000 0.2000 1.1832 0.4000 1.3416 0.6000 1.4832 0.8000 1.6125 1.0000 1.7321這個(gè)結(jié)果與四階龍格庫塔法求解結(jié)果相同,比改進(jìn)歐拉法求解結(jié)果要精確得多.運(yùn)用內(nèi)嵌函數(shù)直接求解最大的優(yōu)點(diǎn)是簡潔方便,只要依照函數(shù)的調(diào)用格式調(diào)用

22、即可,但是對(duì)于理解函數(shù)值解法的思想沒有太大的幫助,故而要體現(xiàn)數(shù)值解法的具體思想,可以通過編寫程序來實(shí)現(xiàn).3.1.2 根據(jù)數(shù)值解法的思想編程實(shí)現(xiàn)對(duì)于一階微分方程的初值問題 (2)運(yùn)用改進(jìn)歐拉法和四階龍格庫塔法求解程序如下:(1) 改進(jìn)歐拉法建立如下M文件:a=0;b=5;n=120;xn=0;yn=2;h=(b-a)/n;for i=1:nyp=yn-h*xn*yn*yn;xn=xn+h;yc=yn-h*(xn*yp*yp);yn=(yp+yc)/2;end迭代次數(shù)n=120時(shí)求解結(jié)果:yn=0.07694733409450;若n=5000時(shí),求解結(jié)果yn=0.07692309052101.標(biāo)準(zhǔn)

23、四階龍格庫塔法對(duì)于上述初值問題建立如下M文件:a=0;b=5;n=20;xn=0;yn=2;h=(b-a)/h;for i=1:n; k1=-h*xn*yn*yn; xn=xn+h/2; k2=-h*xn*(yn+k1/2)*(yn+k1/2); k3=-h*xn*(yn+k2/2)*(yn+k2/2); xn=xn+h/2; k4=-h*xn*(yn+k3/2)*(yn+k3); yn=yn+(k1+2*k2+2*k3+k4)/6;end當(dāng)?shù)螖?shù)n=120的時(shí)候,獲得計(jì)算結(jié)果:yn=0.07692668513821,比運(yùn)用改進(jìn)歐拉法迭代120步的效果都要好的多;兒當(dāng)?shù)螖?shù)n=120時(shí),迭

24、代結(jié)果yn=0.07692307941295基本已經(jīng)達(dá)到精確解.3.1.3 結(jié)果分析對(duì)問題(1)的求解簡單方便,但難于體現(xiàn)求解的具體思想:對(duì)于問題(2)的求解運(yùn)用變成實(shí)現(xiàn),從實(shí)驗(yàn)角度幫助理解理論知識(shí),不僅可以深入掌握求解方法的思想,而且還可以提高實(shí)踐動(dòng)手能力.問題(2)中,初值問題的精確解為yn=0.07692307,改進(jìn)歐拉法在迭代到120步的時(shí)候誤差還較大,迭代到5000步的時(shí)候誤差較小,但是與精確解的誤差仍然有出入,而且從迭代過程來看,迭代次數(shù)n越大,收斂速度越慢,效果不明顯.而四階龍格庫塔法迭代20步的結(jié)果遠(yuǎn)遠(yuǎn)好于改進(jìn)歐拉法120步的結(jié)果,當(dāng)?shù)?20步時(shí)已經(jīng)跟精確解非常接近.故而龍

25、格庫塔法迭代不僅得到的解比改進(jìn)歐拉法準(zhǔn)確得多,而且收斂速度非???,確實(shí)是一種很好的算法.但是唯一不足的是計(jì)算量大,這一矛盾很難解決.3.2 打靶法的Matlab實(shí)現(xiàn) 3.2.1打靶法算法 我們考慮兩個(gè)邊界條件的二階常微分方程,其中是給定的常數(shù),是關(guān)于的未知的函數(shù),是一個(gè)函數(shù)的微分方程的指定者,實(shí)現(xiàn)了與之間的關(guān)系.這是一個(gè)兩點(diǎn)之間的邊值問題.初始值問題需要兩個(gè)條件被給定在相同的值下.例如,和.因?yàn)閮蓚€(gè)獨(dú)立的邊界條件,上述兩點(diǎn)邊值問題是比較難解決的問題.“打靶法”是一個(gè)初始值問題代替上述問題的基本思想.當(dāng)然,我們并不知道在時(shí)的導(dǎo)數(shù)值,但是我們可以猜測,然后進(jìn)一步完善猜測的迭代.更確切的說是,我們對(duì)

26、為未知,并使用割線法或者牛頓法(或者其他的方法求解非線性方程組)來確定.我們引入一個(gè)函數(shù)u,這是x的函數(shù),但是它取決于一個(gè)參數(shù)t.即.我們使用和表示相對(duì)于的偏導(dǎo)數(shù).我們希望是準(zhǔn)確的,如果是正確的選擇.通過以下定義:當(dāng)給定的值,然后就可以求解上述關(guān)于的初始值問題.一般與是不等的,由于.但是如果等于,則我們認(rèn)為=.因?yàn)槲覀儾恢?,我們確定它在邊界條件.即,我們要求解使得:.如果我們找到了使得,這意味著.因此,在和,滿足兩個(gè)相同的邊界條件,換句話說,.因此,的解必須滿足.如果我們可以寫出初始值問題(任意)的解析式,我們可以寫一個(gè)公式.當(dāng)然,這一般是不可能的.然而,沒有一個(gè)解析公式,我們?nèi)匀豢梢郧蠼獾?/p>

27、數(shù)值.對(duì)任何,初始值問題的數(shù)值方法可以用來找到一個(gè)近似解(因此).最簡單的方法是使用割線法.為了達(dá)到這個(gè)目的,我們需要兩個(gè)初始猜測:和.我們也可以使用牛頓法:我們需要一種方法來計(jì)算導(dǎo)數(shù),由于,我們有.如果我們定義了,我們有一下的初始值問題:在這里,對(duì)于,和是的第一和第二階偏導(dǎo)數(shù).方程的上面設(shè)置是從偏導(dǎo)數(shù)相對(duì)于系統(tǒng)獲得.鏈?zhǔn)椒▌t是用來獲得的微分方程.現(xiàn)在,我們設(shè).這是打靶法的方法,其中包括牛頓法求解的算法:=初始猜測值.for j=0,1,2,. 求解如下的微分方程系統(tǒng),求解區(qū)間從x=a到x=b =f(x,u,) = = = =0 =1.令 .如果我們想使用在前面解決了的上述系統(tǒng)中的兩個(gè)第二階方

28、程和的方法,我們需要引入一個(gè)向量和微分方程為的向量.初始條件是.打靶法也使用于特征值問題:在滿足條件或者跟普遍,在是均勻的,即,對(duì)于任何常數(shù).注意總是一個(gè)上述邊值問題的解.事實(shí)上,一個(gè)特征值問題是一個(gè)特殊的邊界值問題滿足始終是一個(gè)解決方案,有一個(gè)稱為的方程參數(shù)(或邊界條件).特征值問題是確定非零解為的特殊價(jià)值而存在的.特征值問題的解決方案是對(duì),其中是特征值問題的特征.通常,有許多(可能是無限的)的特征值和本征函數(shù).利用打靶法,我們考慮初始值問題其中為參數(shù).由于該解決方案依賴于,我們用符號(hào),但和代表第一和第二階導(dǎo)數(shù)取決于.對(duì)于任何給定的,我們可以解決上述的初始值問題.現(xiàn)在假設(shè)滿足條件則是我們正在

29、尋找的特征函數(shù),是相應(yīng)的特征值.因此,我們只需要使用割線法或者牛頓法求解的方程.如果使用割線法,我們只需要解決不同的迭代器的初值問題.如果用牛頓法,我們必須得到關(guān)于的.因此,我們需要.我們需要一個(gè)初始值問題的.這可以通過偏導(dǎo)數(shù)相對(duì)于的出數(shù)值問題,得到.我們有請(qǐng)注意,我們已經(jīng)使用鏈?zhǔn)椒▌t(微積分)為得到方程.現(xiàn)在,你可以解決初始值問題(和一起),然后評(píng)估為任何給定的.3.2.2 實(shí)例(1) 用打靶法算法編寫程序上機(jī)求解下面的實(shí)例:解 編寫算法如下(我們用D2u表示u的2階導(dǎo)數(shù),用Du表示u的一階導(dǎo)數(shù);用D2v表示v的2階導(dǎo)數(shù),用Dv表示v的一階導(dǎo)數(shù)):t0=0.for j=0,1,2,. sol

30、ve the following system numerically from x=-1 to x=1 D2u=f(x,u,Du) u(x=-1)=1 Du(x=-1)=t(j) D2v= fu(x,u,Du)v+fDu(x,u,Du)Dv v(x=-1)=0 Dv(x=-1)=1.set t(j+1)=t(j)-(u(x=1)-1)/v(x=1).plot(t,y)用上面的程序上機(jī)進(jìn)行測試,就會(huì)得到一個(gè)很接近精確解的一個(gè)解.(2) 用打靶法算法編寫程序上機(jī)求解下面的實(shí)例:解 編寫算法如下(我們用D2u表示u的2階導(dǎo)數(shù),用Du表示u的一階導(dǎo)數(shù);用D2v表示v的2階導(dǎo)數(shù),用Dv表示v的一階導(dǎo)數(shù)

31、):t0=0.for j=0,1,2,. solve the following system numerically from x=0 to x=/4 D2u=f(x,u,Du) u(x=0)=0 Du(x=0)=t(j) D2v= fu(x,u,Du)v+fDu(x,u,Du)Dv v(x=0)=0 Dv(x=0)=1.set t(j+1)=t(j)-(u(x=/4)-0)/v(x=/4).plot(t,y)(3) 用打靶法算法編寫程序上機(jī)求解下面的實(shí)例:解 編寫算法如下(我們用D2u表示u的2階導(dǎo)數(shù),用Du表示u的一階導(dǎo)數(shù);用D2v表示v的2階導(dǎo)數(shù),用Dv表示v的一階導(dǎo)數(shù)):t0=0.f

32、or j=0,1,2,. solve the following system numerically from x=0 to x=1 D2u=f(x,u,Du) u(x=0)=0 Du(x=0)=t(j) D2v= fu(x,u,Du)v+fDu(x,u,Du)Dv v(x=0)=0 Dv(x=0)=1.set t(j+1)=t(j)-(u(x=1)-0)/v(x=1).plot(t,y)(4) 用打靶法算法編寫程序上機(jī)求解下面的實(shí)例:解 編寫算法如下(我們用D2u表示u的2階導(dǎo)數(shù),用Du表示u的一階導(dǎo)數(shù);用D2v表示v的2階導(dǎo)數(shù),用Dv表示v的一階導(dǎo)數(shù)):t0=0.for j=0,1,2,

33、. solve the following system numerically from x=0 to x=1 D2u=f(x,u,Du) u(x=0)=0 Du(x=0)=t(j) D2v= fu(x,u,Du)v+fDu(x,u,Du)Dv v(x=0)=0 Dv(x=0)=1.set t(j+1)=t(j)-(u(x=1)-1)/v(x=1).plot(t,y)(5) 用打靶法算法編寫程序上機(jī)求解下面的實(shí)例:解 編寫算法如下(我們用D2u表示u的2階導(dǎo)數(shù),用Du表示u的一階導(dǎo)數(shù);用D2v表示v的2階導(dǎo)數(shù),用Dv表示v的一階導(dǎo)數(shù)):t0=0.for j=0,1,2,. solve the following system numerically from x=0 to x=1 D2u=f(x,u,Du) u(x=0)=1 Du(x=0)=t

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論