Deje $K$ ser un entero dado, con $K$ incluso (y "grande"). Deje $\mathbf{v} \in \mathbb{R}^{K \times 1}$ ser un determinado distinto de cero (columna) del vector. Escribe una (posiblemente eficaz) algoritmo para la construcción de una matriz de $\mathbf{B} \in \mathbb{R}^{K \times K-1}$ como que: $(1)$ la columna de vectores de $\mathbf{B}$ son ortogonales a cada uno de los otros; $(2)$ $\mathbf{B^T v} = \mathbf{0}$, donde $^T$ denota la transpuesta y $\mathbf{0}$ a ((K-1)-dimensional) vector de ceros.
Denotando con $\mathbf{b}_i$, $i=1,\dots,K-1$, el $i$-ésima columna de a $\mathbf{B}$, el primer requisito puede ser reescrita como: $\mathbf{b}_i^T \mathbf{b}_j = 0$$i \neq j$.
Esencialmente, el problema pide escribir un algoritmo para encontrar una base ortogonal para el complemento ortogonal de la (mono-dimensional) el espacio recorrido por $\mathbf{v}$. El algoritmo escrito en pseudocódigo (o en MATLAB o en C-como código). El algoritmo toma en la entrada el vector $\mathbf{v}$ y el entero $K$; su resultado es la matriz $\mathbf{B}$.
Nota: el algoritmo no puede hacer un "azar" prueba y error", es decir, generar un vector aleatorio, probar si es ortogonal a $\mathbf{v}$ y a la que anteriormente se encuentran las columnas de a $\mathbf{B}$, descartar si no, memorizar si es. Este es un explícitamente prohibido por fuerza bruta enfoque. Sin embargo, sí está permitido hacer esto como una etapa de inicialización, es decir, para la primera columna de la matriz o como una "estimación aleatoria" en el inicio, si es necesario para ello debe surgir. La "normalidad", es decir, la búsqueda de una base ortonormales, no es necesario. Comprobación de entrada (por ejemplo, la comprobación de si $K$ es un entero par) no es necesario.
EDIT: Mis pensamientos e intentos anteriores: El problema es esencialmente de una aplicación de Gram-Schmidts orthonormalization proceso. Sin embargo, no puede simplemente ser utilizado como se ha indicado, debido a que las bacterias Gram-Schimdts teorema supone empezar con una base (que no tenemos). Lo que realmente podemos construir es un sistema generador de vectores, es decir, $\mathbf{v}, e_1, \dots, e_K$ donde $e_i$ indica el $i$-th canónica de la base vectorial.
Ya he implementado Gram-Schmidts, prestando atención a numérica de problemas. El problema es de un ligero generalización del proceso, en el que no se empiece con una base, pero con un sistema generador, encontrar una base adecuada en el conjunto (no sé cómo hacerlo), el cual debe contener $\mathbf{v}$ como su primer elemento y, a continuación, aplicar Gram-Schimdts proceso.
P. S. Cualquier ayuda es muy apreciada, y yo no soy maestro de álgebra lineal, especialmente numérica de las implementaciones. Gracias.