Я новичок в SymPy, и я попытался решить уравнения для гравитационного движения, показанные ниже (это отображается непосредственно из моего уравнения SymPy).
import sympy as sym
t, E, L, m, a=sym.symbols('t E L m alpha')
r, th=sym.symbols('r theta', cls=sym.Function)
eq1=sym.Eq(m*(r(t)**2)*th(t).diff(t),L)
eq2=sym.Eq(sym.Rational(1,2)*m*(r(t).diff(t))**2+(L**2)/(2*m*r(t)**2)-a/r(t),E)
sym.dsolve((eq1,eq2))
Я получаю следующую ошибку, которую не могу понять, как отлаживать.
TypeError Traceback (most recent call last)
c:\Users\***\Documents\Python\Mechanics\gravity.py in
----> 17 sym.dsolve((eq1,eq2))
~\AppData\Local\Programs\Python\Python38\lib\site-packages\sympy\solvers\ode.py in dsolve(eq, func, hint, simplify, ics, xi, eta, x0, n, **kwargs)
599 """
600 if iterable(eq):
--> 601 match = classify_sysode(eq, func)
602 eq = match['eq']
603 order = match['order']
~\AppData\Local\Programs\Python\Python38\lib\site-packages\sympy\solvers\ode.py in classify_sysode(eq, funcs, **kwargs)
1996 if matching_hints['no_of_equation'] == 2:
1997 if order_eq == 1:
-> 1998 type_of_equation = check_nonlinear_2eq_order1(eq, funcs, func_coef)
1999 else:
2000 type_of_equation = None
~\AppData\Local\Programs\Python\Python38\lib\site-packages\sympy\solvers\ode.py in check_nonlinear_2eq_order1(eq, func, func_coef)
2303 num, den = (
2304 (r1[f].subs(x(t),u).subs(y(t),v))/
-> 2305 (r2[g].subs(x(t),u).subs(y(t),v))).as_numer_denom()
2306 R1 = num.match(f1*g1)
2307 R2 = den.match(f2*g2)
TypeError: 'NoneType' object is not subscriptable
Я знаю, что если SymPy не сможет решить уравнение, NotImplementedError
будет быть поднятым. Это синтаксическая ошибка с моей стороны или ошибка в DSolve SymPy?