本文整理汇总了Python中sage.modules.free_module.VectorSpace.zero_vector方法的典型用法代码示例。如果您正苦于以下问题:Python VectorSpace.zero_vector方法的具体用法?Python VectorSpace.zero_vector怎么用?Python VectorSpace.zero_vector使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类sage.modules.free_module.VectorSpace
的用法示例。
在下文中一共展示了VectorSpace.zero_vector方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: algebraic_topological_model
# 需要导入模块: from sage.modules.free_module import VectorSpace [as 别名]
# 或者: from sage.modules.free_module.VectorSpace import zero_vector [as 别名]
#.........这里部分代码省略.........
# n-cells in K, and vector is the image of that n-cell, as an
# element in the free module of (n+1)-chains for K.
phi_dict = {}
# For each n, pi_dict[n] is a dictionary of the same form, except
# that the target vectors should be elements of the chain complex M.
pi_dict = {}
# For each n, iota_dict[n] is a dictionary of the form {cell:
# vector}, where cell is one of the generators for M and vector is
# its image in C, as an element in the free module of n-chains.
iota_dict = {}
for n in range(K.dimension()+1):
gens[n] = []
phi_dict[n] = {}
pi_dict[n] = {}
iota_dict[n] = {}
C = K.chain_complex(base_ring=base_ring)
# old_cells: cells one dimension lower.
old_cells = []
for dim in range(K.dimension()+1):
n_cells = K.n_cells(dim)
diff = C.differential(dim)
# diff is sparse and low density. Dense matrices are faster
# over finite fields, but for low density matrices, sparse
# matrices are faster over the rationals.
if base_ring != QQ:
diff = diff.dense_matrix()
rank = len(n_cells)
old_rank = len(old_cells)
V_old = VectorSpace(base_ring, old_rank)
zero = V_old.zero_vector()
for c_idx, c in enumerate(zip(n_cells, VectorSpace(base_ring, rank).gens())):
# c is the pair (cell, the corresponding standard basis
# vector in the free module of chains). Separate its
# components, calling them c and c_vec:
c_vec = c[1]
c = c[0]
# No need to set zero values for any of the maps: we will
# assume any unset values are zero.
# From the paper: phi_dict[c] = 0.
# c_bar = c - phi(bdry(c))
c_bar = c_vec
bdry_c = diff * c_vec
# Apply phi to bdry_c and subtract from c_bar.
for (idx, coord) in bdry_c.iteritems():
try:
c_bar -= coord * phi_dict[dim-1][idx]
except KeyError:
pass
bdry_c_bar = diff * c_bar
# Evaluate pi(bdry(c_bar)).
pi_bdry_c_bar = zero
for (idx, coeff) in bdry_c_bar.iteritems():
try:
pi_bdry_c_bar += coeff * pi_dict[dim-1][idx]
except KeyError:
pass