国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Python在微積分實(shí)驗(yàn)中的應(yīng)用

2018-02-14 04:03徐明
關(guān)鍵詞:積分數(shù)學(xué)實(shí)驗(yàn)微分

徐明

【摘要】 Python語言具有強(qiáng)大的科學(xué)計算功能,將該語言引入到數(shù)學(xué)實(shí)驗(yàn)教學(xué)有重要意義.選取高等數(shù)學(xué)教材中的實(shí)例,通過Python語言分別實(shí)現(xiàn)了對函數(shù)求解微分和積分的實(shí)驗(yàn).結(jié)果表明,Python語言能夠用簡潔的命令語句求解各類常見的微分和積分.

【關(guān)鍵詞】 Python;數(shù)學(xué)實(shí)驗(yàn);微分;積分

一、引 言

Python是一種解釋型、面向?qū)ο蟮母呒壋绦蛟O(shè)計語言.近年來,Python語言在數(shù)學(xué)建模和各類算法大賽中的應(yīng)用備受關(guān)注.與傳統(tǒng)的數(shù)學(xué)軟件MATLAB相比,MATLAB的大部分常用功能都可以在Python中找到相應(yīng)的擴(kuò)展庫(或模塊)來實(shí)現(xiàn).此外,用Python做科學(xué)計算有自身的優(yōu)勢 [1] :一方面,MATLAB是一款商用軟件,且價格昂貴,而Python及其絕大多數(shù)擴(kuò)展庫則是完全免費(fèi)的.另一方面,相對于MATLAB等數(shù)學(xué)軟件,Python具有強(qiáng)大的網(wǎng)絡(luò)通信等功能,使開發(fā)者更容易實(shí)現(xiàn)完整的應(yīng)用程序開發(fā).鑒于Python語言強(qiáng)大的科學(xué)計算功能和廣闊的應(yīng)用前景,將Python引入到數(shù)學(xué)實(shí)驗(yàn)教學(xué)具有特殊的意義.下面僅從求解微分和積分方面介紹Python在數(shù)學(xué)實(shí)驗(yàn)教學(xué)方面的應(yīng)用.

二、相關(guān)實(shí)驗(yàn)

求解微分和積分是高等數(shù)學(xué)實(shí)驗(yàn)的基本內(nèi)容,也是進(jìn)行其他數(shù)學(xué)實(shí)驗(yàn)的重要基礎(chǔ) [2] .本實(shí)驗(yàn)分為兩部分:求解函數(shù)的微分(或?qū)?shù));求解函數(shù)的積分.實(shí)驗(yàn)的目的是掌握相關(guān)命令求解函數(shù)微分和積分.實(shí)驗(yàn)用到的例子均來自同濟(jì)大學(xué)編寫的《高等數(shù)學(xué)》 [3,4] 教材(第七版).本實(shí)驗(yàn)的實(shí)驗(yàn)環(huán)境是Windows10+Python3.5,最主要的工具是Python中符號計算模塊SymPy.

(一)求解函數(shù)的微分或?qū)?shù)

求解函數(shù)的微分關(guān)鍵是求導(dǎo)運(yùn)算,因此,這里僅討論求解函數(shù)的導(dǎo)數(shù),它可以通過SymPy模塊中的命令diff來實(shí)現(xiàn).diff命令的基本語法是:diff(f,x,kwargs),其中f表示待求導(dǎo)的函數(shù),x為函數(shù)的求導(dǎo)自變量,kwargs表示求導(dǎo)運(yùn)算的其他設(shè)置,如階數(shù)等.下面從求解單變量函數(shù)的導(dǎo)數(shù)和多變量函數(shù)的偏導(dǎo)數(shù)兩方面進(jìn)行實(shí)驗(yàn).

先看diff命令用于單變量函數(shù)求導(dǎo)的例子.

例1 ??f(x)=x3+4cosx-sin π 2 ,求f′(x)及f′? π 2?Symboln@@

為了有效地調(diào)用相關(guān)命令,在程序開始時需先導(dǎo)入SymPy模塊.代碼如下:

from sympy import *

另外,在進(jìn)行符號運(yùn)算前還需先指定符號變量.代碼如下:

x=symbols(′x′)

接著,用diff命令求解f′(x),代碼如下:

diff(x**3+4*cos(x)-sin(pi/2),x)

輸出結(jié)果為:3*x**2-4*sin(x),

即f′(x)=3x2-4sinx.

最后,計算f′? π 2? ,代碼如下:

expr1=diff(x**3+4*cos(x)-sin(pi/2),x)

expr1.subs(x,pi/2)

輸出結(jié)果為:3*x**2-4*sin(x),

即f′? π 2? =-4+ 3π2 4 .

diff命令還可以用于對多變量函數(shù)求偏導(dǎo).

(二)求解函數(shù)的積分

