设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 1030|回复: 1
收起左侧

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

[复制链接]
发表于 2020-7-21 18:20:49 | 显示全部楼层 |阅读模式
  今天要介绍的是关于使用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')http://www.zpedu.com/it/rjyf/11700.html
  最后一步是通过运行以下代码来获得派生:
  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符号来遵循这些规则。由于某种原因,链式规则变得过于复杂。
  使用链式规则公式时,这很简单。这是在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库,用于查找导数并将其转换为函数。

发表于 2021-11-16 09:34:01 | 显示全部楼层
6666666666666666666666666666666666666
沙发 2021-11-16 09:34:01 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2024-3-29 18:03 , Processed in 0.075332 second(s), 10 queries , Redis On.  

  Powered by Discuz!

  © 2001-2024 HH010.COM

快速回复 返回顶部 返回列表