如何使用Python演算衍生品速查表
586
今天要介绍的是关于使用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的信息,请继续关注。