本文整理汇总了Python中sage.modules.free_module.VectorSpace.subspace方法的典型用法代码示例。如果您正苦于以下问题:Python VectorSpace.subspace方法的具体用法?Python VectorSpace.subspace怎么用?Python VectorSpace.subspace使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类sage.modules.free_module.VectorSpace
的用法示例。
在下文中一共展示了VectorSpace.subspace方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_satisfy_inter
# 需要导入模块: from sage.modules.free_module import VectorSpace [as 别名]
# 或者: from sage.modules.free_module.VectorSpace import subspace [as 别名]
def test_satisfy_inter(self):
v_space = VectorSpace(QQ,4)
sub = v_space.subspace([[1,-1,1,1],[2,-3,4,5]])
comp = orth_complement(v_space,sub)
zero = v_space.subspace([v_space.zero()])
inter = sub.intersection(comp)
self.assertEqual(zero,inter)
示例2: homology
# 需要导入模块: from sage.modules.free_module import VectorSpace [as 别名]
# 或者: from sage.modules.free_module.VectorSpace import subspace [as 别名]
def homology(self,varient="complement",*args):
hom = {}
cc = self.chain_complex(varient,(-1,self.poly_ring.ngens()+1),*args)
#Some need wider return range
for i in range(self.poly_ring.ngens()+1):
vs_am = VectorSpace(QQ,len(cc[i]))
if len(cc[i])==0:
hom[i] = []
continue
if len(cc[i-1])!=0:
d_im = []
for b in cc[i-1]:
d_b = self.differential(b,varient,*args)
d_im.append(lift_to_basis(d_b,cc[i]))
img = vs_am.subspace(d_im)
else:
img = vs_am.subspace([vs_am.zero()])
if len(cc[i+1])!=0:
d_ker = []
for b in cc[i]:
d_b = self.differential(b,varient,*args)
d_ker.append(lift_to_basis(d_b,cc[i+1]))
ker = (matrix(QQ,d_ker)).left_kernel()
else:
ker = vs_am
quo = ker.quotient(img)
hom[i] = []
for b in quo.basis():
vec = quo.lift(b)
part_sum = LogarithmicDifferentialForm.make_zero(i,self)
for c,f in zip(vec,cc[i]):
part_sum = part_sum + c*f
hom[i].append(part_sum)
return hom
示例3: _complex_relative
# 需要导入模块: from sage.modules.free_module import VectorSpace [as 别名]
# 或者: from sage.modules.free_module.VectorSpace import subspace [as 别名]
def _complex_relative(self,n,*args):
if len(args)==2:
complex = []
for i in range(args[0],args[1]):
complex.append(self._complex_relative(n,i))
return complex
if n<0 or n>self.poly_ring.ngens():
return []
if n==0:
hom_basis = self._p_graded_module(n).homogeneous_part_basis(self.degree+args[0])
return [LogarithmicDifferentialForm(n,b,self) for b in hom_basis]
base = self._p_graded_module(n).homogeneous_part_basis(self.degree+args[0])
if len(base)==0:
return []
vs_base = VectorSpace(QQ,len(base))
df_base = [LogarithmicDifferentialForm(n,b,self) for b in base]
pre_base = self._p_graded_module(n-1).homogeneous_part_basis(self.degree+args[0])
if len(pre_base)==0:
return df_base
dh = [self.divisor.derivative(g) for g in self.poly_ring.gens()]
dh = LogarithmicDifferentialForm(1,dh,self)
rel_gens = []
for b in pre_base:
b_form = LogarithmicDifferentialForm(n-1,b,self)
w = dh.wedge(b_form)
rel_gens.append(lift_to_basis([w],df_base))
rel = vs_base.subspace(rel_gens)
comp = orth_complement(vs_base,rel)
#Lift
rel_complex = []
for vec in comp.basis():
rel_complex.append(_weighted_sum(vec,df_base,self))
return rel_complex
示例4: _differential_relative
# 需要导入模块: from sage.modules.free_module import VectorSpace [as 别名]
# 或者: from sage.modules.free_module.VectorSpace import subspace [as 别名]
def _differential_relative(self,form,*args):
n = form.degree
deg = self._p_graded_module(n).total_degree(form.vec)
deg -= self.degree
der = form.derivative()
full = self._p_graded_module(n+1).homogeneous_part_basis(self.degree+deg)
full_forms = [LogarithmicDifferentialForm(n+1,b,self) for b in full]
full_space = VectorSpace(QQ,len(full))
target_comp = self._complex_relative(n+1,deg)
comp_vecs = []
for b in target_comp:
comp_vecs.append(lift_to_basis([b],full_forms))
comp_vecs = full_space.subspace(comp_vecs)
lift_full = lift_to_basis([der],full_forms)
lift_prog = comp_vecs.basis_matrix()*vector(lift_full)
return [_weighted_sum(lift_prog,target_comp,self)]
示例5: test_satisfy_sum
# 需要导入模块: from sage.modules.free_module import VectorSpace [as 别名]
# 或者: from sage.modules.free_module.VectorSpace import subspace [as 别名]
def test_satisfy_sum(self):
v_space = VectorSpace(QQ,4)
sub = v_space.subspace([[1,1,1,-1],[2,-3,41,5]])
comp = orth_complement(v_space,sub)
self.assertEqual(v_space,sub+comp)
示例6: test_comp
# 需要导入模块: from sage.modules.free_module import VectorSpace [as 别名]
# 或者: from sage.modules.free_module.VectorSpace import subspace [as 别名]
def test_comp(self):
v_space = VectorSpace(QQ,4)
sub = v_space.subspace([[1,1,1,1],[2,2,-3,-1]])
comp = orth_complement(v_space,sub)
true_comp = v_space.subspace([[19,-17,3,-5],[1,-1,0,0]])
self.assertEqual(comp,true_comp)
示例7: test_full
# 需要导入模块: from sage.modules.free_module import VectorSpace [as 别名]
# 或者: from sage.modules.free_module.VectorSpace import subspace [as 别名]
def test_full(self):
v_space = VectorSpace(QQ,4)
zero = v_space.subspace([v_space.zero()])
comp = orth_complement(v_space,v_space)
self.assertEqual(zero,comp)