Используйте sympy для решения трансцендентного уравнения

1

Опытный с Python. Новое для Sympy.

У меня есть трансцендентное уравнение, f (x) = sin (x) - x.

Если y = f (x), я хочу решить для x, зная y.

Я думаю, что Sympy может это сделать, но у меня нет опыта в этом. Может кто-нибудь объяснить, что я должен делать?

(В вопросе " Трансцендентальное уравнение" есть ответы для ручного проката итеративного подхода, который является моей резервной.)

Вот что я пробовал:

from sympy import *
x = symbols('x')
solve(Eq(sin(x) - x))  # Exception raised here

# NotImplementedError: multiple generators [x, sin(x)]
# No algorithms are implemented to solve equation -x + sin(x)

Я признаю, что это даже не сообщает, что у меня известное значение для y. Как вы можете видеть, я не понимаю, что делать вообще.

Это было бы итеративным решением. Есть ли способ заставить sympy сделать это, или я должен использовать другой пакет Python для итеративных решений?

Вся помощь приветствуется.

Теги:
python-3.x
sympy

1 ответ

3
Лучший ответ

Как насчет использования nsolve? то есть:

>>> from sympy import *
>>> x = symbols('x')
>>> nsolve(sin(x)-x, x, 1)

Кажется, он использует mpmath.findroot за шторами.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню