Программирование и научные вычисления на языке Python/§19: различия между версиями

Содержимое удалено Содержимое добавлено
Нет описания правки
Нет описания правки
Строка 1:
Хотя численные вычисления, некоторые методы которых описаны в предыдущих уроках, и находят широкое применение, большей точностью и наглядностью обладают [[w:Cимвольные вычисления|символьные вычисления]], которые работают с математическими выражениями, собственно, как и предполагает математика, как с последовательностями символов. Системы, занимающиеся символьными вычислениями, называют также системами компьютерной алгебры. Примерами таких систем служат известные математические среды [[w:Maple|Maple]], [[w:Mathcad|Mathcad]], [[w:Mathematica|Mathematica]], [[w:Maxima|Maxima]] и т. д. В качестве инструмента символьных вычислений мы рассмотрим ,библиотеку ''SymPy''.
 
''SymPy'' представляет собой библиотеку символьных вычислений, которая в конечной цели стремится стать полноценной системой компьютерной алгебры, сохраняя при этом как можно более простой код, ясный для понимания и дальнейших изменений и дополнений. ''SymPy'' написан исключительно на Python и не требует никаких других библиотек. Установка SymPy происходит аналогично другим продуктам, рассмотренным ранее.
 
 
== isimpyisympy ==
Если вы уже используете для своих научных экспериментов IPython, то для вас окажется приятным тот факт, что в SymPy для него имеется обертка — isympy, запуск которой в консоли позволяет упростить некоторые стандартные действия относительно переменных:
 
Строка 29:
</source>
 
 
== Калькулятор ==
SymPy содержит три встроенных числовых типа: Real, Rational и Integer. Класс Rational отвечает за дроби, любую пару целых чисел он определяет как числитель и знаменатель, далее над дробями можно производить типичные действия: умножать, делить, складывать и так далее, при этом например:
 
 
<source lang="python">
>>> from sympy import *
>>> b = Rational(1, 2)
>>> a
1/2
>>> a*2
1
>>> a/2
1/4
>>> b = Rational(1.7, 5) # действительные числа также представляются как целые
>>> b
1/5
>>> a*b
1/20
>>> a+b
9/20
>>> a-b
1/20
>>> Rational(2)/Rational(5)
2/5
>>> Rational(2)**50/Rational(10)**50
1/88817841970012523233890533447265625
 
# при этом:
>>> 1/2
0
>>> 1.0/2
0.5
 
</source>