Question: The programme got some error when n>3

Good day,

Before this I've run my programme (n=2 and 3), it's ok. But now, when I run the same programme (for n=4), it's got error, why?. This is my programme.

> isom:=proc(A,B,n)

locali,j,k,s,r,eqns,t,ISM,BChange,sols,l,S1,S2,C;

C:=matrix(n,n);

BChange:=matrix(n,n);

ISM:=0;

eqns:={};

for i to n do

for j to n do

for l to n do

S1:=sum(A[i,j,k]*C[l,k],k=1..n);S2:=sum(C[p,i]*(sum(C[r,j]*B[p,r,l],r=1..n)),p=1..n); eqns:=union(eqns,{S1=S2})

end do end do end do;

sols:=[solve(eqns)];

t:=nops(sols);

for i to t do

for j to n do

for k to n do

BChange[j,k]:=subs(sols[i],C[j,k]) end do end do;

if simplify((linalg:-det)(BChange))<>0then print(BChange); print("The det is",simplify((linalg:-det)(BChange))); ISM:=1 end if

end do;

if ISM=0then print("These two algebras are not isomorphic") end if

end proc;
 

> A1 := array(sparse, 1 .. 4, 1 .. 4, 1 .. 4, [(1, 1, 1) = 1, (2, 2, 2) = 1, (3, 3, 3) = 1, (4, 4, 4) = 1]);
> A2 := array(sparse, 1 .. 4, 1 .. 4, 1 .. 4, [(1, 1, 1) = 1, (1, 2, 2) = 1, (2, 1, 2) = 1, (3, 3, 3) = 1, (4, 4, 4) = 1]);
> A3 := array(sparse, 1 .. 4, 1 .. 4, 1 .. 4, [(1, 1, 1) = 1, (1, 2, 2) = 1, (2, 1, 2) = 1, (3, 3, 3) = 1, (3, 4, 4) = 1, (4, 3, 4) = 1]);
> A4 := array(sparse, 1 .. 4, 1 .. 4, 1 .. 4, [(1, 1, 1) = 1, (1, 2, 2) = 1, (1, 3, 3) = 1, (2, 1, 2) = 1, (2, 2, 3) = 1, (3, 1, 3) = 1, (4, 4, 4) = 1]);
> A5 := array(sparse, 1 .. 4, 1 .. 4, 1 .. 4, [(1, 1, 1) = 1, (2, 2, 2) = 1, (3, 2, 3) = 1, (4, 3, 3) = 1, (4, 4, 4) = 1]);
>
> isom(A1, A2, 4);
> isom(A1, A3, 4);
> isom(A1, A4, 4);
> isom(A1, A5, 4);
 

 

Thank you.

Please Wait...