Esta es una muy buena ocasión para aplicar el teorema fundamental del álgebra lineal en relación a los cuatro subespacios fundamentales de una matriz. (La pregunta correctamente contestada por muzzlator ya, me acaba de añadir una explicación más detallada a continuación y espero que sea útil para algunas personas.)
En primer lugar, el uso de $a_1,\dots,a_n \in \mathbb{R}^m$ para formar un $m\times n$ matriz $A$, con cada vector como una columna de la matriz. La dimensión de la columna en el espacio de $A$ es designado como $r$, el número de vectores linealmente independientes entre vectores $a_j, (j=1\dots n)$, e $r$ es también el rango de $A$. Entonces el problema de encontrar alguna vector ortogonal a $a_1,\dots, a_n$ es equivalente a encontrar la solución en la "izquierda nullspace" de $A$, designado como $N(A^T)$, por la solución de la siguiente ecuación:
$$A^T x = 0.$$
$A^T$ $n\times m$ , y la dimensión de $N(A^T) = m-r$. (En realidad, lo que encontramos aquí es el complemento ortogonal de la original subespacio. Esto es mucho mejor que encontrar sólo algunos vectores ortogonales.) Si el original de la lista de vectores span $\mathbb{R}^m$, significa que el rango de $A$ es igual a $m$, y la dimensión de la izquierda nullspace es $m-r = m-m =0$. Así que, en este caso, la única solución (el ortogonal del vector) es el vector cero, $(0,\dots, 0)$.
Eliminación de Gauss (para obtener la forma escalonada de la matriz) es el método para encontrar la solución a $A^Tx=0$. Por otro lado, las bacterias Gram-Schmidt es el proceso para construir una normalizado ortogonal ("ortonormales") después de que han encontrado los vectores en $N(A^T)$.
En tu post, estás en lo correcto uso de los vectores como las filas de una matriz, por lo que no es necesario transponer la matriz para encontrar la respuesta. (Personalmente prefiero mantener la matriz como un $m\times n$ matriz tanto como sea posible.)