python - 计算函数在某一点的导数 Python 2.7

标签 python sympy

我有以下功能:

import sympy as sp
def inverted(q, m, a, nu):
    return (-1)**(m+1)*(a/m)**m*sp.exp(m)*q**(-nu)*sp.diff(1/(sp.sqrt(a**2+q**2))*(sp.sqrt(a**2+q**2)-a)**(nu), a, m+1)

我想定义一些 lambda 函数,这样

f100 = lambda a, q: inverted(q, 100, a, 0)

但是,当我尝试检查时

q = sp.symbols('q')
f100(1000.0, q)

我得到以下输出:

ValueError: 
Can't calculate 101st derivative wrt 10.

显然,当我调用 f100(1000.0, q) 时,函数引用回 inverted ,问题就出现了。我希望能找到解决这个问题的方法。

最佳答案

似乎您必须首先将 a 设为变量,以便 diff 起作用。如果您之前修复了 a ,它就不起作用(我认为因为您对 a 进行了区分)。之后您可以将 a 替换为 1000

import sympy as sp
def inverted(q, m, a, nu):
    return (-1)**(m+1)*(a/m)**m*sp.exp(m)*q**(-nu)*sp.diff(1/(sp.sqrt(a**2+q**2))*(sp.sqrt(a**2+q**2)-a)**(nu), a, m+1)

f100 = lambda a, q: inverted(q, 100, a, 0)

q, a = sp.symbols('q, a')
print(f100(a, q).subs(a, 1000))

关于python - 计算函数在某一点的导数 Python 2.7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45097452/

相关文章:

python - 找不到 Sdl2-config 错误(安装 pygame_sdl2)

python - 如何在 sympy 的表达式中替换多个符号?

latex - 将字符串作为 sympy.latex 函数的参数

python - 如何使用 OpenCV python 对网格的轮廓进行排序?

python - 如何使用 Python 的 super() 更新父值?

python - Django DST 时间更改问题与 django datetimefield

python - 使用 os.walk 时,有没有办法确定子目录是否在与 python 相同的文件系统中?

python - 这是什么错误 : 'matrix' object has no attribute 'diff'

python - 使用 sympy 将相似的术语放在一起

python - 计算 sympy 中具有两个索引的序列