我已经将'r'定义为方程式中的符号变量,但仍然由于“未定义名称'r'”而出现错误
from sympy import symbols, solve
#Total money you loan
A=1690*74
#Total month you need to pay
m=37
#Every month the total money you need to pay
x=4000
# r is the monthly interest rate
r=symbols('r')
expr=(A*r*(1+r)**m)/((1+r)**m-1)-x
sol=solve(expr,dict=True)
print(sol)
运行文件,没有任何反馈。代码有什么问题?
答案 0 :(得分:1)
您要求解的方程是(或可以重新排列为)37阶多项式:
37
125060⋅r⋅(r + 1)
────────────────── - 4000
37
(r + 1) - 1
SymPy努力寻找一个解析解,但是通常只能保证解析解存在到4阶(即使这样,也可能非常复杂)。
我认为您真正想要的是一个数值解决方案,因此nsolve
应该可以做到:
>>> nsolve(expr,r,1)
0.00915469685511422
作为每月的小数利率,相当于〜11%的年化利率(x100x12)。