python - solve - sympy tutorial
(Revelación completa: soy el desarrollador líder de SymPy)
Lo primero que debes entender es que SymPy y Sage no son exactamente lo mismo. SymPy es una biblioteca pura de Python, que hace álgebra computacional. Sage es una colección de software matemático de código abierto. Sage intenta reunir todos los principales software de código abierto de matemáticas, y pegarlos en un sistema útil. De hecho, Sage incluye SymPy como uno de sus sistemas.
Aquí hay una breve lista de hechos (sesgados) para cada uno (no los llamaré pros o contras, solo hechos):
Simpatía
- SymPy es completamente independiente. No tiene más dependencias que Python.
- A pesar de ser autónomo, está completo como un sistema de álgebra computacional . Si desea hacer numéricos, se recomienda utilizar otras bibliotecas en el ecosistema científico de Python .
- SymPy tiene licencia BSD. Para mucha gente, esto no importa, pero si quieres incluir SymPy en otra cosa, es bueno saber que puedes hacer lo que quieras con el código.
- SymPy no intenta cambiar Python. SymPy toma la filosofía de que Python está haciendo las cosas bien, por lo que debería hacer las cosas a la manera de Python. Por ejemplo, el operador para la exponenciación es
**
como está en Python, no^
como lo está en muchos otros sistemas. - SymPy se puede utilizar como una biblioteca. Ya que SymPy es solo un módulo de Python, puedes importarlo y usarlo en cualquier lugar que use Python. Hay muchas aplicaciones y bibliotecas realmente geniales por ahí que usan SymPy en segundo plano para hacer simbólicos (en muchos casos, en lugares donde quizás ni te das cuenta de que se están usando simbólicos).
Sabio
- Sage incluye todo (incluido SymPy) del mundo de código abierto que quizás quieras hacer matemáticas. Esto incluye muchas bibliotecas que son útiles para numéricos, como octava.
- El sabio es la GPL. Si te gusta todo el software de FSF freedom, entonces más poder para ti. No puede reutilizar el código fuente en su propia aplicación sin licenciar su aplicación bajo la GPL también.
- Sage es difícil de usar como una biblioteca. Por otro lado, tiene una interfaz de notebook muy agradable. Si desea hacer lo mismo con SymPy, la forma recomendada es usar el cuaderno IPython y ejecutar
from sympy import init_session; init_session()
from sympy import init_session; init_session()
en la parte superior (reemplaceinit_session
coninit_printing
si solo desea imprimir y no importar todo). - Sage incluye un poco de un DSL en la parte superior de Python. Por ejemplo, puede escribir
1/2
sin envolver los literales enteros, y devolverá un racional.x^2
da x al cuadrado, noXor(x, 2)
. No estoy seguro de si define las variables automáticamente para usted de forma predeterminada. Esto significa que las cosas que haces en una sesión interactiva de Sage pueden no traducirse directamente a un script de Python. Por otro lado, esto puede ser útil para uso interactivo (por cierto, SymPy también tieneisympy -I
que hace algunas cosas similares).
Tal vez eso no es lo que estabas buscando. Probablemente querías algunas características matemáticas reales. Pero como dije, Sage incluye SymPy, así que por definición, cada característica de SymPy será una característica de Sage. En la práctica, este no es necesariamente el caso porque Sage no siempre usa SymPy de forma predeterminada (no estoy seguro de cuál es el estado actual de esto), por lo que es posible que tenga que llamar a SymPy manualmente si desea usarlo desde dentro de sabio.