振蕩函數(shù)積分的數(shù)值計算[畢業(yè)論文]_第1頁
已閱讀1頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  本科畢業(yè)論文(設計)</p><p><b> ?。?0 屆)</b></p><p>  振蕩函數(shù)積分的數(shù)值計算</p><p>  所在學院 </p><p>  專業(yè)班級 信息與計算科學 </p>

2、<p>  學生姓名 學號 </p><p>  指導教師 職稱 </p><p>  完成日期 年 月 </p><p>  摘要:在科學應用領域,如電磁學、非線性學、流體動力學、等離子體運輸、天體動力學、地質勘探等,

3、都常常要計算含有振蕩函數(shù)的積分。振蕩函數(shù)有時并非光滑,甚至并不連續(xù)。為了研究這一類特殊函數(shù),我們必須考慮一些相應的數(shù)值求解振蕩函數(shù)積分的方法,比如可考慮轉化為兩零點間的積分,F(xiàn)ilon算法等。而這些方法的基礎為常用的數(shù)值積分公式,比如梯形公式及其復合公式,拋物線公式及其復合公式等等。接著,通過比較總結得出幾種方法的適用范圍與優(yōu)缺點,其中包括三次樣條插值,分段插值以及復化九點高斯-勒讓德法。</p><p>  關

4、鍵詞:振蕩函數(shù);求積公式;數(shù)值計算 </p><p>  The Numerical Formula for Integrals of Oscillation Function</p><p>  Abstract: In scientific applications, such as electromagnetism, nonlinear science, fluid dynamics

5、, plasma transportation, celestial dynamics, geological prospecting etc, we often face with the integral calculation of oscillation function. Oscillation function sometimes is not smooth, even not continuous. In order to

6、 research this kind of special function, some corresponding methods must be considered. For instance, it can be changed into the integral which is between two zeros, Filon algorithm, </p><p>  Key words: osc

7、illation function; quadrature formula; numerical calculation</p><p><b>  目 錄</b></p><p><b>  1 緒 論I</b></p><p>  1.1 背景意義1</p><p>  1.2 結構特

8、點1</p><p>  2 數(shù)值積分...................................................................2</p><p>  2.1 牛頓-科茨求積公式2</p><p>  2.2 復合求積公式..............................................

9、.............2 </p><p>  2.3 高斯型求積公式.........................................................3</p><p>  3 振蕩函數(shù)積分的數(shù)值計算.....................................................5</p><p>

10、  3.1 幾種常用的振蕩函數(shù)的數(shù)值積分公式......................................5</p><p>  3.1.1 在兩零點之間積分..........................................5</p><p>  3.1.2 菲隆方法.........................................

11、........5</p><p>  3.1.3 Hermite數(shù)值積分公式......................................5 3.2 幾類特殊振蕩函數(shù)的數(shù)值積分方法分析.....................................5</p><p>  3.3 一維振蕩函數(shù)數(shù)值積分公式的設計........................

12、.................7</p><p>  3.3.1 三次樣條插值求積公式...................................... 7</p><p>  3.3.2 分段線性插值求積公式...................................... 8</p><p>  3.3.3 分段拋物插值求積公

13、式..................................... 10</p><p>  3.3.4 復化九點高斯-勒讓德求積公式............................... 12</p><p>  4 數(shù)值算例及比較............................................................15</

14、p><p>  4.1 幾類特殊振蕩函數(shù)的數(shù)值積分方法.......................................15</p><p>  4.2 評價.................................................................15</p><p><b>  5 結 論17<

15、;/b></p><p><b>  致謝18</b></p><p><b>  參考文獻19</b></p><p>  附錄.........................................................................20</p><p

16、><b>  1 緒論</b></p><p><b>  1.1 背景意義</b></p><p>  科學計算作為當今科學研究的三種手段之一,是數(shù)學將觸角伸向其他科學的橋梁。在科學應用領域,如電磁學、非線性學、流體動力學、等離子體運輸、天體動力學、地質勘探等,都常常要計算含有振蕩函數(shù)的積分。振蕩函數(shù)有時并非光滑,甚至并不連續(xù),為了

17、研究這一類特殊函數(shù),我們必須考慮一些相應的方法,并數(shù)值求解振蕩函數(shù)積分的若干方法。目前,對振蕩函數(shù)數(shù)值積分公式進行的研究已取得一些研究成果。如Filon法,Lobatto法和Price法等,但它們都或多或少存在一些弊端,有的方法需要計算大量的一階或高階導數(shù),這樣會使得問題更加復雜化,而且高階導數(shù)的計算會降低最終結果的精度;另外,有的需要大量復雜的計算,這就使得算法的時間效率和空間效率有所降低。在實際應用中,對于被積函數(shù)含有振蕩的積分以及

