| 1 | initial version |
The value 8 is not a solution, but there is a solution
whose approximate solution is 8.2510146...
Here are some ways to work on solving this equation.
Define t as a symbolic variable in the symbolic ring,
and call eq the equation.
sage: t = SR.var('t')
sage: eq = 0.111*t == 1-exp(-0.3*t)
Try to solve with solve: unfortunately, Sage returns an
equation which is equivalent to the equation we started with.
sage: solve(eq, t)
[t == 1000/111*(e^(3/10*t) - 1)*e^(-3/10*t)]
Use find_root to find an approximate solution between 5 and 10.
sage: eq.find_root(5, 10)
8.251014632362164
or
sage: find_root(eq, 5, 10)
8.251014632362164
The computation above is done using floating-point computations and it is not clear which digits are exact.
For a computation using arbitrary precision, use the mpmath library:
define a function equal to the difference of the left-hand side and
the right-hand side of eq and use mpmath.findroot to look for a
root near 8:
sage: import mpmath
sage: mpmath.findroot(lambda t: 1 - exp(-0.3*t) - 0.111*t, 8)
mpf('8.2510146323620207')
See the answer by @Emmanuel Charpentier for how to use SymPy to get an exact solution in symbolic form. It is likely Giac or FriCAS could do it too.
Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.