首页 > 解决方案 > evalf 没有为代数表达式生成数值结果

问题描述

我有这种同情的表情。

我不确定为什么 evalf 函数不能正确评估这个表达式,但我仍然没有从中得到实际的数值?

    value = {t1: _t1, t2: _t2, t3: _t3, x_mid: _x_mid, theta: _theta, focal_length: _focal_length, vec_20: vec_2[0],
         vec_21: vec_2[1], vec_22: vec_2[2], r: radius}

    ansx = root1[i][0].evalf(subs=value)

运行以下代码后:

        ansx = root1[i][0].evalf(subs=value)

对于 ansx,我得到以下信息:

在此处输入图像描述

其中 root[i][0] 是:

在此处输入图像描述

我创建了一个显示 evalf 应该适用于 sympy 的最小表达式:

In [7]: omega, t = sympy.symbols("omega, t")

In [8]: s = sympy.pi * sympy.cos(omega*t)

In [9]: s
Out[9]: pi*cos(omega*t)

In [10]: print(s.evalf().subs({t: 0}))
3.14159265358979

标签: pythonpython-3.xsympysymbolic-mathevalf

解决方案


推荐阅读