18、廣義積分的計算中,需對被積函數(shù)作適當?shù)奶幚碓龠M行近似計算,才能提高計算結果的精度。而這些方法的基礎為常用的數(shù)值積分公式,比如梯形公式及其復合公式,拋物線公式及其復合公式,Guass求積公式等等。積分運算是微積分學的一個重要的分支。在加速度已知的情況下,積分運算用來求它的速度;或者通過速度求出位移,計算圖形面積,預測人口增長等其他</p><p>  隨著計算機的迅速發(fā)展,在科學、技術、工程、生產(chǎn)、醫(yī)學、經(jīng)濟和人文

19、等領域中抽象出來的許多數(shù)學問題可以用計算機計算、求解??山栌密浖鏜atlab或C對其中一些方法進行編程實現(xiàn)。能夠將理論與實踐聯(lián)系起來,形成一個由“實踐—理論—實踐”的良性循環(huán)。</p><p><b>  1.2 結構特點</b></p><p>  本文主要研究一維振蕩函數(shù)的情況,首先介紹幾種常用的數(shù)值積分公式,然后介紹幾種一般的振蕩函數(shù)數(shù)值求積公式,并總計設計

20、幾種特殊振蕩函數(shù)的求積公式。最后通過數(shù)值示例比較各種方法的優(yōu)劣利弊。</p><p><b>  2 數(shù)值積分</b></p><p>  2.1 牛頓-科茨求積公式</p><p>  我們利用插值多項式來構造數(shù)值積分公式,設區(qū)間,用被積函數(shù)的以為節(jié)點的n次Lagrange插值多項式及其余項代替被積函數(shù),當求積節(jié)點為等距節(jié)點時得到以下數(shù)

21、值積分公式</p><p>  , (2.1)</p><p><b>  其中</b></p><p><b>  , </b></p><p>  稱為求積系數(shù), 為 n次插值基函數(shù),稱為求積積點。

22、 </p><p>  非周期函數(shù)的積分,一般使用Newton-Cotes法或龍貝格法。 </p><p>  設[a,b]為有限區(qū)間,步長,則相應的公式(2.1)便稱為n階Newton-Cotes型求積公式。</p><p>  梯形公式建立的基礎是用線性插值多項式逼近被積函數(shù)。即當Newton-Cotes求積公式中n=1時,得</p

23、><p><b>  ,</b></p><p><b>  稱為梯形公式。</b></p><p>  如果用二次或三次插值多項式我們可以使逼近效果更好。辛普森公式建立的基礎就是這種逼近。即Newton-Cotes求積公式中當n=2時,得</p><p><b>  ,</b>&

24、lt;/p><p>  稱為拋物線公式,也叫Simpson公式。</p><p>  2.2 復合求積公式</p><p>  應用高階的Newton-Cotes型求積公式計算積分會出現(xiàn)數(shù)值不穩(wěn)定,低階公式(如梯形和拋物線公式)又往往因積分區(qū)間步長過大使得離散誤差大。然而,若積分區(qū)間愈小,則離散誤差小。因此,為了提高求積公式的精確度,又使算法簡單易行,往往使用復化方法

25、。即把積分區(qū)間分成若干個子區(qū)間,在每個子區(qū)間上使用低階公式,然后將結果加起來,這種公式稱為復合求積公式。復合求積公式是一種典型的求積方法,通過低階的求積公式構造出收斂性極好的求積方法,主要有復合梯形公式和復合Simpson公式。</p><p>  記,,。在每個小區(qū)間上使用梯形求積公式,便得到復合梯形求積公式:</p><p><b>  ,</b></p&g

26、t;<p>  如將[a,b]區(qū)間2m等分,記,,,在每個小區(qū)間上使用拋物線求積公式,則得復合拋物線公式:</p><p><b>  .</b></p><p>  2.3 高斯型求積公式</p><p>  若區(qū)間上一組節(jié)點使得相應求積公式(2.1)具有2n+1次代數(shù)精度,則稱此點組為高斯點組,相應的求積公式(2.1)為高

27、斯型求積公式。高斯點組可直接通過求解相應方程組得到,也可借助正交多項式的零點來確定。我們前面討論的數(shù)值積分公式都是事先給定均勻分布x值的;這就意味著x值被事先確定了。對于一個三項的公式,存在三個自由參數(shù),即對應函數(shù)值的系數(shù)(加權因子)。一個有三個參數(shù)的公式可以確定一個二次多項式,比參數(shù)的個數(shù)少一個。高斯發(fā)現(xiàn)如果我們改變求解函數(shù)值的任務沒有事先確定x值的話,那么三項積分公式中將含有六個參數(shù)(這三個x值現(xiàn)在是未知的,把三個權相加)并且相當于

