软件研发

如何使用Python演算衍生品速查表

2020-07-21 14:23:02 | 来源:中培企业IT培训网

今天要介绍的是关于使用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的信息,请继续关注中培伟业。

标签: Python 软件研发