最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Python練手:想在做數(shù)學(xué)題的時(shí)候摸魚嗎?

2022-03-06 18:36 作者:摸魚的橙汁  | 我要投稿

?


Python練手:想在做數(shù)學(xué)題的時(shí)候摸魚嗎?

舉個(gè)例子,這是《高等數(shù)學(xué)》(同濟(jì)大學(xué)版)中的一道課后練習(xí)題(1998年,數(shù)學(xué)三真題),不妨來一起解一下這道題吧。

首先,根據(jù)題意,結(jié)合旋轉(zhuǎn)體體積公式,列出等式:

%5Cpi%5Cint_%7B1%7D%5E%7Bt%7D%20f%5E2(x)dx%20%3D%20%5Cfrac%7B%5Cpi%20%7D%7B3%7D%20%5Bt%5E2f(t)-f(1)%5D

稍作化簡(jiǎn),即得:

3%5Cint_%7B1%7D%5E%7Bt%7D%20f%5E2(x)dx%20%3D%5Bt%5E2f(t)-f(1)%5D

兩邊分別求導(dǎo),得到一個(gè)微分方程:

3f%5E2(t)%20%3Dt%5E2f'(t)%2B2tf(t)

將這個(gè)微分方程化成帶有%5Cfrac%7Bdf%7D%7Bdt%7D%20的形式,并將%5Cfrac%7Bdf%7D%7Bdt%7D%20移到等式左側(cè):

%20%5Cfrac%7Bdf%7D%7Bdt%7D%20%3D%5Cfrac%7B3f%5E2(t)%7D%7Bt%5E2%7D-%5Cfrac%7B2f(t)%7D%7Bt%7D%20

之后,就可以使用程序來解這個(gè)微分方程了,

所以,求得為微分方程的通解為:

f(x)%3D%5Cfrac%7B1%7D%7Bx%5E2(C%2B%5Cfrac%7B1%7D%7Bx%5E3%7D)%7D%20

然后,使用程序化簡(jiǎn)一下這個(gè)表達(dá)式

化簡(jiǎn)后的表達(dá)式為:

f(x)%3D%5Cfrac%7Bx%7D%7BCx%5E3%2B1%7D%20

f(2)%3D%5Cfrac%7B2%7D%7B9%7D%20代入上式,使用代碼解方程:

解得C=1。

于是,所求最終的解為:

f(x)%3D%5Cfrac%7Bx%7D%7Bx%5E3%2B1%7D%20

最后,我們來對(duì)照一下給出的標(biāo)準(zhǔn)答案解題步驟。

相比于標(biāo)準(zhǔn)答案的換元、分離變量等操作,我們只需要幾句代碼就可以一步求解出微分方程的通解,代入特值的方程也可以使用代碼一步求解。

由此可見,我們?cè)谧鰯?shù)學(xué)題的時(shí)候,還是可以在一定程度上使用代碼來摸魚的,那些乏味的解方程、化簡(jiǎn)的過程,就直接交給電腦去做吧。當(dāng)然,一般情況下,還是建議大家手動(dòng)計(jì)算,畢竟是要鍛煉計(jì)算能力的,代碼只是起到輔助作用,建議大家只在驗(yàn)算答案的時(shí)候使用代碼輔助計(jì)算,而不是完全依靠電腦為我們解題運(yùn)算。

記得有一次上課小測(cè)驗(yàn),老師有事沒來上課,讓課代表發(fā)了一張全是定積分的練習(xí)題,要求我們盡快做完,只寫結(jié)果就行,然后就默默拿出手機(jī)打開瀏覽器,找了個(gè)帶有sympy庫的python在線編譯環(huán)境,然后就...你懂得...

如果想要在做數(shù)學(xué)題的時(shí)候摸魚,那不妨來試試使用Python解方程、化簡(jiǎn)多項(xiàng)式、求極限、微積分、計(jì)算矩陣吧。

雖然,對(duì)于數(shù)學(xué)運(yùn)算來說,我們或許可以選擇更加專業(yè)的工具,比如matlab、mathematica等軟件,但是,python依然具備這些專業(yè)軟件不具備的優(yōu)勢(shì)。

