免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
python做微積分

我們最開(kāi)始使用python基本都是做數(shù)值計(jì)算的,而在處理數(shù)學(xué)問(wèn)題時(shí)常常也需要進(jìn)行一些符號(hào)運(yùn)算,python能否勝任這種需求呢?當(dāng)然是可以的,我們就以微積分為例,來(lái)見(jiàn)識(shí)一下python處理符號(hào)運(yùn)算和數(shù)值運(yùn)算的雙重能力。需要安裝一款python的第三方庫(kù)sympy,可以直接使用pip3 install sympy來(lái)進(jìn)行安裝,也可以通過(guò)其他方式安裝。本文無(wú)意于讓大學(xué)生完成高等數(shù)學(xué)作業(yè)時(shí)投機(jī)取巧,不過(guò)作為驗(yàn)證自己計(jì)算是否正確的工具倒是不錯(cuò)。sympy更有意義的用途是用于科學(xué)計(jì)算模擬系統(tǒng)運(yùn)行狀況。

1. 變量定義

數(shù)學(xué)問(wèn)題中,我們常常需要定義一些自變量,然后使用一組映射作用在這些自變量上構(gòu)成數(shù)學(xué)方程。sympy提供了數(shù)學(xué)符號(hào)相關(guān)的數(shù)據(jù)結(jié)構(gòu)Symbol,在進(jìn)行符號(hào)運(yùn)算之前需要先定義一些自變量符號(hào)。單個(gè)符號(hào)直接使用sympy.Symbol(),多個(gè)符號(hào)就可以使用sympy.symbols()來(lái)進(jìn)行定義。

符號(hào)變量的定義

從以上演示可以看出,sympy中定義了一個(gè)sympy.core.symbol.Symbol類,這個(gè)類就是sympy進(jìn)行符號(hào)運(yùn)算最基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)。

2. 微積分基礎(chǔ)

事實(shí)上,sympy可以完成高等數(shù)學(xué)中幾乎所有的操作,當(dāng)然也包括一些基礎(chǔ)的運(yùn)算。而計(jì)算微積分的時(shí)候我們常常需要具備一些數(shù)學(xué)運(yùn)算的基礎(chǔ),比如極限、表達(dá)式展開(kāi)和合并等等,這里順便演示使用sympy一下。

微積分基礎(chǔ)

從以上演示看出,sympy在處理極限、表達(dá)式展開(kāi)和化簡(jiǎn)等數(shù)學(xué)基礎(chǔ)運(yùn)算時(shí)非常直觀,基本與人工手動(dòng)計(jì)算的形式一致。如果你有一個(gè)很復(fù)雜的帶有同類項(xiàng)的表達(dá)式,可以使用sympy.simplify函數(shù)試試。

3. 一元微積分

我們先來(lái)看看一元微積分,即只有一個(gè)自變量的微積分。由于普通的python庫(kù)基本都是進(jìn)行數(shù)值計(jì)算的,因此在構(gòu)建符號(hào)函數(shù)時(shí)不能直接使用,比如numpy;而應(yīng)該使用sympy中提供的基礎(chǔ)符號(hào)函數(shù)來(lái)構(gòu)建復(fù)雜的符號(hào)函數(shù),比如sympy.sin(), sympy.exp()等等。計(jì)算符號(hào)函數(shù)導(dǎo)數(shù)的方法也很簡(jiǎn)單,直接使用sympy.diff(),而計(jì)算積分可以直接調(diào)用sympy.integrate()函數(shù)。

一元微積分

一元微積分的符號(hào)運(yùn)算以及對(duì)應(yīng)的數(shù)值運(yùn)算如上圖演示。大家可以發(fā)現(xiàn),在計(jì)算不定積分時(shí),省略了一個(gè)常數(shù)項(xiàng)。通常在未給定初值的情況下,我沒(méi)也不關(guān)心這個(gè)常數(shù)項(xiàng),與日常計(jì)算微積分的情形基本一致。

4. 多元微積分

了解了一元微積分的計(jì)算,自然就更想見(jiàn)識(shí)一下多元微積分的計(jì)算,sympy在這方面也是非常地強(qiáng)大。所使用的接口仍然是diff和integrate這兩個(gè)函數(shù)。通過(guò)變量與基礎(chǔ)函數(shù)的拼接所形成的復(fù)雜函數(shù)在sumpy中是一個(gè)sympy.core.add.Add對(duì)象,使用這個(gè)對(duì)象直接調(diào)用diff函數(shù)并指定自變量就可以求解對(duì)應(yīng)的偏導(dǎo)數(shù)。多重積分的計(jì)算與一元積分是相似的,只是需要傳入想要進(jìn)行積分運(yùn)算的符號(hào)自變量。

多元微積分

5. 微分方程

基本的微積分運(yùn)算都了解了,但是微積分中一類非常常見(jiàn)的問(wèn)題還是有必要演示一下,即微分方程的求解。sympy可以求解普通的方程或者方程組是理所當(dāng)然的,那么對(duì)于微分方程的求解是否也那么順利呢?sympy對(duì)方程組的求解函數(shù)與matlab是一致的,這對(duì)于從matlab遷移到python的朋友來(lái)說(shuō)是個(gè)很不錯(cuò)的消息。手動(dòng)解算過(guò)微分方程的朋友都應(yīng)該知道,微分方程的基礎(chǔ)是建立在一個(gè)未知函數(shù)的導(dǎo)數(shù)之上的,那么這個(gè)未知的函數(shù)該如何表示這是個(gè)問(wèn)題。在sympy中,使用sympy.Function()接口創(chuàng)建這個(gè)未知的函數(shù),然后利用這個(gè)函數(shù)構(gòu)建微分方程,使用dsolve求解。

微分方程

到此,使用sympy模塊進(jìn)行微積分符號(hào)和數(shù)值計(jì)算的演示完畢。最開(kāi)始我們處理這類問(wèn)題的首選是matplab,等到掌握sympy之后,就沒(méi)有再使用matlab的動(dòng)力了。sympy不僅是免費(fèi)的,而且輕量級(jí),使用過(guò)程與matlab一樣方便。本文的notebook版文件在github上的cnbluegeek/notebook倉(cāng)庫(kù)中共享,歡迎感興趣的朋友下載。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Python的武器庫(kù)07:sympy模塊
Python應(yīng)用 | 求解微積分(一)
用Python學(xué)數(shù)學(xué)之Sympy代數(shù)符號(hào)運(yùn)算
微分方程誕生過(guò)程中有哪些不可繞過(guò)的名字?
第9章 MATLAB符號(hào)計(jì)算
高等數(shù)學(xué)被Python輕松化解?數(shù)學(xué):我這么不要面子嗎?
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服