第24卷第4期2010年7月
甘肅聯合大學學報(自然科學版)
ju1.2010
文章編號
基於matlab的復合梯形數值積分法的研究與實驗
劉小偉(江西教育學院數學與電腦科學系。江西南昌330029)
摘要:介紹了有關數值求積公式的定義和復合梯形求積法的基本原理,給出了實現復合梯形求積法的mat-
lab原始檔,並結合幾個算例驗證了復合梯形求積法的基本原理.供相關工程技術人員和科學研究者在利用
復合梯形求積法解決那些用微積分方法所不能求解的積分問題時作參考.
關鍵詞:求積公式;梯形求積;復合梯形求積法;matlab;數學實驗
中圖分類號:o241.4
文獻標識碼:a
o引言1.1 幾個定義與定理
如文獻[1]中所述,按微積分基本定理,只要定義1嘲把形如l廠
提供被積函式廠(z)的原函式f(z),(z)一廠(z),
稱為機械求積公式,其中x 稱為求積節點,a 稱便有下列求積公式
為求積係數;若
r6i廠一f(口).
√aa 一f
不過在工程技術和科學研究中,如文獻e2]中所述,常常遇到如下情況:廠(z)的結構複雜,求原
嗇三一卜1)(篆zi—抖1)…(zi—)…
函式f(z)困難;廠(z)的原函式f(z)不能用初等其中則機械求積公函式表示;,(z)的精確表示式不知道,只給出了
式也稱為插值型求積公式.
一張由實驗提供的函式表,則其原函式f()沒
有意義.如婦,
定義2[。 ̄ref]一lo, )dx一∑a ̄f(xt)
, e,
,志志dz等.
為機械求積公式的餘項;稱r[,]=愛芊 。
(x)dx為插值型求積公式的餘項,其中,
()=面對這些微積分方法求積分的侷限性情況,
(jc一.to)—x1)…一 ),e∈(口,6).
要計算積分的準確值都是十分困難的,這就要求定義3c。若機械求積公式對任意不高於次建立積分的近似計算方法,從而導致了所謂機械的代數多項式都準確地成立,而對於州卻不能準
求積方法的提出.例如土地管理資訊系統的圖斑確地成立,則稱該機械求積公式的代數精度為鞏
面積求算的梯形法求積公式和辛普森求積公式都定理l啪含有,l+1個節點x (忌=0,1,…,是基於解析幾何、使用面積元法推算出來的公式.
)的插值型求積公式的代數精度至少為 .
但是單獨的梯形公式是不會被用來作為數值積分定義4若積分區間[口,6]的等分數 —l
方法的,從而演化出了復合梯形求積法和變步長
的梯形積分方法.本文主要是研究復合梯形求積時,有兩點公式f,(z)婦≈[廠(口)+,(6)],
法的原理及其matlab實現的問題.
把該公式稱為梯形求積公式.
1數學理論
定理2[。若 (z)在[口,6]上連續,則梯形求積公式的餘項為r。[,]=一(6一口)。廠()/12,
收稿日期:2009一ll一12.
**專案:江西省高等學校教學研究省級立項課題(編號階段性成果.
作者簡介:劉小偉(1978一),男,江西吉安人,江西教育學院講師,主要從事計算機**實驗,計算機硬體設計,數字水印,無線通訊與網路研究.
第4期劉小偉:基於matlab的復合梯形數值積分法的研究與實驗21
其中 ∈[口,6].
1.2復合梯形求積法
如文獻e4]中所述,給定積分問題y—
if(x)dx,可以把區間ea,6]分為個相等的子
區間,在每個子區間上使用梯形公式得到
yl—一 [廠(xi)+廠(z鬥。)]一
(e),∈[z ,計 ].
於是有,
:fd一奎fxi+l
=i=1
魯奎i=1
篙廠(如果/()在區間[口,上連續,則開區間內必然
存在一點 ,使得
告∑ (8)一 (
從而有y一圳z—fd一奎一
騫一奎i=1h3,(8)一
,(口)+,(6)+2詈 +/h)]一謄代).於是近似的解為
y—一iff(x)dx≈妻e≈詈f(a)+廠(+廠(6)+
一b--a.
根據以上介紹的復合梯形的基本計算方法可知,如果積分區間劃分比較稠密,則計算結果相對可靠一些.
2數學實驗平台
如文獻[5]中所述,在這裡我們選用mat—lab構建數學實驗平台,下面簡要介紹mat-lab的功能及發展歷程、語言特點和積分函式.
的功能及發展歷程
如文獻[6]中所述,matlab是矩陣實驗室之意,除具備卓越的數值計算能力外,它還提供了專業水平的符號計算,文書處理,視覺化建模**和實時控制等功能.1980年,美國新墨西哥大學電腦科學系主任cleve著手編寫供學生使用的子程式介面程式,取名為
年,推出了matlab第乙個商業版本;1992年,推出mat
4.0版;1997年,推
出版;2000年,推出mat
6.0版;2004年,推出版;2008年,推出
版.的語言特點
如文獻et]中所述,我們之所以選擇mat—lab作為實驗平台是因為它具有如下語言特點:
(1)語言簡潔緊湊,使用方便靈活,庫函式極其豐富;(2)運算子豐富既具有結構化
的控制語句,又有物件導向程式設計的特性;(4)程式限制不嚴格,程式設計自由度大;(5)程式的可移植性很好的圖形功能強大;(7)功
能強大的工具箱.
積分函式
如文獻e8]中所述,matlab提供了一些積分函式供使用者使用.如符號積分函式int(f,)函式,對變數求不定積分函式廠對變數求從a到b的定積分.
3 數學試驗
3.1 算例內容及資料**
以matlab軟體為平台,利用復合梯形求
r2積法計算積分要求先用分
j--2
析方法給出計算結果,然後分別把區間分為1o、
和5000個小區間,比較計算精度情況.
3.2演算法設計的matlab檔案
3.2.1 編寫方法函式開啟matlab的edi-
tor編輯器,輸入以下語句,以檔名tx.iti儲存.
h一(b—a)/n;s一0;
一1)end
s一3.2.2編寫函式檔案開啟matlm3的editor
編輯器,輸入以下語句,以檔名ltd.m儲存.
tx(x)
f一3.2.3 編寫主函式開啟matl的editor編
輯器,輸入以下語句,以檔名tx_main.m儲存.[1isp(10子區間數值積分為
22甘肅聯合大學學報(自然科學版)第24卷
disp(2o子區間數值積分為子區間數值積分為
如、ie--dx和:;圭dx,結果分析如表2、表3、表
j 1 z
j 2 ii「
disp(8o子區間數值積分為子區間數值積分為 );s一
2,ioo)
4和表5,從而驗證了復合梯形求積法的積分原
理,而且更加證明了區間劃分越細積分精度越高、積分結果越接近於真實值的正確性.
表1復合梯形法計算
.disp( 160子區間數值積分為 );s一
2,160)
。真實值為16)
disp( 200子區間數值積分為 );s_200一tx(一2,
2,200)
disp( 320子區間數值積分為一2,
2,320)
disp(400子區間數值積分為一2,
2,400)
disp(800子區間數值積分為 );s_800一tx(一2,
2。800)
disp(1000子區間數值積分為 );s一1000=tx(一
2,2,1000)
子區間數值積分為一
2,2,5000)
採用符號法計算出積分的嚴格結果
disp(真實結果為
(x),一2,2)
tol=[s_10一s;s一2o—s;s一40一s;s一一
s;s_160一s;s_
200一s;s_
320一s;
s_400一s;s_
800一s;s
_100一s;s_5000一一s]
x=一一
曲線y一
on3.3實驗結論
為了便於分析問題,這裡把區間劃分情況與積分結果分別輸出,同時還給出了與真實結果的誤差,資料見表1.從表中也可以粗略的看出,區間劃分越細積分精度越高.本實驗的積分幾何意義為圖1中z軸以上的陰影部分面積減z軸以下
區域的陰影部分面積.
4其他算例
參照上述的復合梯形求積法的matlab實
現演算法檔案,計算定積分2韭如
、j 1
xj 1f。—
cos—(x)
曲怠『寫>『l
variablex
r2圖1定積分的幾何意義
j--z
表2復合梯形法計算真實值為
劃分積分
誤劃分積分誤度結果差度
結果差一一o.3o3e一一一一o.701e一一7
一一一一7
一一7表3復合梯形法計算塑
d (真實值為
劃分積分誤劃分積分
誤度結果差度
結果差一一一一6
一一6一一一一一一o.689e一9
第4期劉小偉:基於matlab的復合梯形數值積分法的研究與實驗23
表4復合梯形法計算 }dz(真實值為
5結束語
根據復合梯形求積法的基本原理,本文利用
matlab軟體提出了一種數值積分演算法,使復合梯形求積法能夠基於matlab得以實現,可以求解那些利用微積分方法所不能求解的積分問題,從而驗證了復合梯形求積法的原理.但所不足
表5復合梯形法計算i,-x-zdx(真實值為的是復合梯形法卻不能估計積分精度.要想控制j 2 lnx
_積分精度,可以採用變步長的梯形求積方法.參考文獻:
e13王能超.計算方法一演算法設計及其matlab實現
[m].北京:高等教育出版社.2005.
[23易大義.計算方法i-m].第2版.杭州:浙江大學出版
社,2002.
e3]賀俐.計算方法[m3.武漢:武漢水利電力大學出版
社,1998.
e43朱葉志.matlab數值分析與應用[m3.北京:機械
莒工業出版社,2009.
>e53劉小偉,盧昕.在高職高專開展數學實驗教學的研究
vaffablex
vafablex
ej3.甘肅聯合大學學報;自然科學版
89-92.
e6-1胡守信.基於matlab的數學實驗em3.北京:科學
出版社,2004.
昌1-73李秀珍.數學實驗i-m].北京:機械工業出版社,2008.>
e83王正林.精通matlab科學計算em3.北京:電子工
vafablex
variablex
業出版社,2007.
i1t2定積分rj1工clr、j1fx如、
手出和志如的幾何意義
實驗二基於Matlab的微分方程數值解
實驗二基於matlab的微分方程數值解 程式設計與除錯 2學時 一 實驗目的 掌握尤拉法 四階龍格庫塔法的程式編制方法。二 實驗方法及預習內容 對微分方程描述的控制系統,利用尤拉法 二階龍格 庫塔法 四階龍格 庫塔法分別編寫m檔案,進行數值計算和作圖。三 實驗內容 1 分別用尤拉法 二階龍格 庫塔法...
應用MATLAB進行實驗資料的數值積分
實驗資料的數值積分問題 用不同溫度下固體鉛的定壓熱容資料,求298k時的絕對熵。資料見下表 由熱力學方法可知,絕對熵與定壓熱容有如下關係 採用matlab來計算,這裡將最小二乘b樣條擬合法和三次樣條插值函式計算作比較,命令列程式如下 function entropy int clear all cl...
一些經典的數值分析 matlab程式
1 牛頓迭代法 此方法一般用來求函式的根,速度比較快,程式比較簡單。檔案newton.m 內容如下 n表示迭代次數,ret為返回值 function ret newton n format long y inline x 3 10 x 20 z inline 3 x 2 10 x0 1.5 for ...