python開源免費(fèi),占用體積小,隨用隨取,比專業(yè)的數(shù)學(xué)軟件更加自由靈活輕便。如果想要在做數(shù)學(xué)題的時(shí)候摸魚,大可不必使用付費(fèi)的專業(yè)數(shù)學(xué)軟件。而且,學(xué)習(xí)使用python的數(shù)學(xué)運(yùn)算,也可以讓我們?cè)谝院蠓治銎渌麊栴}的時(shí)候大展身手。結(jié)合python爬取數(shù)據(jù)的優(yōu)勢(shì),我們也可以快速部署各種研究項(xiàng)目

本人非專業(yè)程序員,本文如有不足,還請(qǐng)海涵。


基礎(chǔ)知識(shí):數(shù)學(xué)運(yùn)算符

在正式開始之前,不妨先來了解一下Python當(dāng)中的數(shù)學(xué)運(yùn)算符(常用的算術(shù)運(yùn)算)。


① 加法 :+

② 減法:-

③ 乘法:*

④ 除法:/

⑤ 取余:%

⑥?整除://

⑦ 乘方:**


常用數(shù)學(xué)函數(shù):math庫

本文的主角是sympy函數(shù)庫,但在講解sympy函數(shù)庫之前,各位最好先了解一下Python自帶的math庫函數(shù)內(nèi)容,這樣有利于打基礎(chǔ)。當(dāng)然,如果各位對(duì)這部分不感興趣,也可以直接跳過,將文章下滑到sympy部分。


首先,需要導(dǎo)入math函數(shù)庫。(math庫是Python自帶的一個(gè)函數(shù)庫,主要包含基本的數(shù)學(xué)運(yùn)算函數(shù)與常數(shù)。)


求絕對(duì)值,例如|-2|。

以上兩種寫法都是可以的,輸出結(jié)果都是2。第一種方法是Python核心庫自帶的函數(shù),第二種方法則是調(diào)用math函數(shù)庫中的函數(shù)。


求開平方,例如求%5Csqrt%7B2%7D%20?。

以上兩種寫法都是可以的,輸出結(jié)果都是1.4142135623730951。第一種方法使用的是乘方的算法,開平方,其實(shí)就是計(jì)算一個(gè)數(shù)的0.5次方。


求階乘,例如求 5!。

輸出結(jié)果為120。


取整,例如對(duì)2.33和-2.33分別向上、向下取整。

首先是向上取整,這兩行代碼分別輸出3,-2。

接著是向下取整,這兩行代碼分別輸出2,-3。


四舍五入,例如對(duì)2.33333和6.66666分別進(jìn)行四舍五入,保留小數(shù)點(diǎn)后2位。

兩行代碼分別輸出2.33和6.67。這里的round函數(shù)是Python核心庫的函數(shù),非math庫函數(shù)。


數(shù)學(xué)常數(shù),一些具有代表性的常量。

使用好這些常量很重要,因?yàn)槟承┨囟ǖ暮瘮?shù)中需要使用到它們。


三角函數(shù),例如分別計(jì)算%5Cfrac%7B%5Cpi%20%7D%7B2%7D%20的正弦、余弦值,%5Cfrac%7B%5Cpi%20%7D%7B4%7D%20的正切值。

由于計(jì)算精度的問題,所以這三行代碼分別返回1.0,6.123233995736766e-17(6.123233995736766×10的-17次方),0.9999999999999999。

只需要使用四舍五入函數(shù)進(jìn)行結(jié)果近似即可,近似后返回1.0,0.0,1.0。


反三角函數(shù),例如分別求1的反正弦、反余弦、反正切值。

三行代碼分別返回小數(shù)形式的結(jié)果,依次為1.5707963267948966(接近π/2),0.0,0.7853981633974483(接近π/4)。

反余弦值,結(jié)果范圍在0到π之間。

反正弦值,結(jié)果范圍在-π/2到π/2之間。

反正切值,結(jié)果范圍-π/2π/2之間之間。

值得注意的是,math函數(shù)庫中的反三角函數(shù)只能返回小數(shù)形式的結(jié)果,如果想要返回π/n的形式的結(jié)果,則需要使用sympy函數(shù)庫,別著急,我們會(huì)在下文介紹它。


冪函數(shù),例如求2%5E3%20

這3種寫法都是可以的,其中前2種寫法會(huì)返回8,第3種則會(huì)返回8.0。


