在Python中求符号函数的参数导数

2024-04-25 04:14:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python(v3.7)的初学者,我试图用数值计算一个包含参数的符号函数的导数,但我无法成功地输入值。你知道吗

我尝试了不同的组合,从阅读this questionhere中获得灵感。你知道吗

下面是一个复制我的问题的最小示例:

import sympy as sym
from sympy import*

x, y, a = sym.var('x, y, a')
def f(x,y):
    return a*x**2 + x*y**2
fprime = sym.diff(f(x,y),x)

print(f(1,1))
print(fprime.evalf(subs={x: 1, y: 1}))

正如预期的那样,第一次打印的输出是a+1,但是问题随着第二次打印而来,因为我得到的输出是2.0*a*x + y**2,而我希望得到2*a+1。你知道吗

我该如何修改我的代码?我还尝试分别定义fprime,并运行以下命令:

def fprime(x,y):
    return sym.diff(f(x,y),x)
print(fprime(x,1))

但我还是没有任何进展。谢谢!你知道吗


Tags: 函数import参数returndef符号diff数值
1条回答
网友
1楼 · 发布于 2024-04-25 04:14:28

就用替代品吧。当您试图从一个数字表达式中获取一个数字时,请使用evalf。您的,包含未赋值的a还不是一个数字,所以求值会拒绝它。你知道吗

>>> fprime.subs({x: 1, y: 1})
2*a + 1

相关问题 更多 >