

【摘要】微積分是大學(xué)基礎(chǔ)數(shù)學(xué)中的一門主要理論課程,傳統(tǒng)的微積分強調(diào)基本定義、定理及其證明,導(dǎo)致這門課程的專業(yè)服務(wù)性價值沒有很好地體現(xiàn)出來.本文以微積分中的泰勒公式在計算機專業(yè)中的應(yīng)用為例,對微積分的專業(yè)化探索起到拋磚引玉的效果.
【關(guān)鍵詞】微積分;專業(yè)化;泰勒公式
【基金項目】項目名稱:上海市高校青年教師培養(yǎng)資助計劃(高校線性代數(shù)課程教學(xué)專業(yè)化研究);項目編號:ssy11021.
微積分是大學(xué)基礎(chǔ)數(shù)學(xué)中的一門主要理論課程,在普通高等院校本科生各專業(yè)中普遍開設(shè),在培養(yǎng)具有良好數(shù)學(xué)素質(zhì)的應(yīng)用型人才方面起著特別重要的作用.因此,微積分的教學(xué)內(nèi)容和方向一直是高校數(shù)學(xué)教師們十分關(guān)心的問題.
傳統(tǒng)的微積分教學(xué)偏重自身的理論體系,強調(diào)微積分的基本定義、定理及其證明,教學(xué)內(nèi)容層層遞進,邏輯性非常強,學(xué)生可以學(xué)到完整的微積分知識體系,但由于教學(xué)中缺乏與專業(yè)相關(guān)的內(nèi)容,各種版本教材甚少與學(xué)生所學(xué)專業(yè)領(lǐng)域相關(guān),導(dǎo)致這門課程的專業(yè)服務(wù)性價值沒有很好地體現(xiàn)出來.因此,在統(tǒng)一教材的基礎(chǔ)上,開發(fā)出具有專業(yè)特色的微積分教學(xué)模塊變得尤為重要,本文正是對微積分在計算機專業(yè)的教學(xué)中的應(yīng)用進行探索.
本文介紹計算機是如何計算三角函數(shù)和反三角函數(shù)的,計算機只能計算加法,其他形式的運算(減、乘、除等),都要轉(zhuǎn)換為加法進行運算.對三角函數(shù)的求解需要將三角函數(shù)轉(zhuǎn)換為多項式的運算,泰勒公式提供了理論依據(jù).
泰勒(Taylor)中值定理:如果函數(shù)f(x)在含有x0的某個開區(qū)間(a,b)內(nèi)具有直到(n+1)階的導(dǎo)數(shù),則對任一x∈(a,b),f(x)可以表示為(x-x0)的一個n次多項式與一個余項Rn(x)之和:f(x)=f(x0)+f′(x0)(x-x0)+f″(x0)2!(x-x0)2+…+f(n)(x0)n!(x-x0)n+Rn(x),
其中Rn(x)=f(n+1)(ξ)(n+1)!(x-x0)n+1(ξ在x0與x之間).
f(x)=∑nk=0f(k)(x0)k!(x-x0)k+Rn(x)
稱為f(x)按(x-x0)的冪展開的帶有拉格朗日余項的n階泰勒公式,而Rn(x)的表達式稱為拉格朗日余項.
在泰勒公式中,如果取x0=0,則ξ在0和x之間.因此,可以令ξ=θx(0<θ<1),從而泰勒公式變成較簡單的形式,即所謂的帶有拉格朗日型余項的麥克勞林(Maclaurin)公式:
f(x)=f(0)+f′(0)x+f″(0)2!x2+…+f(n)(0)n!xn+f(n+1)(θx)(n+1)!xn+1(0<θ<1),
f(x)=f(0)+f′(0)x+f″(0)2!x2+…+f(n)(0)n!xn+o(xn).
由上式可以得到近似公式:
f(x)≈f(0)+f′(0)x+f″(0)2!x2+…+f(n)(0)n!xn.
從泰勒中值定理可以知道,如果函數(shù)f(x)在含有x0的某個開區(qū)間(a,b)內(nèi)具有直到(n+1)階的導(dǎo)數(shù),就可以將其求解轉(zhuǎn)換為多項式進行計算,求解的精度取決于函數(shù)多項式展開的階數(shù),并且誤差為拉格朗日余項的值,這樣為三角函數(shù)的計算機數(shù)值求解提供了方法,我們可以將三角函數(shù)用泰勒公式展開,然后轉(zhuǎn)換為多項式進行求解.
本文以正弦函數(shù)為例,介紹求解過程,sin(x)展開為帶有拉格朗日型余項的n階麥克勞林(Maclaurin)公式:
sin(x)=x-x33!+x55!-…+(-1)m-1x2m-1(2m-1)!+R2m,
其中誤差R2m為R2m(x)=sinθx+(2m+1)π2(2m+1)!x2m+1=(-1)m-1cosθx(2m+1)!x2m+1(0<θ<1).
這樣我們就可以根據(jù)需要的精度對sin(x)進行展開,因為展開的階數(shù)越多精度越高,但是,運算的時間就會更長,因為sin(x)等三角函數(shù)是計算機數(shù)值求解中常用的函數(shù),在一個求解過程中會很多次地使用,同時,很多計算是有實時性要求的,就是說一個計算要在規(guī)定的時間內(nèi)執(zhí)行完成,這樣就需要找到合適的階數(shù)對正弦函數(shù)進行展開.
下面本文以C語言為例,講解C語言實現(xiàn)sin(x)的過程.
#include
#include
#define COUNT 3///計算的次數(shù),次數(shù)越多,精度越高,為3時,正好是5階
///求n的階乘,輸入n,返回n的階乘
int factorial(int_n)
{
///定義返回值,當(dāng)n小于等于1時,初值為1
int result=1;
while(_n>1)
{
result*=_n;
_n-=1;
}
return result;///返回計算結(jié)果
}
//#define M_PI3.14159265358979323846/*pi*/定義在math.h中
///正弦函數(shù),輸入為角度值,為簡化處理,輸入的值限制在[0,90]范圍
double sin(double_arc)
{
///角度轉(zhuǎn)換為弧度
_arc=(_arc*M_PI)/180;
///返回結(jié)果變量,為簡化計算,初值為傳入的弧度值
double result=_arc;
///循環(huán)進行計算,每一次循環(huán),精度會增加
for(int i=1,sign=-1;i { int orderNumer=2*i+1;///orderNumer為計算的階數(shù),在正弦函數(shù)中,偶數(shù)項為0,只需要計算奇數(shù)項的值 _arc+=sign*(1.0/factorial(orderNumer)*pow(_arc,orderNumer)); } ///當(dāng)COUNT=3時,以上循環(huán)等價于下面的計算公式 ///result=_arc-(1.0/factorial(3))*pow(_arc,3)+(1.0/factorial(5))*pow(_arc,5); return result;///返回計算結(jié)果 } 以上是用C語言實現(xiàn)的正弦函數(shù)的算法代碼,可以通過COUNT變量控制求解的精度,讓學(xué)生更加深刻地理解泰勒公式的含義與應(yīng)用,其他的三角函數(shù)和反三角函數(shù)可以通過類似的方法進行計算,本文不再進行展開. C語言是計算機專業(yè)的一門基礎(chǔ)編程語言,通過C語言實現(xiàn)求解過程,可以使計算機專業(yè)的學(xué)生更深入地了解泰勒公式及其表達的含義,以及結(jié)合自己的專業(yè)知識運用泰勒公式,提高學(xué)習(xí)的興趣;更進一步,可以推廣到將微積分的知識應(yīng)用到計算機專業(yè)的學(xué)習(xí)中,為微積分專業(yè)化探索起到拋磚引玉的作用. 微積分是大學(xué)數(shù)學(xué)的一門基礎(chǔ)課程,本文通過其中的一個知識點泰勒公式,對泰勒公式在計算機專業(yè)的應(yīng)用進行展開,豐富了微積分課程與計算機專業(yè)的相關(guān)內(nèi)容,更好地體現(xiàn)了這門課程的專業(yè)服務(wù)性價值. 【參考文獻】 [1]同濟大學(xué)數(shù)學(xué)系.高等數(shù)學(xué)·上冊[M].北京:高等教育出版社,2007. [2]尹雪.線性代數(shù)教學(xué)專業(yè)化探索[J].數(shù)學(xué)學(xué)習(xí)與研究,2013(5):16.