28、一個五次插值多項式。以這個原則為基礎的公式稱作高斯積分公式。它們只能應用于表達式已知的情況下,從而可以求出任意需要x點的函數(shù)值。高斯積分公式效率高的原因是它只需要兩個函數(shù)值的加權和。</p><p>  Gauss型求積公式是具有最高代數(shù)精確度的插值求積公式,對于不同的權函數(shù),便有不同的直交多項式,從而得到不同的具體Gauss型求積公式。</p><p>  Guass-Legendre公

29、式</p><p><b>  ,</b></p><p>  在物理和力學中常常遇到一些帶有權函數(shù)的廣義積分。對于這些積分使用其他求積公式會遇到困難,而針對權函數(shù)和積分區(qū)間,選擇適當?shù)墓?jié)點構造代數(shù)精確度最高的Gauss型求積公式進行計算,通常是最有效的。</p><p>  Guass-Laguerre公式</p><p&

30、gt;<b>  .</b></p><p>  3 振蕩函數(shù)積分的數(shù)值計算</p><p>  3.1 幾種常用的振蕩函數(shù)數(shù)值積分方法</p><p>  在科學與工程計算中,經(jīng)常要求計算積分</p><p>  , (3.1)</p><

31、;p>  其中是一個“振蕩核”,即為關于x的振蕩函數(shù)。而f為非振蕩函數(shù)。</p><p>  3.1.1 在兩零點之間積分</p><p>  設被積函數(shù)振蕩部分在上的零點為,那么將上的積分分解為子區(qū)間上積分之和。在每個子區(qū)間上,因被積函數(shù)在端點之值為零,所以可以采用高斯-洛巴托求積公式,這樣可以不必增加計算量就可以得到較高的精度。</p><p>  3.1

32、.2 菲隆方法</p><p>  設(3.1)中f可以表示為</p><p><b>  , , </b></p><p>  其中是上的小量(當然為x的函數(shù))。令</p><p><b>  , </b></p><p>  可以用初等積分顯示表示出來。Filon

33、方法就是用的近似求出積分(3.1),通常是用的拋物線插值函數(shù)近似,也可用三次樣條插值近似。</p><p>  3.1.3 Hermite數(shù)值積分公式</p><p>  在工程技術問題中,常會遇到振蕩函數(shù)的積分,通常的插值型求積公式往往是失效的。由于在[-1,1]上符號有正負,故不能作權函數(shù)處理。根據(jù)插值多項式的數(shù)值積分的一些結論,導出n+1個節(jié)點的振蕩函數(shù)的Hermite插值求積公

34、式,它的權因子分成兩部分,一部分依賴于節(jié)點,另一部分獨立于節(jié)點的新型的求積公式,并利用正交多項式的性質,給出其遞推關系式及誤差分析。</p><p>  3.2 幾類特殊振蕩函數(shù)的數(shù)值積分方法分析</p><p>  在這里,我們首先討論振蕩函數(shù)一維時的情形,它的一般形式為:</p><p><b>  ,</b></p>

35、<p>  ( 其中為參數(shù),為非振蕩函數(shù),為依賴于的高振蕩函數(shù)。 )則振蕩函數(shù)積分的形式為:</p><p>  , </p><p><b>  傅里葉積分</b></p><p><b>  ,</b></p><p>  為典型例子。當n

36、較大時就是一類振蕩函數(shù)積分。在物理學和工程學中,經(jīng)常遇到型如(為正整數(shù))振蕩函數(shù)的數(shù)值積分問題。由于在上的符號有正有負,同樣一般不能簡單地作為權函數(shù),而用高斯法來計算這種類型積分。但使用這種些方法想得到較精確的近似值需要較大的計算量。而運用樣條函數(shù)處理此類積分則能大大提高代數(shù)精確度。</p><p>  振蕩函數(shù)積分,在應用數(shù)學、物理學、工程計算等方面有著廣泛的應用。眾所周知,n越大,被積函數(shù),就振蕩得越厲害,也

37、就是說,函數(shù)與x軸的交點就越多。在對振蕩函數(shù)積分進行數(shù)值計算時,如何克服振蕩所帶來的誤差,成為解決這一問題的關鍵。</p><p>  這時,若想要對上面這一類振蕩函數(shù)積分建立插值多項式,那么為了保證精確度,必須進行高次插值。然而現(xiàn)實是高次插值存在嚴重缺陷,即Ruge現(xiàn)象。而且當插值次數(shù)趨于無窮時,所求插值多項式不一定收斂到函數(shù),這樣就數(shù)值計算就是無效的。同時,高次插值會使計算機難以處理,數(shù)值計算不穩(wěn)定,往往達不

