documentation on nonlinsolve
daje ten przykład:Ponieważ przykład w dokumentacji jest uszkodzony, w jaki sposób mogę rozwiązać nieliniowy układ równań numerycznie w SymPy?
from sympy.core.symbol import symbols
from sympy.solvers.solveset import nonlinsolve
x, y, z = symbols('x, y, z', real=True)
nonlinsolve([x*y - 1, 4*x**2 + y**2 - 5], [x, y])
{(-1, -1), (-1/2, -2), (1/2, 2), (1, 1)}
ale nawet w żywej powłoki na swojej stronie internetowej, że zgłasza błąd:
>>> from sympy.solvers.solveset import nonlinsolve
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: cannot import name nonlinsolve
Jak mogę używać nonlinsolve
rozwiązać układ równań numerycznie? Wiem, że mogę użyć ufuncify
, aby przekonwertować równania w system, który może rozwiązać scipy.optimize.fsolve
, ale wolałbym uniknąć tych kilku linii na płycie głównej i po prostu użyć SymPy bezpośrednio. Nie jest zalecane używanie solve
. W przypadku nieliniowych układów równań dokumentacja zaleca sympy.solvers.solveset.nonlinsolve
, którą próbuję tutaj użyć.
użyj 'sympy.solve ([x * y - 1, 4 * x ** 2 + y ** 2 - 5], [x, y])' – Stelios
@Stelios Zgodnie z dokumentacją Sympy, [używając ' rozwiązać "nie jest zalecane" (http://docs.sympy.org/dev/modules/solvers/solvers.html). Dodam oświadczenie na ten temat do mojego pytania. –
Dokumenty są być może nieco agresywne.zestaw układów naprawczych ma zastąpić rozwiązanie, ale wciąż istnieją przypadki, w których jest to konieczne, na przykład systemy nieliniowe. – asmeurer