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

Содержимое удалено Содержимое добавлено
Строка 570:
 
== Линейная алгебра ==
Матрицы создаются как экземпляры специального класса:
 
 
<source lang="python">
>>> from sympy import Matrix
>>> Matrix([[1,0], [0,1]])
[1, 0]
[0, 1]
</source>
 
 
В них можно использовать не только числа, но и символы:
 
 
<source lang="python">
>>> x = Symbol('x')
>>> y = Symbol('y')
>>> A = Matrix([[1,x], [y,1]])
>>> A
[1, x]
[y, 1]
 
>>> A**2
[1 + x*y, 2*x]
[ 2*y, 1 + x*y]
</source>
 
 
 
== Сопоставление с образцом ==
[[w:Сопоставление с образцом|Сопоставление с образцом]] (англ. Pattern matching) — метод анализа списков или других структур данных на наличие в них заданных образцов. для проведения сопоставления используется метод <tt>.match()</tt>, с использованием объекта класса <tt>Wild</tt>. Метод возвращает словарь с соответствующим решением:
 
<source lang="python">
>>> from sympy import *
>>> x = Symbol('x')
>>> p = Wild('p')
>>> (5*x**2).match(p*x**2)
{p_: 5}
 
>>> q = Wild('q')
>>> (x**2).match(p*x**q)
{p_: 1, q_: 2}
</source>
 
 
Если сопоставление не дает результатов, возвращается объект <tt>None</tt>:
 
 
<source lang="python">
>>> x = Symbol('x')
>>> p = Wild('p', exclude=[1,x])
>>> print (x+1).match(x+p) # 1 is excluded
None
>>> print (x+1).match(p+1) # x is excluded
None
>>> print (x+1).match(x+2+p) # -1 is not excluded
{p_: -1}
</source>
 
<source lang="python">
 
</source>
 
<source lang="python">
 
</source>
 
<source lang="python">
 
</source>