#python #equation-solving
#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
Ответ №1:
Проблема
- Выражение
sol = solve(ISP *(1 EAR)**x,x)
никогда не стремится к нулю. - Вы хотите
sol = solve(ISP *(1 EAR)**x,x) - 3*ISP
, чтобы значение равнялось нулю, когда значение становится 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