python - 学生坚持一个特定的方程求解问题
问题描述
我必须使用复利方程计算出我的一个输入三倍所需的时间。用户必须输入预期年回报率和初始股票价格,并且代码应该吐出初始股票价格翻三倍所需的年数(四舍五入)。但是,对于我编写的代码,它根本没有给我任何东西,我不知道该怎么做。
我的代码:
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
解决方案
问题
- 表达式
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
推荐阅读
- c - 在 C 中动态分配内存时出现错误
- angular - 为什么我的 observables 不能通过 Angular 中的异步管道和 *ngIf 正确发射?
- python - 比较两个列表中常见项目的最快方法
- html - WordPress 网站上的 HTML5 视频背景无法在 Safari 浏览器上运行
- matlab - 如何将 Matlab 中用于绘图的字体设置为默认的 Latex 字体?
- java - Maven Clean Install - 由于文件被另一个进程持有而导致访问被拒绝异常
- angular - Angular Service Worker,强制更新激活和延迟加载
- html - 将初始值设置为 Angular 中的输入范围
- mongodb - 如何 $match 文档中的数组元素与任何其他数组 - mongodb 聚合
- c++ - 用 C++ 连接数据库