求解函數(shù)的積分,可以使用SymPy模塊中的命令integrate,其基本語法是:integrate(f,x),或integrate(f,(x,a,b)),其中f表示待求積分的函數(shù),x表示函數(shù)的自變量,a,b分別表示積分上下限.下面從求解一元函數(shù)的積分和多元函數(shù)的重積分兩方面進(jìn)行實(shí)驗(yàn).

先看求解一元積分的例子.

例2 ??分別計算不定積分∫e ?x ?dx和定積分∫1 0e ?x ?dx

先調(diào)入SymPy模塊,并指定符號變量.代碼為:

from sympy import*;x=symbols(′x′)

使用integrate命令求不定積分∫e ?x ?dx,代碼為:

integrate(exp(sqrt(x)),x)

輸出結(jié)果為:2*sqrt(x)*exp(sqrt(x))-2*exp(sqrt(x)),即 2 x e ?x ?-2e ?x ?.

使用integrate命令也可求定積分∫1 0e ?x ?dx,代碼為:

integrate(exp(sqrt(x)),(x,0,1))

輸出結(jié)果為:2.

另外,使用integrate命令也可以求反常積分.例如,計算反常積分∫ +∞ ?-∞ ?1 1+x2 dx,可使用命令integrate(1/(1+x**2),(x,-oo,oo)),其中,兩個o表示無窮.

重積分的計算比一元積分的計算往往要復(fù)雜得多,下面僅對求解二重積分進(jìn)行討論.

如果積分區(qū)域是矩形,重積分的計算與一般積分的計算類似,例如,求解

D xydσ,其中D是由直線

ySymbol}@@1,xSymbol}@@2以及兩個坐標(biāo)軸圍成的矩形區(qū)域.此時,可直接使用integrate命令求解積分為:integrate(x*y,(x,0,1),(y,0,2)).如果積分區(qū)域不是矩形,用integrate往往不能一次性地直接計算出結(jié)果,而需要將重積分轉(zhuǎn)化為累次積分再計算.

三、小 結(jié)

綜上可知,恰當(dāng)利用Python的相關(guān)模塊SymPy,能夠用簡潔的命令語句求解出常見的函數(shù)微分和積分.與傳統(tǒng)的數(shù)學(xué)軟件相比,Python目前在計算復(fù)雜積分方面的功能還不夠強(qiáng)大.但Python是純粹的免費(fèi)軟件,且在數(shù)值計算方面的能力仍在不斷提升.這里,對Python在微積分實(shí)驗(yàn)教學(xué)中的應(yīng)用做了積極探索.可以看出,此類數(shù)學(xué)實(shí)驗(yàn)除了有助于學(xué)生理解和應(yīng)用所學(xué)數(shù)學(xué)知識,對于學(xué)生領(lǐng)會Python語言本身的編程思想也有一定幫助.

【參考文獻(xiàn)】

[1]張若愚.Python科學(xué)計算[M].北京:清華大學(xué)出版社,2012.

[2]程村.微積分實(shí)驗(yàn)教學(xué)模式研究[J].數(shù)學(xué)學(xué)習(xí)與研究:教研版,2015(21):24-25.

[3]同濟(jì)大學(xué)數(shù)學(xué)系.高等數(shù)學(xué)(上冊):第七版[M].北京:高等教育出版社,2014.

[4]同濟(jì)大學(xué)數(shù)學(xué)系.高等數(shù)學(xué)(下冊):第七版[M].北京:高等教育出版社,2014.

猜你喜歡
積分數(shù)學(xué)實(shí)驗(yàn)微分
擬微分算子在Hp(ω)上的有界性
上下解反向的脈沖微分包含解的存在性
微“積分”:構(gòu)建活力班級的一把金鑰匙
互聯(lián)網(wǎng)+背景下數(shù)學(xué)試驗(yàn)課程的探究式教學(xué)改革
積分激勵機(jī)制在生物課堂教學(xué)《青春期》中的運(yùn)用
淺談高等數(shù)學(xué)教學(xué)過程中的教育思想
借助微分探求連續(xù)函數(shù)的極值點(diǎn)
對不定積分湊微分解法的再認(rèn)識
阳朔县| 铜山县| 长海县| 武义县| 中阳县| 岐山县| 井研县| 平湖市| 江津市| 永年县| 兖州市| 印江| 朝阳区| 双城市| 临颍县| 鱼台县| 巴彦淖尔市| 新巴尔虎左旗| 罗定市| 廉江市| 浙江省| 连南| 北碚区| 仪征市| 碌曲县| 汤原县| 嘉义县| 贺州市| 阿尔山市| 高淳县| 略阳县| 乌兰察布市| 文山县| 西贡区| 沾化县| 沙坪坝区| 新竹市| 阳泉市| 兴海县| 老河口市| 通许县|