我正在写硕士论文,在这篇论文中,我遇到了一个问题,即在考虑到能源价格上涨的情况下,试图编程一个公式来计算太阳能装置的投资回收期。
我使用的代码如下:
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)