Supongamos que tengo $k$ vectores en $\mathbb R^n$ que son ortogonales entre sí ( $k \ll n$ ). ¿Existe una forma eficiente de encontrar otro vector que sea ortogonal a todos estos vectores dados?
Si ponemos el $k$ vectores en un $k \times n$ matriz, denotada por $A$ entonces el problema es idéntico a encontrar un vector en el espacio nulo de $A$ . Por supuesto, se puede recurrir al método de resolución de un sistema lineal subdeterminado para encontrar el espacio nulo de $A$ pero al hacer esto hemos obtenido todos los vectores que abarcan el espacio nulo de $A$ . Para $k \ll n$ Esto no es eficiente, ya que sólo necesito un vector en el espacio nulo.
Me pregunto si existe una forma más inteligente.
0 votos
¿Podría hacer un cambio de coordenadas para que todos sus $k$ los vectores ortogonales apuntan a lo largo de los ejes de coordenadas, y entonces sólo hay que tomar cualquier vector que apunte a lo largo de uno de los otros $n-k$ ¿ejes?
0 votos
Creo que encontrar esta transformación es más costoso que encontrar el espacio nulo, ya que encontrar el espacio nulo sólo lleva $k-1$ Eliminaciones gaussianas.
8 votos
¿Funcionaría adivinar un vector linealmente independiente y luego tomar la parte ortogonal? Se puede hacer que un vector sea ortogonal a un conjunto dado de vectores utilizando métodos similares a los de Gram-Schmidt...
0 votos
@JohannesKloos Ese es un buen punto. Si tengo un vector linealmente independiente, entonces basta con un solo paso de Gram-Schmidt, que básicamente consiste en calcular $k$ proyecciones. Pero, ¿hay alguna manera de obtener un vector linealmente independiente (excepto adivinando)?
2 votos
@YuanGao, siguiendo el comentario de Johannes, puedes siempre elige un elemento de la base canónica en $\;\Bbb R^n\;$ para añadirlo a tu conjunto linealmente independiente y obtener un conjunto lin. ind., con lo que tu "adivinación" se reduce seriamente. Después de esto, aplique el primer paso de Gram-Schmidt, es decir, la proyección ortogonal del vector elegido anteriormente en el ámbito de la primera $\;k\;$ vectores dados (sin la parte de normalización, ya que sólo te interesa la ortogonalidad).
0 votos
@DonAntonio ¡Buena visión! Si miramos la complejidad del peor caso de este método, parece ser $O(nk^2)$ porque en el peor de los casos tenemos que elegir $k+1$ elementos de la base canónica, y para cada paso de Gram-Schmidt necesitamos calcular $k$ proyecciones, y para cada proyección necesitamos una operación de producto interno que tome $O(n)$ . La complejidad temporal para realizar la eliminación gaussiana en la matriz $A$ también toma $O(nk^2)$ . Pero al menos tenemos un algoritmo que es asintóticamente tan rápido como encontrar el espacio nulo :)
0 votos
Sí @YuanGao, eso parece.
0 votos
¿No se puede eliminar la dependencia de $n$ asumiendo que todas las entradas después de $k+1$ son cero? Es decir, truncar su $k$ vectores dados a la longitud $k+1$ encontrar algo ortogonal a estos vectores en ${\bf R}^{k+1}$ y luego rellenarlo con ceros.
0 votos
@GerryMyerson Los vectores truncados no son necesariamente ortogonales entre sí. Consideremos un contraejemplo en el que se nos da $[1,-1,1,-1]$ y $[1,-1,1,3]$ . Su método podría devolver un vector como $[1,1,0,0]$ que no es válido.
0 votos
¿Por qué es $(1,1,0,0)$ ¿Inválido? ¿No es ortogonal a los otros vectores?
0 votos
Pregunta similar publicada en MO sin ningún aviso en ninguno de los dos sitios, mathoverflow.net/questions/168721/