自然冪函數(shù),例如求e%5E2%20。

第1句代碼會(huì)返回7.38905609893065,這通常比math.e**2或pow(math.e,2)更精確。


對(duì)數(shù)函數(shù),例如求%5Clog_2%205%20,%5Clog_e%205%20,%5Clg%205

math.log(y,x)是通用的對(duì)數(shù)函數(shù)形式,用于表示%5Clog_x%20y%20。

當(dāng)僅賦予math.log函數(shù)一個(gè)參數(shù)時(shí),就會(huì)默認(rèn)底數(shù)為自然常數(shù)e。

使用專門的math.log2(x)與math.log10(x)函數(shù)要比math.log(x,2)與log(x,10)的運(yùn)算結(jié)果更加精確。


至此,本文已經(jīng)簡(jiǎn)單地介紹了math庫的常用數(shù)學(xué)函數(shù),如果有小伙伴想要了解完整的math函數(shù)庫內(nèi)容,請(qǐng)自行訪問:

https://docs.python.org/zh-cn/3/library/math.html


分?jǐn)?shù)運(yùn)算:fractions庫

在做數(shù)學(xué)題的時(shí)候,我們經(jīng)常會(huì)遇到分?jǐn)?shù)與分?jǐn)?shù)的各種運(yùn)算,而一般的計(jì)算器程序只會(huì)輸出小數(shù)結(jié)果,這讓我們非常不爽。于是,我們來嘗試一下使用Python進(jìn)行分?jǐn)?shù)的運(yùn)算。

首先,導(dǎo)入fractions函數(shù)庫,這是一個(gè)涉及分?jǐn)?shù)運(yùn)算的函數(shù)庫。

然后,使用Fraction函數(shù)創(chuàng)建一個(gè)分?jǐn)?shù)。比如,創(chuàng)建一個(gè)值為1/2的分?jǐn)?shù)。

以上創(chuàng)建分?jǐn)?shù)的3種方法均可:第一種是直接輸入數(shù)字形式的分子與分母,使用2個(gè)參數(shù);第二種是輸入文本形式的分?jǐn)?shù),記得加引號(hào);第三種是輸入小數(shù)形式的數(shù)字,會(huì)自動(dòng)轉(zhuǎn)化為分?jǐn)?shù)。

了解如何創(chuàng)建分?jǐn)?shù)以后,我們就可以進(jìn)行各種分?jǐn)?shù)的運(yùn)算了,比如計(jì)算114/514+514/114。

程序的輸出結(jié)果為Fraction(69298, 14649),也就是69298/14649。


前期準(zhǔn)備:符號(hào)運(yùn)算SymPy與IDE工具Jupyter

SymPy 是一個(gè)由 Python 語言編寫的符號(hào)計(jì)算庫。什么是符號(hào)計(jì)算 ?處理數(shù)學(xué)對(duì)象的計(jì)算稱為符號(hào)計(jì)算。在符號(hào)計(jì)算中,數(shù)學(xué)對(duì)象是精確表示的,而不是近似的,未計(jì)算的數(shù)學(xué)表達(dá)式會(huì)以符號(hào)形式保留。

還記得我們?cè)谏衔恼f的反三角函數(shù)嗎?不如來比較一下math庫與sympy庫函數(shù)的計(jì)算結(jié)果吧。

除了精確表示以外,sympy還可以進(jìn)行符號(hào)運(yùn)算,這對(duì)我們求解方程非常方便。

然而,Python自帶的核心函數(shù)庫中并不包括SymPy,因此,我們需要使用pip命令額外安裝一下sympy函數(shù)庫。

按下Win+R鍵,輸入“cmd”,打開“命令提示符”,輸入“pip install sympy”,按下回車鍵,等待命令執(zhí)行完成。

由于在做數(shù)學(xué)題的時(shí)候,我們需要反復(fù)計(jì)算,因此,我們最好使用一個(gè)具備良好的交互性和記錄功能的IDE工具,這里推薦使用Jupyter Notebook。

IDE是什么?集成開發(fā)環(huán)境是用于提供程序開發(fā)環(huán)境的應(yīng)用程序,一般包括代碼編輯器、編譯器、調(diào)試器和圖形用戶界面等工具。集成了代碼編寫功能、分析功能、編譯功能、調(diào)試功能等一體化的開發(fā)軟件服務(wù)套。說句人話:IDE是寫代碼的工具。

