首页 > 解决方案 > 学生坚持一个特定的方程求解问题

问题描述

我必须使用复利方程计算出我的一个输入三倍所需的时间。用户必须输入预期年回报率和初始股票价格,并且代码应该吐出初始股票价格翻三倍所需的年数(四舍五入)。但是,对于我编写的代码,它根本没有给我任何东西,我不知道该怎么做。

我的代码:

from sympy.solvers import solve
from sympy import Symbol


x = Symbol('x')
Stock_Ticker = input("Enter the stock ticker: ")
EAR = float(input("Enter Expected Annual Return: "))
ISP = float(input("Enter initial stock price: "))

expr = ISP * (1+EAR)**x

solve(ISP *(1+EAR)**x,x)

sol = solve(ISP *(1+EAR)**x,x)

print ("The price of", Stock_Ticker, "tripled after", sol, "years")

我的输出是:

The price of (Stock_Ticker) tripled after [] years

标签: pythonequation-solving

解决方案


问题

  • 表达式sol = solve(ISP *(1+EAR)**x,x)永远不会归零。
  • 当值变为 3*ISP 时,你想要sol = solve(ISP *(1+EAR)**x,x) - 3*ISP它变为零

代码

from sympy.solvers import solve
from sympy import Symbol

x = Symbol('x')
Stock_Ticker = input("Enter the stock ticker: ")
EAR = float(input("Enter Expected Annual Return: "))
ISP = float(input("Enter initial stock price: "))

expr = ISP * (1+EAR)**x - 3*ISP   # subtract 3*initial price since we want to find when expression becomes zero

sol = solve(expr, x)              # Find root (zero) of expression expr

print ("The price of", Stock_Ticker, "tripled after", sol, "years")

测试运行

Enter the stock ticker: xxxx
Enter Expected Annual Return: .1
Enter initial stock price: 1
The price of xxxx tripled after [11.5267046072476] years

推荐阅读