Sympy 无法解决我的方程式并卡住了

Sympy cannot solve my equation and gets stuck

我有一个简单的等式,试图解决使用符号的问题,但是代码卡住了,我没有收到调试错误。我怎样才能正确地做到这一点?

from sympy import *

from sympy import init_printing
init_printing(use_latex = True)
import sympy as sp
from numpy import random
import numpy as np
import math

from decimal import *

timeS = symbols("t")

eq1 =  Eq( (-4221.4125*exp(-2750.0*timeS)*sin(6514.4071*timeS) + 10000.0*exp(-2750.0*timeS)*cos(6514.4071*timeS)),8000)
T_off = solve(eq1,  timeS  )[0]
display("T_off = ",T_off)

你的方程看起来没有解析解,所以你应该改用 nsolve-0.0010 之间有一个根,所以平分法给出:

In [59]: nsolve(eq1, timeS, [-0.001, 0])
Out[59]: 3.46762014687136e-5

这是一个病态方程。通过将两边除以 10**4 重新缩放并将 timeS 替换为 Symbol(x)/10**4 并使用 nsolve

>>> eq2 = eq1.func(eq1.lhs/10**4, eq1.rhs/10**4).subs(timeS, symbols('x')/10**4)
>>> from sympy import nsolve
>>> nsolve(eq2,0)
0.346762014687135

所以timeS ~= 0.35e-4sqrt 函数自动缩放总和,因此 sqrt(eq1.rewrite(Add)) 会将项的系数减少到小于 1,但这种简化目前不是一般表达式的 SymPy 简化的一部分。