按下Win+R鍵,輸入“cmd”,打開“命令提示符”,輸入“pip install jupyter”,按下回車鍵,等待命令執(zhí)行完成。

之后,我們新建一個(gè)文件夾,打開這個(gè)文件夾,來到這個(gè)文件夾目錄下。(之后我們?cè)贘upiter Notebook中編寫的代碼記錄都會(huì)保存在這個(gè)文件夾里。)

在資源管理器的地址欄輸入“cmd”,按下回車鍵,會(huì)彈出一個(gè)命令提示符窗口。

在這個(gè)黑色的窗口中,輸入“jupyter notebook”,按下回車鍵,等待命令執(zhí)行完成。

之后會(huì)使用默認(rèn)瀏覽器打開一個(gè)網(wǎng)頁,這里就是我們編寫代碼的環(huán)境了。點(diǎn)擊右上角的New,然后選擇Python3新建一個(gè)文件即可。

在方框中輸入代碼,然后點(diǎn)擊上方的“運(yùn)行”按鈕就可以運(yùn)行代碼了。(快捷鍵Ctrl+Enter)

當(dāng)然,如果各位嫌麻煩,也可以直接使用Python自帶的IDLE。

也有網(wǎng)友會(huì)問到,為什么不使用PyCharm等更加專業(yè)的IDE工具呢?這就好像在問,為什么剔牙的時(shí)候要用竹簽而不是用竹竿呢?PyCharm適合開發(fā)比較大的項(xiàng)目,它占用內(nèi)存太大了,對(duì)電腦要求較高,容易卡頓;而Jupiter Notebook輕便靈活,占用體積小,最重要的是,它會(huì)保存你輸入的代碼以及運(yùn)行的結(jié)果,方便以后回顧查看,對(duì)于數(shù)學(xué)研究類項(xiàng)目來說非常好用。

打好基礎(chǔ),做好準(zhǔn)備工作,接下來我們開始正式講解Python中常見的數(shù)學(xué)運(yùn)算中的科學(xué)計(jì)算功能。本文將會(huì)以舉例的形式進(jìn)行講解。

首先,依舊是需要導(dǎo)入sympy函數(shù)庫。

以上三種導(dǎo)入函數(shù)庫的方法均可,但是建議使用前兩種。

先來講解一下這三種導(dǎo)入方法的不同點(diǎn)。

如果采用第1種方法,那么調(diào)用相關(guān)函數(shù)的方法需要這樣寫(最標(biāo)準(zhǔn)的寫法):

如果采用第2種方法,那么調(diào)用相關(guān)函數(shù)的方法需要這樣寫:(第2種方法與第1種沒有本質(zhì)區(qū)別,只是命名了一個(gè)簡(jiǎn)寫)

如果采用第3種方法,那么調(diào)用相關(guān)函數(shù)的方法需要這樣寫(可以直接調(diào)用,無需額外寫函數(shù)庫名):

看起來第3種方法調(diào)用的時(shí)候更加方便誒~但是為什么建議使用前兩種呢?這是為了避免命名沖突。

比如說,張三函數(shù)庫里有個(gè)函數(shù)叫做喘氣,李四函數(shù)庫里也有個(gè)方法叫喘氣。

如果我們用前兩種方法,可以很清晰地知道需要調(diào)用誰的函數(shù)。

但是如果我們使用第3種方法的話,那么這個(gè)函數(shù)是調(diào)用誰的呢?

本文采取的導(dǎo)入方式為第1種。

注意:下文所寫代碼#開頭行為注釋,僅供閱讀代碼方便理解使用,在實(shí)際練習(xí)中,不需要額外書寫注釋行。


求解方程

(1)一元方程求解

例1. 求解?x%5E2%2B4x%2B10%3D7

首先,通過移項(xiàng),將方程的右邊變?yōu)?:x^2+4x+3=0

然后,使用代碼進(jìn)行求解:

求解的結(jié)果如下所示:該方程的解為-3或-1。

例2. 求解?e%5Ex%20%3D%20x%2B1?

還是同樣的寫法,只不過需要注意的是,這里我們需要調(diào)用sympy庫中的exp()函數(shù),而不是math庫中的。

