使用 Python 函数并生成所有导数

2024-03-22

我有一个参数数量可变的 python 函数:

F(x1, x2, ... , xN)

我想自动生成 N 个函数,表示 F 对每个参数的导数。

F'_1 = dF/dx1
F'_2 = dF/dx2
...
F'_N = dF/dxN

例如,我可以同时提供 F(x1) = sin(x1) 和 F(x1, x2) = sin(x1) * cos(x2) 并自动获得所有导数。


编辑2: 如果函数 F 是 2 个变量(固定数量的参数),我可以使用

   def f(x,y):
      return  sin(x)*cos(y)

   from sympy import *
   x, y = symbols('x y')
   f_1 = lambdify((x,y), f(x,y).diff(x))

诀窍是使用inspect.getargspec获取函数所有参数的名称。之后,这是一个简单的列表理解:

import inspect
from sympy import *

def get_derivatives(func):
    arg_symbols = symbols(inspect.getargspec(func).args)
    sym_func = func(*arg_symbols)

    return [lambdify(arg_symbols, sym_func.diff(a)) for a in arg_symbols]

例如:

def f(x, y):
    return sin(x)*cos(y)

all_derivatives = get_derivatives(f)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Python 函数并生成所有导数 的相关文章

随机推荐

  • 为什么 webpack 2 包使用 `eval()` 来包装代码?

    我刚刚学习webpack 我注意到在生成的bundle js中它使用了这样的eval 当处于 开发 模式 而不是 生产 模式时 它会产生完全不同的东西 function module exports webpack require use
  • Viewstate - 完全混乱。

    这让我完全困惑 有人能解释一下吗 Markup
  • Android SDK 管理器中未显示其他 Android API

    我安装了安卓SDK管理器两个月前 我拿到安卓2 3 3 SDK安装了 但我不太记得我遵循的步骤 因为我是 Android 开发新手 现在 当我打开 Android SDK 管理器时 我只看到 SDK平台Android 2 3 3 我看不到我
  • 将分配给 Fortran 数组的 C_PTR 传递给 C

    我在访问 C 中的数组时遇到段错误 该数组在下面的 Fortran 文件中分配 有一些调试问题 例如文件写入没有写入任何有意义的内容 并且我初始化了一个变量i我从来没有用过 但是 我发现了以下内容 未初始化i 但仍然声明 没有段错误 未在
  • 是否可以从 DataContext.ExecuteQuery 返回匿名对象的 IEnumerable?

    我开发了一个报告引擎 其中报告基于模板 每个模板都有带有 SQL 查询的字符串 每个报告都有 SQL 查询参数的特定值 为了呈现报告 我设置参数并调用数据上下文 执行查询 http msdn microsoft com en us libr
  • npm start 上的 webpack-dev-server 错误

    我正在尝试在 ng2 admin 上运行 npm start 一切正常 直到我执行 npm update 来尝试更新软件包 之后 npm 启动并出现错误 webpack dev server config config webpack de
  • 从 Android WebView 中启动地图

    我有一个 Android 应用程序 它在 WebView 中显示内容 其中包含一个应该打开地图的链接 我有要链接的位置的纬度 经度和街道地址 但我不确定链接的正确格式 大约一周时间没有收到社区对此的任何答复或评论 最后我只是选择 http
  • D3D11 不知从何增加了引用计数?

    我已经使用 d3d11 有一段时间了 在发现 directx 调试器之后 我最近发现我的程序从所有未正确释放的 com 对象中到处泄漏内存 经过一番窥探和盯着代码几个小时后 我开发了一些方法来隔离引用计数意外增加的位置 首先 所有对象都被包
  • 在数据库中存储 JS 数组和对象

    我有一个应用程序 可以让用户用 JS 构建东西 我希望用户能够保存其工作的当前状态以重用或共享它 但他拥有的是存储在 JS 数组中的 JS 对象的集合 具有非常不同的属性 颜色 标签 x y 位置 大小等 SQL 对于该特定任务来说似乎很糟
  • Jenkins:Git 推送将触发仅针对该分支的 Jenkins 构建

    我们正在多个 Git 分支上并行工作 当推送特定的 Git 分支时 我们如何启动 Jenkins 项目 作业来触发该特定分支的构建 举个例子 我们推送一个 Git 分支 feature abc gt 这应该会触发使用 拉动该分支 featu
  • 我可以阻止 numpy.array 将元素转换为 numpy 数组吗?

    我正在尝试将以下内容转换为间隔对象的 2x2 numpy 数组 from interval import interval from the pyinterval package import numpy as np np array in
  • 在循环内附加到 numpy 数组

    我真的希望没有遗漏一些东西 之前已经澄清过 但我在这里找不到东西 这个任务看起来很简单 但我失败了 我想在 for 循环中连续将一个 numpy 数组附加到另 一个数组 step n 10 steps np empty step n 1 f
  • 如何将 groovy 变量传递给 shell 块 jenkins

    我有一个常规变量 我想将其传递给 shell 块以进行进一步处理 但我不断收到粘贴在下面的错误 stages stage First Stage echo out available variables steps script def s
  • 有什么方法可以在免费的heroku dyno上添加免费的SSL证书吗?

    我有一个 heroku 免费计划 它在带有 PointDNS 附加组件的自定义域上运行 因此它可以为 DNS 提供商提供名称服务器 如果这很重要 我已在我的自定义域 https 上启动并运行该网站 但 ssl 证书指向 herokuapp
  • 将引导面板宽度设置为文本宽度

    我是 HTML Bootstrap 新手 所以也许这相当简单 How do you set the panel width引导面板 http getbootstrap com components panels其文本的长度 如果面板无法实现
  • wsdl2py 复杂类型

    如何向 SOAP 请求添加复杂类型 我正在使用 WSDL2py 生成的请求 并尝试使用它在 types py 文件中创建的其他 TypeDefinitions 例如 AccountInfo 用于身份验证 它会进入每个请求 然后将其传递给 w
  • 基于 webkit 的浏览器将 json 解释为脚本

    我只是尝试通过 js 获取我的 Zootool 项目 将它们推送到我的博客页脚中 但没有成功 这是我使用的代码 jquery框架 jQuery document ready function first try var url http z
  • 使用 jspdf 将图像 url 转换为 pdf

    function convertImgToBase64 url var canvas document createElement canvas var ctx canvas getContext 2d img document creat
  • 编译/运行时字符串文字的原始字节流入/流出 Windows(非宽)执行字符集,以及 ANSI 代码页与 UTF-8

    我想确认我对原始字符串文字和 非宽 的理解execution character set在 Windows 上 我希望具体确认的相关段落以粗体显示 但首先 有一些背景知识 背景 相关问题见下文bold 由于下面的有益讨论 TheUndead
  • 使用 Python 函数并生成所有导数

    我有一个参数数量可变的 python 函数 F x1 x2 xN 我想自动生成 N 个函数 表示 F 对每个参数的导数 F 1 dF dx1 F 2 dF dx2 F N dF dxN 例如 我可以同时提供 F x1 sin x1 和 F