84 votos

¿Cómo encontrar un vector perpendicular a otro vector?

¿Cómo puedo encontrar un vector perpendicular a un vector como este: $$3\mathbf{i}+4\mathbf{j}-2\mathbf{k}?$$ ¿Alguien podría explicarme esto, por favor?

Tengo una solución para esto cuando tengo $3\mathbf{i}+4\mathbf{j}$, pero no pude resolverlo si tengo $3$ componentes...

Cuando busqué en Google, vi la solución directa pero no encontré un proceso o método a seguir. Por favor, házmelo saber. Gracias.

13 votos

Elige dos coordenadas, cámbialas, añade un signo negativo y completa con ceros. Por ejemplo: eligiendo i y j podría dar como resultado 4i-3j, eligiendo i y k podría dar como resultado 2i+3k y eligiendo j y k podría dar como resultado 2j+4k.

0 votos

@Didier gracias por avisarme, pero como me dijiste, tenemos 3 soluciones. 4i-3j, 2i+3k, 2j+4k no es un solo vector. Necesito un vector algo como ai+bj+ck que sea perpendicular a otro vector. Lo siento, pero acabo de empezar a aprender sobre vectores.

0 votos

$2j+4k=0i+2j+4k$.

61voto

codified Puntos 462

Existe un número infinito de vectores en 3 dimensiones que son perpendiculares a uno fijo. Solo deben cumplir la siguiente fórmula: $$(3\mathbf{i}+4\mathbf{j}-2\mathbf{k}) \cdot v=0$$

Para encontrar todos ellos, simplemente elige 2 vectores perpendiculares, como $v_1=(4\mathbf{i}-3\mathbf{j})$ y $v_2=(2\mathbf{i}+3\mathbf{k})$ y cualquier combinación lineal de ellos también es perpendicular al vector original: $$v=((4a+2b)\mathbf{i}-3a\mathbf{j}+3b\mathbf{k}) \hspace{10 mm} a,b \in \mathbb{R}$$

0 votos

¿Cómo se llama este tipo de notación? Nunca he visto un vector definido como $(3i + 4j - 2k)$. La notación que he visto hasta ahora sería $\left(\begin{array}{c}3\\4\\2\end{array}\right)$, por lo tanto, realmente no entiendo tu respuesta. :(

3 votos

Hay muchas posibles notaciones, elijo usar la misma notación de la pregunta, pero otras elecciones también son buenas. $i$, $j$, $k$ se refieren a los vectores $(1,0,0)$, $(0,1,0)$ y $(0,0,1)$, por lo que básicamente es lo mismo después de hacer la multiplicación de vector-escalar.

1 votos

@NiklasR Dado que querías un nombre, $\mathbf{i}$, $\mathbf{j}$ y $\mathbf{k}$ se llaman los cuaterniones hamiltonianos (clásicos) Hamiltonian Quaternions.

36voto

R K Sinha Puntos 381

Realiza el producto cruz con cualquier vector. Obtendrás un vector similar.

38 votos

A menos que el otro vector sea paralelo al vector original, en cuyo caso obtendrás $(0,0,0)$

2 votos

O que este outro vetor é (0, 0, 0)

3 votos

Tomar cualquier vector a ciegas es arriesgado. Porque puede ser paralelo o casi paralelo, lo que resulta en una precisión deficiente.

20voto

Mathbreaker Puntos 53

Un problema relacionado es construir un algoritmo que encuentre un vector perpendicular no nulo sin ramificación. Si el vector de entrada es N = (a,b,c), entonces siempre podrías elegir T = (c,c,-a-b) pero T será cero si N=(-1,1,0). Siempre podrías verificar si T es cero, y luego elegir T = (-b-c,a,a) si lo es, pero esto requiere una prueba y una rama. No puedo ver cómo hacer esto sin la prueba y la rama.

0 votos

Uno de los pocos respuestas donde el autor entendió la pregunta. Ahora solo necesitamos una solución.

0 votos

He publicado una solución que no necesita una prueba y rama para un vector normalizado. Para un vector no normalizado, solo requiere una prueba y rama para verificar si el vector completo es nulo.

0 votos

Propuse un enfoque diferente donde obtener el vector no requiere aritmética (hay una solución trivial), y la clave está en asegurarse de obtener un valor distinto de cero.

8voto

Leon Katsnelson Puntos 274

Solo necesitas encontrar cualquier vector $v \neq 0$ tal que $v \cdot (3\mathbf{i}+4\mathbf{j}-2\mathbf{k}) = 0$.

No hay una solución única, cualquiera servirá. Para ahorrar tiempo, vamos a llamar a $p = 3\mathbf{i}+4\mathbf{j}-2\mathbf{k}$.

Elige un vector $x$, que no esté en la línea que pasa por el origen y $p$. Toma, por ejemplo, $x = 3\mathbf{i}$.

Construye un vector perpendicular a $p de la siguiente manera: Encuentra un valor de $t$ tal que $(x+t p) \cdot p = 0$. Entonces, el vector $v=x+t p$ será perpendicular a $p$.

En mi ejemplo, $(x+t p) = (3 + 3 t)\mathbf{i}+4 t \mathbf{j}-2t\mathbf{k}$, y $(x+t p) \cdot p = 9 + 29 t$. Al elegir $t=-\frac{9}{29}$, el vector $v=x+t p$ ahora es perpendicular a $p$.

0 votos

El vector cero es perpendicular a cualquier vector.

1 votos

@MichaelHoppe: ¿Cuál es tu punto?

0 votos

Estoy preguntándome por qué excluiste la solución (trivial) $v=0$.

3voto

Una posible solución sin una rama podría ser: Construir un array de 2 elementos vectoriales de la siguiente manera:

arr[0] = (c, c, -a-b) arr[1] = (-b-c, a, a)
int selectIndex = ((c != 0) && (-a != b)) // esto no es una rama
perpendicularVector = arr[selectIndex]

Si (c, c, -a-b) es cero, selectIndex es 1 y se seleccionará el otro vector.

0 votos

Inteligente -- Me gusta.

1 votos

Hay un error: Entrada (0, 0.707, -0.707); Salida (0,0,0)

2 votos

¿Cómo se realiza && sin una rama? Operador AND lógico dice "Se evalúa el segundo operando solo si el primer operando evalúa como verdadero (distinto de cero).". Eso implica una rama (para evitar la evaluación del segundo operando). Para evitar una rama, debes usar & en su lugar. Sugiere ese cambio como una edición. [No puedo hacer la edición, porque es solo un solo caracter; editar menos de 6 caracteres es rechazado. No voy a agregar caracteres falsos solo para enviar la corrección.]

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X