求解的結(jié)果如下所示:該方程的解為0。

(2)未知參數(shù)一元方程求解

例3. 求解?ax%5E2%2Bbx%2Bc%3D0

有時(shí),我們的方程中含有未知參數(shù),這依然可以求解,只不過就是多定義幾個(gè)變量而已。

注意這里,因?yàn)楹卸鄠€(gè)未知數(shù),因此,我們需要在solve函數(shù)中添加第二個(gè)參數(shù)x,這樣程序才會(huì)求解關(guān)于f(x)=0的解,否則默認(rèn)就求解f(a)=0。

這是正確的寫法:

這是錯(cuò)誤的寫法:

(3)多元方程組求解

例4. 求解方程組

x - y + z = 9

3x + 2y - z = 15

x + 5y -z = 26

輸入以下代碼進(jìn)行求解:

求解結(jié)果如下所示:


求解不等式

(1)一元不等式求解

例5. 求解??x%5E2%2B4x%2B10%3E7?

這里由于右側(cè)為常數(shù),所以可以不移項(xiàng),但如果右側(cè)含有未知數(shù),建議先移項(xiàng),將右側(cè)轉(zhuǎn)化為僅含0的形式

求解結(jié)果為 x<-3 或?x>-1

(2)一元不等式組求解

例6. 求解不等式組

%5Cfrac%7B3x%2B1%7D%7B4%7D%3E%20%5Cfrac%7B8x%2B7%7D%7B6%7D

9x%2B6%E2%89%A42x-7

這里需要先移項(xiàng),將右側(cè)轉(zhuǎn)化為僅含0的形式,然后再編寫代碼,求解的時(shí)候,要用[ ]將兩個(gè)條件包裹起來,solve函數(shù)只需要一個(gè)參數(shù),這個(gè)參數(shù)是一個(gè)list。

求解結(jié)果如下:x≤-13/7


處理多項(xiàng)式

(1)因式分解

例7. 分解多項(xiàng)式?x%5E4%20-%202x%5E3y%20%2B%202xy%5E3%20-%20y%5E4

分解多項(xiàng)式需要用到factor函數(shù)。

分解結(jié)果如下:

(2)多項(xiàng)式展開

例8. 展開多項(xiàng)式?(x%2By)%5E2(x-y)

展開多項(xiàng)式需要用到expand函數(shù)。

展開結(jié)果如下所示:

(3)多項(xiàng)式化簡(jiǎn)

例9. 化簡(jiǎn)多項(xiàng)式?%5Cfrac%7Bx%2By%7D%7Bx-y%7D%20%2B%5Cfrac%7B1%7D%7Bx%2By%7D%2B%5Cfrac%7Bxy%7D%7Bx%5E2-y%5E2%7D

化簡(jiǎn)多項(xiàng)式需要用到cancel函數(shù)。

化簡(jiǎn)結(jié)果如下所示:


求極限

(1)函數(shù)求極限

例10. 求極限?%5Clim_%7Bx%5Cto%2B%E2%88%9E%7D%20x(%5Csqrt%7Bx%5E2%2B1%7D-x%20)%20

在代碼中,需要使用sympy.oo(兩個(gè)英文小寫字母o)代表+∞,limit函數(shù)需要3個(gè)參數(shù),第二個(gè)參數(shù)是自變量x,第一個(gè)參數(shù)是函數(shù)y=y(x),第三個(gè)參數(shù)是自變量x趨近的值。

求得極限值為0.5

例11. 求極限?%5Clim_%7Bx%5Cto1%7D%20%5Cfrac%7Bx%5E2-x%2B1%7D%7B(x-1)%5E2%7D%20%20

方法是一樣的,只不過把∞換成了常數(shù)。

結(jié)果中的oo代表∞

(2)數(shù)列求和求極限

例12.? 求極限?%5Clim_%7Bn%5Cto%2B%E2%88%9E%7D%20%20%5Csum_%7Bk%3D1%7D%5En%20%5Cfrac%7B1%7D%7Bk%5E2%7D%20%20

使用summation函數(shù)構(gòu)造數(shù)列求和的形式,第一個(gè)參數(shù)為表達(dá)式,第二個(gè)參數(shù)為包含自變量、起點(diǎn)、終點(diǎn)。