38、到精確度要求甚至相差甚遠。另一方面,對于一維情形,簡單的復化求積公式像復化Newton-Cotes公式效果也不是很理想。因此,對該類振蕩函數(shù)尋求更高精度的收斂穩(wěn)定的求積公式,對解決工程應用中遇到的一些振蕩函數(shù)積分問題有很重要的實際應用意義。</p><p>  綜上,我們得到啟發(fā),第一,若我們利用插值多項式構造插值型的求積公式,則該插值多項式的次數(shù)不能太高,而且只能針對中的非振蕩函數(shù)而不是對整個構造插值多項式。則

39、得到</p><p>  . (其中為積分誤差項)</p><p>  這就避免了構造高次多項式去逼近而導致不收斂穩(wěn)定的情況。第二,如果我們想根據(jù)復化求積的思想構造復化的求積公式,那么必須對復化的求積進行加速外推,這就是所謂的龍貝格求積算法。這時將被作為一個獨立的被積函數(shù)來對待,不再把分離出來。當然,此時的理查森加速外推法也同時適用于振蕩函數(shù)以外的其他的一般可積函數(shù)。</p>

40、<p>  在工程物理問題中,,其中是光滑函數(shù),變化不厲害。常數(shù)m較大,從而使被積函數(shù)振蕩很激烈。無論是Guass型求積法,還是Romberg方法,自適應方法,都需要計算大量的函數(shù)值才能使數(shù)值結果達到給定的誤差要求。此時,利用的三次插值樣條函數(shù)逼近來建立有效的數(shù)值方法。</p><p>  3.3 一維振蕩函數(shù)數(shù)值積分公式的設計</p><p>  3.3.1 三次

41、樣條插值求積公式</p><p>  我們對形如,的振蕩函數(shù)積分建立的三次樣條插值函數(shù),使得</p><p>  , (3.2) </p><p>  . (3.3)</p><p>  其中,為積分余項。容易看出,兩式的

42、右端都保留振蕩函數(shù)的一部分,但它是可以精確求出的。</p><p>  現(xiàn)在我們令為滿足第一邊界條件的三次樣條插值函數(shù),把區(qū)間n等分,節(jié)點為</p><p>  ,步長。記在節(jié)點處的值為。</p><p>  由于,,,,則對(3.2)式的右端重復地使用分部積分公式得到:</p><p><b>  (3.4)</b>&

43、lt;/p><p><b>  其中</b></p><p><b>  .</b></p><p><b>  用相同的方法得到:</b></p><p><b>  (3.5)</b></p><p><b>  其中.&

44、lt;/b></p><p>  誤差分析:由三次樣條插值方法的誤差估計得</p><p>  則由(3.2)式得到:</p><p><b> ?。?.6)</b></p><p><b>  類似的可以得到:</b></p><p><b> ?。?.7)

45、</b></p><p>  從(3.6)和(3.7)式中可以看出,當時,它們的右端項都趨向于零,則(3.2)和(3.3)式中的誤差項和都趨于零。也就是說,(3.4)式和(3.5)式都收斂到準確解,且至少有四階精度。</p><p>  3.3.2 分段線性插值求積公式</p><p>  由于三次樣條插值方法的計算涉及到方程組的求解,計算比較復雜

46、。因此,接下來將構造更加簡便的插值型求積公式。</p><p>  我們依然只對中的非振蕩函數(shù)構造分段線性插值函數(shù),使得 </p><p><b>  (3.8)</b></p><p>  同3.3.1中的處理方法,把區(qū)間分為n等分,節(jié)點為,步長。記,,… ,.則可以在每個小區(qū)間上可表示為</p><p&

47、gt;  其中 </p><p><b>  ,</b></p><p>  則積分 </p><p><b> ?。?.9)</b></p><p><b>  誤差分析:</b></p><p>&l

48、t;b>  因此</b></p><p><b> ?。ㄆ渲校?lt;/b></p><p>  所以由(3.8)式得出</p><p>  由上式可以看出,當時,它的右端項趨于零。即(3.8)的誤差項趨于零。也就是說,(3.9)式收斂到準確解,且至少有二階精度。</p><p>  3.3.3 分段拋

49、物插值求積公式</p><p>  為了進一步提高收斂速度,我們將采用分段拋物插值來逼近。首先我們依然對中的非振蕩函數(shù)構造分段拋物插值函數(shù),使得</p><p><b> ?。?.10)</b></p><p>  同樣地,我們仍舊把區(qū)間分為n等分,節(jié)點為,步長。</p><p><b>  記,,… ,<

50、;/b></p><p>  于是所求的滿足以下條件:</p><p> ?。?;;在每個小區(qū)間上是拋物函數(shù)。</p><p><b>  其中</b></p><p><b>  ,</b></p><p><b>  ,</b></p>

51、;<p><b>  代入得:</b></p><p><b> ?。?.11)</b></p><p><b>  誤差分析:</b></p><p><b>  (其中)</b></p><p><b>  因此</b&g

