今天要介紹的是關于使用Python演算衍生品速查表的內容。實際上是對微積分可以做的事情進行冷卻的先驅,這些微積分可以用于空空導彈中的追蹤曲線和火箭發射方程。讓我們重溫一些您很久沒有接觸過的演算主題,并使用Python復習一下,并復習所使用的常見派生和規則。
本教程旨在作為微積分教程,但是您不會使用需要API的在線計算器,例如Wolfram-Alpha。如果您想編寫自己的代碼,或者只是輕松進行計算,也很有用。這也是檢查手工計算是否正確的好方法。我將以最簡單的方式遍歷差異化規則,并提供可以使用python執行的示例。
本節介紹如何安裝SymPy以及完成以下步驟:
1.功率規則
2.產品規則
3.商法則
4.鏈式規則
5.指數
6.偏導數
我將使用拉格朗日的導數表示法,例如盡管使用Leibniz表示法(d/dx)更常見,但在Python中運行微分方程時感覺并不自然。
使用SymPy
這篇文章將使用 SymPy,這是一個Python庫。也可以使用SciPy庫,但是SymPy以易于閱讀的方式打印輸出,并且在掌握差異化和集成性方面更有用。
要安裝它,請打開終端并運行以下命令:
pip install sympy
我強烈建議在Anaconda 發行版隨附的新Jupyter Notebook中編寫python代碼。
區分規則
我將首先介紹一些差異化規則,作為您很久以前可能已忘記的一些微積分主題的快速入門。
權力規則
如果您曾經參加過微積分課程,那是不言而喻的。因此,讓我們以一個簡單的示例為例,并逐步進行操作;
這是一個很好的示例,可以使用SymPy庫進行測試。要在python中實現此功能,請首先導入該庫,然后聲明要在函數中使用的變量。以下代碼段顯示了如何聲明單個變量函數:
import sympy as sp
x=sp.Symbol('x')
最后一步是通過運行以下代碼來獲得派生:
sp.diff(x**3)
哪個輸出:
您會注意到輸出方程式的打印格式很好。如果要獲得二階微分f''(x),則只需將x兩次包含在:
diff
命令:
sp.diff(x**3,x,x)
其中6x是二階微分,或以手寫方式放置:
產品規則
在python中運行此命令將為您提供以下信息:
sp.diff(sp.sin(x)*(2*x**2+2))
商法則
商規則有助于我們有效地找到一個函數除以另一個函數的導數,這就是我們在Python中執行此操作時的樣子:
sp.diff((sp.sin(x))/x)
手動嘗試,然后在python中運行。
商規則與乘積規則非常相似,不同之處在于將加號更改為負號,以及除以g(x)^ 2 步的額外步驟。
連鎖規則
如前所述,我選擇使用Langrangian符號來遵循這些規則。由于某種原因,鏈式規則變得過于復雜。
因此,讓我們手動看一個例子:
內函數g(?)為?^ 2 +1 ,當微分為2?時。外部函數f(?)是(stuff)^ 7,當微分時變為7 *(stuff)^ 6。
使用鏈式規則公式時,這很簡單。這是在python中運行時的樣子:
sp.diff((x**2+1)**7)
有關鏈式規則的更深入說明,請查看Aaron Schlegel在“ 鏈式規則”上的文章。
指數導數
并且使用鏈式規則,同時給出e的g(x)指數,
讓我們來看一個簡單的代碼如下所示:
sp.diff(sp.exp(3*x))
這涵蓋了您在微積分課程中要記住的所有微分規則。綜上所述讓我們看一下偏導數:
那偏導數呢?
偏微分方程(PDE)與到目前為止所見的常微分方程不同,因為PDE包含多變量函數。不同之處在于您一次獲取一個變量的導數。讓我們從兩個變量函數開始,找到它們的偏導數:
現在,您可能會問我如何在Python中執行此操作?第一步是像這樣聲明變量
x,y=sp.symbols('x y')
f=x**4*y
在上面,我已將函數分配為變量,以免每次取導數時都不會重寫此變量。
取關于x的偏導數:
sp.diff(f,x)
并取關于y的偏導數:
sp.diff(f,y)
您還可以在同一行代碼中一個接一個地對多個變量求導數:
sp.diff(f,x,y)
另一個具有3個變量功能的示例
x,y,z=sp.symbols('x y z')
f=x**3*y*z**2
現在剩下的部分和以前一樣:
sp.diff(f,x)
sp.diff(f,y)
sp.diff(f,z)
在衍生工具方面就差不多了。但是這些并不是在Python代碼中有用的實際函數,這更多是一項家庭作業。實際上將其放在Python代碼中!
如果我無法插入數字,那么在Python代碼中計算微分方程有什么意義?SymPy為我們提供了執行此操作的功能!這個非常方便的功能稱為 Lambdify,用數字代替放置符號的位置。
讓我們做一個簡單的例子:
f=2*x**3+4*x
f_prime=sp.diff(f)
f_prime
所以我設置了f_prime,但是我想用數字2代替
f_prime=sp.lambdify(x,f_prime)
f_prime(2)
>> 28
那里有,讓我們再舉一個使用多個符號變量的示例
f=x**3*y*z**2
F=sp.lambdify([x,y,z],f)
F(1,2,3)
>> 18
有了這個,現在有了一個python庫,用于查找導數并將其轉換為函數。
通過上述介紹,如何使用Python演算衍生品速查表大家已經清楚了吧,想了解更多關于Python的信息,請繼續關注中培偉業。