使用Juputer有個(gè)好處,如果直接調(diào)用變量的話,會(huì)輸出優(yōu)化后的顯示結(jié)果。

如果直接使用print函數(shù)輸出的話,就是普通的文本形式。


求導(dǎo)函數(shù)

(1)一元函數(shù)求導(dǎo)數(shù)

例13. 求函數(shù)?f(x)%3Dx%5E3e%5Extanx 的一階導(dǎo)數(shù)?

使用diff函數(shù)構(gòu)造導(dǎo)函數(shù),如果只填寫一個(gè)參數(shù),就默認(rèn)求一階導(dǎo)。

求導(dǎo)結(jié)果如下所示:

例14. 求函數(shù)?g(x)%3De%5Excosx?的10階導(dǎo)數(shù)

使用diff函數(shù)構(gòu)造導(dǎo)函數(shù),第三個(gè)參數(shù)可以指定求幾階導(dǎo)數(shù),第二個(gè)參數(shù)需要寫自變量。

求導(dǎo)結(jié)果如下所示:

(2)多元函數(shù)求偏導(dǎo)

例15. 已知函數(shù)?f(x%2Cy)%3Dtan(xy)%EF%BC%8C%20%E6%B1%82%20%5Cfrac%7B%E2%88%82%5E2f%7D%7B%E2%88%82x%5E2%7D%20%20%2C%20%5Cfrac%7B%E2%88%82%5E2f%7D%7B%E2%88%82x%E2%88%82y%7D??

求偏導(dǎo)數(shù),依然使用diff函數(shù),只不過各位需要額外注意參數(shù)的放置情況

求偏導(dǎo)結(jié)果如下所示:

(3)隱函數(shù)求導(dǎo)

例16. 求隱函數(shù)?x%5E2%2By%5E2%3D1?的導(dǎo)數(shù)

隱函數(shù)求導(dǎo)需要使用idiff函數(shù)。

求導(dǎo)結(jié)果如下所示:

(4)參數(shù)方程求導(dǎo)

例17. 求參數(shù)方程的導(dǎo)數(shù)

x = 2cost

y = 3sint

求導(dǎo)結(jié)果如下所示:

(5)求泰勒展開式

例18. 求 f(x) = cosx ?在 x = 0 處的5階泰勒展開式

求解泰勒展開式需要使用series函數(shù),第一個(gè)參數(shù)是自變量,第二個(gè)參數(shù)是x的值,第三個(gè)變量是階數(shù)。

泰勒展開式結(jié)果如下所示:


求函數(shù)積分

(1)求不定積分

例19. 求不定積分?%5Cint_%7B%7D%5E%7B%7D%20tan%5E2x%20dx

求不定積分,需要使用函數(shù)integrate,第一個(gè)參數(shù)是被積函數(shù),第二個(gè)參數(shù)只需要自變量x。

積分結(jié)果如下所示:-x + tanx +C?(記得手動(dòng)加常數(shù)C)

(2)求定積分

例20. 求定積分?%5Cint_%7B0%7D%5E%7B%2B%E2%88%9E%7D%20xe%5E%7B-x%7D%20dx

求不定積分,依然使用函數(shù)integrate,第一個(gè)參數(shù)是被積函數(shù),第二個(gè)參數(shù)分別寫自變量x、積分上限、積分下限,用( )包裹起來。

積分結(jié)果如下所示:1

(3)求多重積分

例21. 求二重積分?%5Cint_%7B0%7D%5E%7B1%7D%20dx%5Cint_%7B0%7D%5E%7Bx%7D%20xe%5E%7B-y%7Ddy%20

多重積分也是用integrate函數(shù),只不過是需要往后繼續(xù)堆參數(shù)而已。這里就只展示二重積分了,其他更多重積分只需要往后疊加就可以了。

積分結(jié)果如下所示:


求解微分方程

(1)求解可分離變量的微分方程

例22. 求方程?ydx%2B(x%5E2-4x)dy%3D0?的通解

首先,將方程轉(zhuǎn)化為一邊為%5Cfrac%7Bdy%7D%7Bdx%7D的形式:

%5Cfrac%7Bdy%7D%7Bdx%7D%20%3D%5Cfrac%7By%7D%7Bx(4-x)%7D%20

然后,使用代碼進(jìn)行求解。令y%3Df(x)。

