with(linalg): makeMatrix:=proc(T,lvl,ver) local i,j,m,nver; nver:=nops(ver); m:=matrix(nver,nver); for i from 12 to 11+nver do for j from 1 to nver do m[j,i-11]:=T[ver[j],i]; end do; end do; RETURN(m); end; makeMatrixVers:=proc(lvl) local ver; ver:=vertices(lvl); ver:=subsop(1=NULL,2=NULL,3=NULL,ver); RETURN(ver); end; makePsi:=proc(T,n,mi,ver,sumlvl,sumvers) local i,j,nver; nver:=nops(ver); for i in sumvers do T[i,n+12+nver-1]:=0; for j from 1 to nver do T[i,n+12+nver-1]:=T[i,n+12+nver-1]+T[i,j+11]*mi[j,n]; end do; end do; end; makeAllPsi:=proc(T,matrixlvl,sumlvl) local ver,i,m,mi,sumvers,nver; ver:=makeMatrixVers(matrixlvl); m:=makeMatrix(T,matrixlvl,ver); mi:=evalf(inverse(m),20); print(mi); sumvers:=vertices(sumlvl); nver:=nops(ver); for i from 1 to nver do makePsi(T,i,mi,ver,sumlvl,sumvers); end do; end;