52、t;</p><p><b>  (其中)</b></p><p><b>  由(3.10)式得</b></p><p>  從上式可以看出,當時,它的右端項趨于零。即(3.10)的誤差項趨于零。也就是說,(3.11)式收斂到準確解,且至少有三階精度。</p><p>  3.3.4 復化九

53、點高斯-勒讓德求積公式</p><p>  作為整體,把區(qū)間n等分,節(jié)點為,步長。記,,… ,。</p><p><b>  則</b></p><p>  對上式右端的每一項作如下的線性變換:</p><p><b>  令</b></p><p><b>  則

54、</b></p><p>  對上式右端的每一項使用九點高斯-勒讓德求積公式得到:</p><p><b> ?。?.12)</b></p><p>  其中R為積分余項,A為九點高斯-勒讓德求積公式的求積系數(shù)。</p><p><b>  誤差分析:</b></p>&l

55、t;p>  n+1點高斯-勒讓德求積公式的積分余項為</p><p>  取n=8,所以在(3.12)式中,每個積分小區(qū)間上都有一個積分余項</p><p><b> ?。ㄆ渲校?lt;/b></p><p><b>  其中</b></p><p>  由上式可以看出,當時,它的右端項趨向于零,那

56、么(3.12)的積分誤差項R趨向于零。于是該積分公式是收斂到精確值I的,且至少有十七階精度。</p><p>  4 數(shù)值示例及評價</p><p>  下面我們通過具體的振函數(shù)作為例子來驗證和比較各種數(shù)值算法,從而得出它們的優(yōu)劣。</p><p>  4.1 求一維振蕩函數(shù)積分的數(shù)值示例</p><p><b>  考慮積

57、分</b></p><p>  已知它的精確值是:。</p><p>  下面我們分別用上文提到的四種求積公式進行計算,并列表比較如下。其中涉及到的程序見附錄。</p><p><b>  表4.1</b></p><p>  從上面的表格可以看出,隨著劃分段數(shù)的增加,即步長減小時,所得結果越來越精確。這說明

58、使用的積分公式是收斂的。從而驗證了各積分公式的正確性和有效性。</p><p><b>  4.2 評價</b></p><p>  對于插值型積分公式,從理論講精度由高到低為:三次樣條插值求積公式、分段拋物插值求積公式、分段線性插值求積公式。但從示例中來看,在用計算機計算時,三次樣條插值求積公式比分段線性插值、分段拋物插值求積公式的收斂速度要慢。另外使用三次樣條

59、插值求積公式的時候還要解方程從而求得,這是十分費時費力的,編寫程序的時候就需要調用一系列的函數(shù)。顯然地,三次樣條插值求積公式在實際計算中反而不如另外兩種插值公式。</p><p>  從實際應用和理論上分析,分段拋物插值求積公式都相對其他兩種較好。對于復化型求積公式,雖然在區(qū)間段少的時候結果不是很理想,但隨著區(qū)間段的增加,由于收斂速度較快,積分結果都會很好地收斂到精確值。另外,復化求積公式適用于大多數(shù)的振蕩函數(shù)的

60、積分,這是其它三種方法做不到的。</p><p><b>  5 結論</b></p><p>  眾所周知,振蕩函數(shù)的數(shù)值積分是數(shù)值積分的一個難點,同時目前對求振蕩函數(shù)數(shù)值積分的方法研究也有了一些成果,相比以前的方法具有簡便易行、計算量小而求積精度高等特點?,F(xiàn)代計算機的出現(xiàn)為大規(guī)模的數(shù)值計算提供了條件,集中而系統(tǒng)地研究適用于計算機的數(shù)值方法變得十分迫切和必要。&

61、lt;/p><p>  本文大致闡述了一些數(shù)值積分的基本思想和原理,并深入認識數(shù)值積分法的意義,明確代數(shù)精度的概念,以及數(shù)值積分精度與步長的關系;同時介紹了幾種基本的常用積分公式以及幾種優(yōu)化的積分公式并列出它們各自的優(yōu)缺點及適用范圍。振蕩函數(shù)由于振蕩頻率很高,所以在保證積分精度的同時還要考慮到高次插值多項式的嚴重缺陷。文中只要針對一維振蕩函數(shù)設計了幾種方法,分別是三次樣條插值,分段線性插值,分段拋物插值以及九點高斯-

62、勒讓德求積方法。并且用具體實例,通過比較分析各種方法得到的數(shù)據(jù)以及算法本身的效率總結出一個結論,在一維振蕩函數(shù)積分的數(shù)值計算中,復化九點高斯-勒讓德求積公式是最理想的。但在插值型求積公式中,無論是從理論還是數(shù)值實踐兩方面來講,分段拋物插值求積公式是相對較好的,而三次樣條插值是較差的。</p><p><b>  參考文獻</b></p><p>  [1] 黃明游,劉