其中:cls=sympy.Function代表此處為需要求解的函數(shù);Eq表示相等,即建立f'(x)與右側(cè)式子相等的關(guān)系。

輸出結(jié)果非常直觀,直接輸出原函數(shù),但是建議大家化簡(jiǎn)一下:y%5E4(4-x)%3DCx

(2)求解線性微分方程

例23. 求?5?f '(x) + 2 f(x) = cosx 的通解

這里依然需要?jiǎng)?chuàng)建Eq對(duì)象,分別將等式兩邊放入兩個(gè)參數(shù)的位置。

計(jì)算結(jié)果如下所示:

例24. 求?f''(x)%2B2f'(x)%2Bf(x)%3De%5Ex?的通解

如果遇到高階導(dǎo)函數(shù),只需要在diff中輸入第二個(gè)參數(shù)表示階數(shù)即可,其他與一階的求解方法相同。

計(jì)算結(jié)果如下所示:


矩陣計(jì)算

(1)創(chuàng)建矩陣

根據(jù)不同的需求,有以下幾種方法創(chuàng)建矩陣。

創(chuàng)建結(jié)果如下所示:

(2)修改矩陣

如果需要修改矩陣的某個(gè)元素值,可以直接按照類似修改數(shù)組的方式對(duì)其進(jìn)行修改。只不過格式有些不同,坐標(biāo)之間需要用逗號(hào)隔開,或者直接按照由行到列的順序從0開始進(jìn)行編號(hào)。

兩種方法修改結(jié)果如下所示:

也可以直接修改某一行或某一列。矩陣的第一個(gè)坐標(biāo)代表行,第二個(gè)坐標(biāo)代表列,使用:(冒號(hào))代表所有的行或所有的列,例如m[2,:]代表第3行以及所有的列(從0開始編號(hào),所以2代表第3行,第3行以及所有的列的交集就是第3行)。

修改結(jié)果如下所示:

(3)矩陣計(jì)算

矩陣計(jì)算包括但不限于矩陣加減乘法、求轉(zhuǎn)置矩陣、求逆矩陣、求伴隨矩陣、求矩陣行列式值、求矩陣特征值、求矩陣多項(xiàng)式等。

計(jì)算結(jié)果如下圖所示:


求積分變換

(1)拉普拉斯變換

例25. 求?f(t)%3De%5E%7Bkt%7D?的拉普拉斯變換

求解拉普拉斯變換需要用到laplace_transform函數(shù)。

解得?L(e%5Et)%3D%5Cfrac%7B1%7D%7Bs-k%7D%20?:

(2)拉普拉斯逆變換

例26. 求?F(s)%3D%5Cfrac%7B2%7D%7Bs%5E2%2B1%7D%20?的拉普拉斯逆變換

求解拉普拉斯逆變換需要用到inverse_laplace_transform函數(shù)。

解得?f(t)=2sint :

(3)傅里葉變換

傅里葉變換使用fourier_transform函數(shù),其他部分與拉普拉斯變換一致,在此不再重復(fù)敘述。

(4)傅里葉逆變換

傅里葉逆變換使用inverse_fourier_transform函數(shù),,其他部分與拉普拉斯逆變換一致,在此不再重復(fù)敘述。


學(xué)了代碼,可以摸魚嗎?

為了檢測(cè)學(xué)習(xí)效果如何,這里有幾道題幫大家練練手:


如果本文對(duì)你有所幫助,歡迎點(diǎn)贊、評(píng)論、轉(zhuǎn)發(fā),聽說關(guān)注我的人都變帥了。誒嘿~





Python練手:想在做數(shù)學(xué)題的時(shí)候摸魚嗎?的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
龙川县| 怀来县| 杨浦区| 兰西县| 长宁县| 同心县| 津市市| 新沂市| 太湖县| 沂源县| 防城港市| 油尖旺区| 孝义市| 延寿县| 克什克腾旗| 景德镇市| 福清市| 贡山| 定西市| 平南县| 西和县| 宣恩县| 平舆县| 九寨沟县| 澎湖县| 确山县| 东城区| 仲巴县| 汤原县| 阿克苏市| 金湖县| 那坡县| 巴里| 西城区| 若尔盖县| 阿尔山市| 克拉玛依市| 泌阳县| 延津县| 荥经县| 芜湖县|