我是Python(v3.7)的初学者,我试图用数值计算一个包含参数的符号函数的导数,但我无法成功地输入值。你知道吗
我尝试了不同的组合,从阅读this question和here中获得灵感。你知道吗
下面是一个复制我的问题的最小示例:
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))
但我还是没有任何进展。谢谢!你知道吗
就用替代品吧。当您试图从一个数字表达式中获取一个数字时,请使用evalf。您的,包含未赋值的
a
还不是一个数字,所以求值会拒绝它。你知道吗相关问题 更多 >
编程相关推荐