63、播,徐濤. 數(shù)值計算方法[M]. 北京:科學出版社,2005:125-132.</p><p>  [2] Micheal T.Heath. Scientific Computing: An Introductory Survey[M].(2nd edition). 北京:清華大學出版社,2002:186-199.

64、</p><p>  [3] 現(xiàn)代應用數(shù)學手冊編委會. 現(xiàn)代應用數(shù)學手冊——計算與數(shù)值分析卷[M]. 北京:清華大學出版社,2005:223-227.</p><p>  [4] Richard L.Burden, J.Douglas Faires. Numerical Analysis[M].( 7th

65、60;edition) . 北京:高等教育出版社,2003.4:221-264.</p><p>  [5] 鄭咸義,姚仰新,雷秀仁,路子強,黃鳳輝.應用數(shù)值分析[M].廣州:華南理工大學出版社,2008:157-159.</p><p>  [6] 李慶揚,關治,白峰杉.數(shù)值計算原理[M].北京:清華大學出版社,2005:109-115.</p><

66、;p>  [7] 陸建芳.振蕩函數(shù)的Hermite數(shù)值積分公式[J].數(shù)值計算與計算機應用.1998,</p><p>  14(04):96-98. </p><p>  [8] 馬昌鳳,林偉川. 現(xiàn)代數(shù)值計算方法[M]. 北京:科學出版社,2008:100-120.</p><p>  [9] 李慶揚,王能超,易大義.數(shù)值分析[M].(第四版).北京:清華

67、大學出版社,2001:118-146.</p><p>  [10] 熊華,楊國孝.一類振蕩函數(shù)的數(shù)值積分方法[J].北京:北京理工大學學報.1999,</p><p>  19(03):280-284.</p><p>  [11] 李毅夫.對振蕩函數(shù)數(shù)值積分方法的進一步探討[J].數(shù)學的實踐與認識.2002,</p><p>  32(0

68、1):91-93.</p><p>  [12] 李毅夫.計算振蕩函數(shù)積分的新公式[J]. 數(shù)學的實踐與認識.1994,20(03):92-96.</p><p>  [13]李毅夫.一種新型高效的振蕩函數(shù)數(shù)值積分方法[J].計算數(shù)學.1992,14(04):506-512.</p><p>  [14] 林成森.數(shù)值計算方法(上)[M]. 北京:科學出版

69、社,2004:173-179.</p><p>  [15] 韓丹夫,吳慶標.數(shù)值計算方法[M].浙江:浙江大學出版社,2006:191-193.</p><p><b>  附錄</b></p><p>  程序1:三次樣條插值求積公式</p><p>  %此函數(shù)利用對f(x)做三次樣條插值的方法來實現(xiàn)形如f(x)*

70、sin(m*x)的振蕩函數(shù)的積分,其中m為很大的整數(shù)。</p><p>  function Integral_Value=ZL_Spline31_Integral(part_integral_f,a,b,m,n)</p><p>  %input___part_integral_f為被積振蕩函數(shù)的一部分</p><p>  %input___a為積分下限,b為積分

71、上限</p><p>  %input___m為振蕩系數(shù)</p><p>  %input___n為等分數(shù)</p><p>  %output___Integral_Value為振蕩函數(shù)的積分值</p><p>  format long</p><p>  h=(b-a)/n;</p><p>

