Pb with knot.alexander_polynomial()

asked 2022-09-28 10:24:19 +0200

ortollj gravatar image

updated 2022-09-30 11:16:27 +0200

Hi

Sagemath9.7 Ubuntu22.04 in WSL2 W11

It's seems there is a problem with the function .alexander_polynomial()

The function never stops in this case:

#b0=[4, 5, 2, -4]
b1=[5, 6, 3, -5, 1]
oGc=[[[-1, 1], [-2, 2], [-3, -4, 4, -5], [3, 5]], [1, 1, 1, 1, -1]] # 
oGcKnot=Link(oGc)
oGcKnotPlt=plot(oGcKnot,axes=False)
show(oGcKnotPlt)
oGcKnot.alexander_polynomial()
#oGcKnot.jones_polynomial()

image description

[edited 30/09/2022]

the problem seems that the function does not support an unknot with several crossings. if you uncomment last line of the code below , it 's never stop

def addMirOrGauss(k0,k1,miror) :
    """ link K0 with k1 """
    if miror==True :
        k1=k1.mirror_image()
    #show("k0 ogc :\t ", k0.oriented_gauss_code())
    #show("k1 ogc :\t ", k1.oriented_gauss_code())
    nbCrossk0=len(k0.oriented_gauss_code()[-1])
    oGck0k1=[[k0.oriented_gauss_code()[0][0]+[ (abs(el)+nbCrossk0)*sign(el) for el in k1.oriented_gauss_code()[0][0]]],
         k0.oriented_gauss_code()[-1] + k1.oriented_gauss_code()[-1]]
    #show("k0k1 OGC :\t",oGck0k1)
    return  oGck0k1 

B0=BraidGroup(2)
b0=B0([1])
b0K=Link(b0)
oGcb0K=b0K.oriented_gauss_code()
alexPolyb0K= b0K.alexander_polynomial()

B1=BraidGroup(4)
b1=B1([ 3])
b1K=Link(b1)
oGcb1K=b1K.oriented_gauss_code()
alexPolyb1K= b1K.alexander_polynomial()

show(plot(b0))
show(plot(b1))

print('oGcb0K : ',oGcb0K)
print('b0 alexander_polynomial : ', alexPolyb0K)

print('oGcb1K : ',oGcb1K)
print('b1 alexander_polynomial : ', alexPolyb1K)

oGck0k1=addMirOrGauss(b0K,b1K,False)
b0b1K=Link(oGck0k1)
print('sum of k0 and k1 oGck0k1 Gauss Oriented code : ',oGck0k1 )
show(plot(b0b1K,axes=False))
#b0b1K.alexander_polynomial()
edit retag flag offensive close merge delete

Comments

The method .braid() is already stuck somewhere

FrédéricC gravatar imageFrédéricC ( 2022-09-28 11:21:54 +0200 )edit

I take this opportunity to point out something not very logical 1*1=0 ?

B0=BraidGroup(2)

b0=B0([ 1])
show(plot(b0))
print('b0.alexander_polynomial :', b0.alexander_polynomial())

B1=BraidGroup(4)

b1=B1([ 1,3])
show(plot(b1))
print('b1.alexander_polynomial :', b1.alexander_polynomial())
ortollj gravatar imageortollj ( 2022-09-29 07:47:02 +0200 )edit