Consideremos el sistema formado por las ecuaciones implícitas de ambas variedades, y obtengamos las matrices de coeficientes y ampliada:

(%i8) S : matrix([ 3, - 1, - 1, 1, 0, 1],[ 1, 2, 0, - 1, 1, 0]) $
T : matrix([ - 1, 1, - 2, 0, - 1, 0],[ 0, 0, 3, 2, 0, 1],[ 4, 1, - 1, 0, 1, 4]) $
Ab : addrow( S, T) ;
A : submatrix( Ab, matrix_size( Ab)[ 2]) $
print( "rango S:", rank( S)) $
print( "rango T:", rank( T)) $
print( "rango matriz de coeficientes:", rank( A)) $
print( "rango matriz ampliada:", rank( Ab)) $
(Ab) [ 3 1 1 1 0 1 1 2 0 1 1 0 1 1 2 0 1 0 0 0 3 2 0 1 4 1 1 0 1 4 ] 0 errores, 0 advertencias rango S: 2 rango T: 3 rango matriz de coeficientes: 4 rango matriz ampliada: 5

Ahora, apliquemos el cuadro de decisión:

(%i10) dr : max( rank( S), rank( T)) $
if ( rank( A) = dr) then
   if ( rank( A) = rank( Ab)) then print( "Son Incidentes")         
       else print( "Son Paralelas")
else if ( rank( A) = rank( Ab)) then print( "Se cortan")         
   else print( "Se cruzan") $ ;
Se cruzan

Created with wxMaxima.