72、;  for j=1:n+1</p><p>  x(j)=a+(j-1)*h;</p><p><b>  end</b></p><p>  f=feval(part_integral_f,x);</p><p>  M=ZL_Spline_Inter_3_1(x',f);</p><p&

73、gt;  %f_1oder_a=-h/3*M(1)-h/6*M(2)+(f(2)-f(1))/h</p><p>  %f_1oder_b=diff(part_integral_f,1,b);</p><p>  %f_1oder_a=1;</p><p>  %f_1oder_b=1;</p><p>  f_1oder_a=(feval(

74、part_integral_f,a+h)-feval(part_integral_f,a-h))/(2*h);</p><p>  f_1oder_b=(feval(part_integral_f,b+h)-feval(part_integral_f,b-h))/(2*h);</p><p>  A=-feval(part_integral_f,b)*cos(m*b)/m+feval(pa

75、rt_integral_f,a)*cos(m*a)/m+f_1oder_b*sin(m*b)/m^2-f_1oder_a*sin(m*a)/m^2+M(n+1)*cos(m*b)/m^3-M(1)*cos(m*a)/m^3;</p><p>  B=-2*sin(m*h/2)/(m^4*h);</p><p><b>  S_Sum=0;</b></p>

76、<p><b>  for j=1:n</b></p><p>  S_Sum=S_Sum+(M(j+1)-M(j))*cos(m*(x(j)+x(j+1))/2);</p><p><b>  end</b></p><p>  Integral_Value=A+B*S_Sum;</p><

77、;p><b>  程序2:求的程序</b></p><p>  function [M]=ZL_Spline_Inter_3_1(x,y)</p><p>  %input___(x,y)為被插值的離散點</p><p>  %output___M為彎矩</p><p>  [n m]=size(x);</p

78、><p>  for(j=1:(n-1))</p><p>  h(j)=x(j+1)-x(j);</p><p>  fCF(j)=(y(j+1)-y(j))/ h(j);</p><p><b>  end</b></p><p><b>  LMD(1)=1;</b><

79、;/p><p><b>  u(n-1)=1;</b></p><p>  d(1)=6*(fCF(1)-3)/h(1);</p><p>  d(n)=6*(-4.0-fCF(n-1))/h(n-1);</p><p>  for(j=1:(n-2))</p><p>  u(j)=h(j)/(h(

80、j)+h(j+1));</p><p>  LMD(j+1)=h(j+1)/(h(j)+h(j+1));</p><p>  d(j+1)=6*(fCF(j+1)-fCF(j))/(h(j)+h(j+1));</p><p><b>  end</b></p><p>  for(j=1:n)</p>&l

81、t;p><b>  A(j,j)=2;</b></p><p><b>  end</b></p><p>  for(j=1:(n-1))</p><p>  A(j,j+1)=LMD(j);</p><p>  A(j+1,j)=u(j);</p><p><

82、b>  end</b></p><p>  M=inv(A)*d';</p><p>  程序3:計算表4.1第一列中數(shù)據(jù)</p><p>  function [Spline31_Int_V,abs_Error]=main_Spline31</p><p>  format long</p><

83、p>  Exct=-0.2598125353459;</p><p>  for i=1:11</p><p>  Spline31_Int_V(i)=ZL_Spline31_Integral('f_ex_cos10x',-pi,pi,90,2^i);</p><p>  abs_Error(i)=abs(Spline31_Int_V(i)-E

84、xct);</p><p><b>  end</b></p><p>  Spline31_Int_V</p><p><b>  abs_Error</b></p><p>  程序4:分段線性插值求積公式</p><p>  %此函數(shù)利用對f(x)做分段線性插值的方法來

85、實現(xiàn)形如f(x)*sin(m*x)的振蕩函數(shù)的積分,其中m為很大的整數(shù)。</p><p>  function Integral_Value=ZL_LinearInter(part_integral_f,a,b,m,n)</p><p>  %input___part_integral_f為被積振蕩函數(shù)的一部分</p><p>  %input___a為積分下限,b

86、為積分上限</p><p>  %input___m為振蕩系數(shù)</p><p>  %input___n為等分數(shù)</p><p>  %output___Integral_Value為振蕩函數(shù)的積分值</p><p>  format long</p><p>  h=(b-a)/n;</p><p

87、>  for j=1:n+1</p><p>  x(j)=a+(j-1)*h;</p><p><b>  end</b></p><p>  Sum_Value=0;</p><p><b>  for j=1:n</b></p><p>  A(j)=(feval

88、(part_integral_f,x(j+1))-feval(part_integral_f,x(j)))/h;</p><p>  B(j)=(x(j+1)*feval(part_integral_f,x(j))-x(j)*feval(part_integral_f,x(j+1)))/h; </p><p>  Sum_Value=Sum_Value+A(j)*((sin(m*x(j+1

89、))-sin(m*x(j)))/m-x(j+1)*cos(m*x(j+1))+x(j)*cos(m*x(j)))-B(j)*(cos(m*x(j+1))-cos(m*x(j)));</p><p><b>  end</b></p><p>  Integral_Value=Sum_Value/m;</p><p>  程序5:計算表4.1第二

90、列中數(shù)據(jù)</p><p>  function [LinearInter_Int_V,abs_Error]=main_LinearInter</p><p>  format long</p><p>  Exct=-0.2598125353459;</p><p>  for i=1:11</p><p>  Lin

91、earInter_Int_V(i)=ZL_LinearInter('f_ex_cos10x',-pi,pi,90,2^i);</p><p>  abs_Error(i)=abs(LinearInter_Int_V(i)-Exct);</p><p><b>  end</b></p><p>  LinearInter_Int

92、_V</p><p><b>  abs_Error</b></p><p>  程序6:分段拋物插值求積公式</p><p>  %此函數(shù)利用對f(x)做分段拋物插值的方法來實現(xiàn)形如f(x)*sin(m*x)的振蕩函數(shù)的積分,其中m為很大的整數(shù)。</p><p>  function Integral_Value=ZL

93、_ParabolicInter(part_integral_f,a,b,m,n)</p><p>  format long</p><p>  h=(b-a)/n;</p><p>  for j=1:n+1</p><p>  x(j)=a+(j-1)*h;</p><p><b>  end</b

94、></p><p>  Integral_Value=0;</p><p><b>  for j=1:n</b></p><p>  A(j)=(2*feval(part_integral_f,x(j+1))-4*feval(part_integral_f,x(j)+h/2)</p><p>  +2*feval

95、(part_integral_f,x(j)))/h^2;</p><p>  B(j)=((4*h+8*x(j))*feval(part_integral_f,x(j)+h/2)-(h+4*x(j))*feval(part_integral_f,x(j+1))-(3*h+4*x(j))*feval(part_integral_f,x(j)))/h^2;</p><p>  C(j)=((2

96、*x(j)^2+h*x(j))*feval(part_integral_f,x(j+1))</p><p>  -(4*x(j)^2+4*h*x(j))*feval(part_integral_f,x(j)+h/2)</p><p>  +(2*x(j)^2+3*h*x(j)+h^2)*feval(part_integral_f,x(j)))/h^2 Integral_Value=Inte

97、gral_Value+A(j)*((2*cos(m*x(j+1))-2*cos(m*x(j)))/m^3 +(2*x(j+1)*sin(m*x(j+1))-2*x(j)*sin(m*x(j)))/m^2-(x(j+1)^2*cos(m*x(j+1))-x(j)^2*cos(m*x(j)))/m) +B(j)*((x(j)*cos(m*x(j))-x(j+1)*cos(m*x(j+1)))/m +(sin(m*x(j+1))-sin(m*

98、x(j)))/m^2)+C(j)*(cos(m*x(j))-cos(m*x(j+1)))/m; </p><p><b>  end</b></p><p>  程序7:計算表4.1第三列中數(shù)據(jù)</p><p>  function [Para_Int_V,abs_Error]=main_Para</p><p>  f

99、ormat long</p><p>  Exct=-0.2598125353459;</p><p>  for i=1:11</p><p>  Para_Int_V(i)=ZL_ParabolicInter('f_ex_cos10x',-pi,pi,90,2^i);</p><p>  abs_Error(i)=abs(

100、Para_Int_V(i)-Exct);</p><p><b>  end</b></p><p>  Para_Int_V</p><p><b>  abs_Error</b></p><p>  程序8:復化九點高斯—勒讓德求積公式</p><p>  %此函數(shù)利用復

101、化九點高斯,勒讓德積分方法來實現(xiàn)形如f(x)*sin(m*x)的一維振蕩函數(shù)的積分,其中m為很大的整數(shù)。也可以用來求更一般的一維f(x)函數(shù)的積分。</p><p>  function GL_int_value=ZL_Cplx_9Gauss_Legendre(Oscillation_fun,a,b,n)</p><p>  %input___Oscillation_fun為一維振蕩被積函

102、數(shù),可以為更一般的函數(shù)</p><p>  %input___a為積分下限</p><p>  %input___b為積分上限</p><p>  %input___n為剖分段數(shù)</p><p>  %output___GL_int_value為復化的九點Gauss_Legendre積分值</p><p>  form

103、at long</p><p>  h=(b-a)/n;</p><p><b>  h_2=h/2;</b></p><p>  xk=[0.9681602395 -0.9681602395 0.8360311073 -0.8360311073 0.6133714327 -0.6133714327 0.3242534234 -0.324253

104、4234 0];%高斯求積節(jié)點</p><p>  Ak=[0.0812743884 0.0812743884 0.1806481607 0.1806481607 0.2606106964 0.2606106964 0.3123470770 0.3123470770 0.3302393550];%高斯求積系數(shù)</p><p>  for j=1:n+1</p><

105、;p>  x(j)=a+(j-1)*h;</p><p><b>  end</b></p><p><b>  for j=1:n</b></p><p><b>  for i=1:9</b></p><p>  Value(j,i)=Ak(i)*feval(Osci

106、llation_fun,x(j)+h_2+h_2*xk(i));</p><p><b>  end</b></p><p><b>  end</b></p><p>  GL_int_value=h_2*sum(sum(Value));</p><p>  程序9:計算表4.1第四列中數(shù)據(jù)<

107、;/p><p>  function [Cplx9GL_Int_V,abs_Error,Rerror]=main_Cplx9GL</p><p>  format long</p><p>  Exct=-0.2598125353459;</p><p>  for i=1:11 </p><p>  Cplx9GL

108、_Int_V(i)=ZL_Cplx_9Gauss_Legendre('f_expcossin',-pi,pi,2^i);</p><p>  abs_Error(i)=abs(Cplx9GL_Int_V(i)-Exct);</p><p><b>  end</b></p><p>  Cplx9GL_Int_V</p&g

溫馨提示

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

評論

0/150

提交評論