应为数字输出,返回ConditionSet()



我正在写硕士论文,在这篇论文中,我遇到了一个问题,即在考虑到能源价格上涨的情况下,试图编程一个公式来计算太阳能装置的投资回收期。

我使用的代码如下:

from sympy import *
x = symbols("x")
Eq1 = x
Eq2 = 3 / (1 * (1 + 0.02)**x)
print(solveset(Eq2 - Eq1, x))

当我尝试运行这个程序时,我得到了一个ConditionSet((,这很奇怪,因为TVT(回收期(应该只有一个解决方案。

这是因为您使用了solveset,它返回一个集作为输出。现在,您可以尝试使用solve,但在这种情况下,它将引发一个NotImplementedError

由于您对数值解感兴趣,可以尝试nsolve并提供一个初始猜测:

# solve Eq2 - Eq1=0 for x, taking 2 as the initial guess
nsolve(Eq2 - Eq1, x, 2)
# out: 2.8361542122017

你可以画出你的方程来找到一个合适的初始猜测:

plot(Eq2 - Eq1)

相关内容

  • 没有找到相关文章

最新更新