首页 > 解决方案 > 如何将 exp() 符号从表达式转换为数值?

问题描述

我有这个代码:

from sympy import *
x = Symbol('x')
f = exp(x)+exp(x-0.1)+exp(-x-1)    #Random Function
d = diff(f,x)    #Differentiate f w.r.t x
a = d.subs({x:2})    #Put x=2
print(a)

输出是:

-exp(-3) + 1.90483741803596*exp(2)

但是在这里,我不希望 exp() 显示为符号。相反,我想要它的数值。

预期输出:

14.025163472842058

如何替换 exp() 符号以获取数值?

标签: pythonsympy

解决方案


这是它的文档:文档

但本质上a是一个表达式对象,为了评估它,你必须在它上面调用类似evalf的东西。由于您已经完成了替换步骤,您只需拨打电话a.evalf()即可获取号码。

还有其他方法,但可能需要其他依赖项。

例如:

from sympy import *
x = Symbol('x')
f = exp(x)+exp(x-0.1)+exp(-x-1)    #Random Function
d = diff(f,x)    #Differentiate f w.r.t x
a = d.subs({x:2})    #Put x=2
print(a.evalf()) # prints: 14.0251634728421

推荐阅读