多面体¶
- class sympy.combinatorics.polyhedron.Polyhedron(corners, faces=(), pgroup=())[源代码][源代码]¶
表示多面体对称群(PSG)。
- 属性:
args
返回 ‘self’ 的参数元组。
array_form
返回角点的索引。
assumptions0
返回对象 \(type\) 假设。
canonical_variables
返回一个字典,将
self.bound_symbols
中定义的任何变量映射到与表达式中任何自由符号不冲突的符号。corners
获取多面体的角点。
cyclic_form
返回以循环记法表示的角的索引。
edges
给定多面体的面,我们可以得到边。
- expr_free_symbols
faces
获取多面体的面。
free_symbols
从自身的原子中返回那些自由符号。
func
表达式中的顶级函数。
- is_algebraic
- is_antihermitian
- is_commutative
is_comparable
如果 self 可以计算为一个具有精度的实数(或已经是一个实数),则返回 True,否则返回 False。
- is_complex
- is_composite
- is_even
- is_extended_negative
- is_extended_nonnegative
- is_extended_nonpositive
- is_extended_nonzero
- is_extended_positive
- is_extended_real
- is_finite
- is_hermitian
- is_imaginary
- is_infinite
- is_integer
- is_irrational
- is_negative
- is_noninteger
- is_nonnegative
- is_nonpositive
- is_nonzero
- is_odd
- is_polar
- is_positive
- is_prime
- is_rational
- is_real
- is_transcendental
- is_zero
pgroup
获取多面体的排列。
size
获取多面体的角数。
vertices
获取多面体的角点。
方法
as_content_primitive
([radical, clear])一个存根,允许在计算表达式的内容和基本组件时跳过基本参数(如元组)。
as_dummy
()返回表达式,其中任何具有结构绑定符号的对象都被替换为在其出现的对象中唯一的规范符号,并且仅对交换性具有默认假设为True。
atoms
(*types)返回构成当前对象的原子。
class_key
()类的好顺序。
compare
(other)如果对象在规范意义上小于、等于或大于其他对象,则返回 -1、0、1。
count
(query)计算匹配的子表达式的数量。
count_ops
([visual])用于返回操作计数的 count_ops 的包装器。
doit
(**hints)评估默认情况下不评估的对象,如极限、积分、求和和乘积。
dummy_eq
(other[, symbol])比较两个表达式并处理哑符号。
find
(query[, group])查找所有匹配查询的子表达式。
fromiter
(args, **assumptions)从可迭代对象创建一个新对象。
has
(*patterns)测试是否有任何子表达式匹配任何模式。
has_free
(*patterns)如果 self 包含对象
x
作为自由表达式,则返回 True,否则返回 False。has_xfree
(s)如果 self 有 s 中的任何一个模式作为自由参数,则返回 True,否则返回 False。
is_same
(b[, approx])如果 a 和 b 结构相同则返回 True,否则返回 False。
match
(pattern[, old])模式匹配。
matches
(expr[, repl_dict, old])用于 match() 的辅助方法,用于在 self 中的通配符符号与 expr 中的表达式之间寻找匹配。
rcall
(*args)通过表达式树递归应用于参数。
refine
([assumption])请参阅 sympy.assumptions 中的 refine 函数。
replace
(query, value[, map, simultaneous, exact])将
self
中匹配的子表达式替换为value
。reset
()将角落恢复到原始位置。
rewrite
(*args[, deep])使用定义的规则重写 self。
rotate
(perm)对多面体进行置换 就地 操作。
simplify
(**kwargs)请参阅 sympy.simplify 中的 simplify 函数。
sort_key
([order])返回一个排序键。
subs
(*args, **kwargs)在简化参数后,在表达式中用新内容替换旧内容。
xreplace
(rule)替换表达式中对象的出现。
复制
could_extract_minus_sign
is_hypergeometric
参考文献
- property array_form¶
返回角点的索引。
索引是相对于角落的原始位置给出的。
参见
示例
>>> from sympy.combinatorics.polyhedron import tetrahedron >>> tetrahedron = tetrahedron.copy() >>> tetrahedron.array_form [0, 1, 2, 3]
>>> tetrahedron.rotate(0) >>> tetrahedron.array_form [0, 2, 3, 1] >>> tetrahedron.pgroup[0].array_form [0, 2, 3, 1]
- property corners¶
获取多面体的角点。
方法
vertices
是corners
的别名。示例
>>> from sympy.combinatorics import Polyhedron >>> from sympy.abc import a, b, c, d >>> p = Polyhedron(list('abcd')) >>> p.corners == p.vertices == (a, b, c, d) True
- property cyclic_form¶
返回以循环记法表示的角的索引。
索引是相对于角落的原始位置给出的。
参见
- property edges¶
给定多面体的面,我们可以得到边。
示例
>>> from sympy.combinatorics import Polyhedron >>> from sympy.abc import a, b, c >>> corners = (a, b, c) >>> faces = [(0, 1, 2)] >>> Polyhedron(corners, faces).edges {(0, 1), (0, 2), (1, 2)}
- property faces¶
获取多面体的面。
- property pgroup¶
获取多面体的排列。
- reset()[源代码][源代码]¶
将角落恢复到原始位置。
示例
>>> from sympy.combinatorics.polyhedron import tetrahedron as T >>> T = T.copy() >>> T.corners (0, 1, 2, 3) >>> T.rotate(0) >>> T.corners (0, 2, 3, 1) >>> T.reset() >>> T.corners (0, 1, 2, 3)
- rotate(perm)[源代码][源代码]¶
对多面体进行排列 就地 。排列可以作为 Permutation 实例给出,或者作为整数指示应从 Polyhedron 的 pgroup 中应用哪个排列。
这是一种类似于围绕轴以固定增量旋转的操作。
注释
当应用一个置换时,不会进行检查以确定该置换是否对多面体有效。例如,立方体可能被赋予一个仅交换两个顶点的置换。如果仅使用多面体的
pgroup
中的置换,将获得一个有效的置换(以物理方式旋转对象)。另一方面,允许任意旋转(置换的应用)提供了一种跟踪命名元素而不是索引的方式,因为多面体允许顶点被命名,而置换仅使用索引工作。示例
>>> from sympy.combinatorics import Polyhedron, Permutation >>> from sympy.combinatorics.polyhedron import cube >>> cube = cube.copy() >>> cube.corners (0, 1, 2, 3, 4, 5, 6, 7) >>> cube.rotate(0) >>> cube.corners (1, 2, 3, 0, 5, 6, 7, 4)
一种非物理性的“旋转”,不被此方法禁止:
>>> cube.reset() >>> cube.rotate(Permutation([[1, 2]], size=8)) >>> cube.corners (0, 2, 1, 3, 4, 5, 6, 7)
Polyhedron 可以用来跟踪集合中的元素,这些元素由字母而不是整数标识:
>>> shadow = h5 = Polyhedron(list('abcde')) >>> p = Permutation([3, 0, 1, 2, 4]) >>> h5.rotate(p) >>> h5.corners (d, a, b, c, e) >>> _ == shadow.corners True >>> copy = h5.copy() >>> h5.rotate(p) >>> h5.corners == copy.corners False
- property size¶
获取多面体的角数。
- property vertices¶
获取多面体的角点。
方法
vertices
是corners
的别名。示例
>>> from sympy.combinatorics import Polyhedron >>> from sympy.abc import a, b, c, d >>> p = Polyhedron(list('abcd')) >>> p.corners == p.vertices == (a, b, c, d) True