Sympy Документация
- Eng:
- http://docs.sympy.org/latest/index.html - документация по SymPy
- http://docs.sympy.org/latest/tutorial/index.html - Tutorial официальный
- sympy_tutorial.pdf - pdf, 12 страниц
- Русский:
- http://www.asmeurer.com/sympy_doc/dev-py3k/tutorial/tutorial.ru.html - Tutorial официальный для версии 0.7.2, перевод на русский
Запуск notebook
ipython notebookImport
В примерах будем предполагать, что мы импортировали все функции из модуля sympy.from sympy import *
sin
разная. Это math.sin, numpy.sin, sympy.sin. Если мы пишем в коде sympy.sin(0)
то точно знаем какую функцию вызываем (из библиотеки sympy).
Если сделаем
from sympy import * from numpy import * sin(0) # какой sin использовали? sympy.sin или numpy.sin ?
from sympy import Symbol, symbols, sin, PI sin(0)
Вывод красиво (в начале пишем)
init_printing - для красивой печати результатовimport sympy sympy.init_printing() %pylab inline
Зачем sympy?
Числа в python
В Python есть два типа для хранения чиселint
и float
У int
работает целочисленное деление (берется целая часть результата)
>>> type(3) int >>> type(3.14) float >>> 1/3 0
sqrt
может вычислить квадратный корень
>>> import math >>> math.sqrt(9) 3.0 >>> math.sqrt(8) 2.82842712475
float
, например, 1/3 + 2/3 это 1. Но если посчитать в виде десятичных дробей, то потеряем точность и не получим 1.
Хочется считать точно и не терять корни.
>>> import sympy >>> sympy.sqrt(3) sqrt(3) >>> sympy.sqrt(8) 2*sqrt(2)
Символы (Symbol, symbols, var)

Symbol - одна переменная
In [4]: x = sympy.Symbol("x") # определили переменную х
In [9]: x = sympy.Symbol("x") In [10]: y = sympy.Symbol("y", positive=True) In [11]: sympy.sqrt(x ** 2) Out[11]: sqrt(x**2) # х может быть и отрицательным, поэтому sqrt(x**2) не всегда равно х In [12]: sympy.sqrt(y ** 2) Out[12]: y # при создании у мы указали, что оно всегда положительное; sqrt(y ** 2) равно y
-- TatyanaDerbysheva - 08 Apr 2017