Saltar al contenido

¿Cómo calcular la intersección de dos planos?

Solución:

Necesitas resolver las dos ecuaciones $$ x + 2y + z – 1 = 0 \ 2x + 3y – 2z + 2 = 0. $$

Tenga en cuenta que estas son dos ecuaciones en tres variables, por lo que tiene una variable libre, digamos $ z = t $, entonces tenemos

$$ x + 2y = 1-t \ 2x + 3y = 2t-2. $$

Resolver el último sistema da

$$ left {x = -7 + 7 , t, y = 4-4 , t right }. $$

Entonces la ecuación parametrizada de la línea viene dada por

$$ (x, y, z) = (-7 + 7t, 4-4t, t) = (- 7,4,0) + (7, -4,1) t. $$

El primer plano tiene vector normal $ begin {pmatrix} 1 \ 2 \ 1 end {pmatrix} $ y el segundo tiene vector normal $ begin {pmatrix} 2 \ 3 \ – 2 end {pmatrix} $, por lo que la línea de intersección debe ser ortogonal a ambos. Sabemos que el vector único ortogonal a dos vectores linealmente independientes $ v_1, v_2 $ es $ v_1 veces v_2 $, por lo que el vector de dirección de la línea de intersección es $$ begin {pmatrix} 1 \ 2 \ 1 end {pmatrix} times begin {pmatrix} 2 \ 3 \ – 2 end {pmatrix} = begin {pmatrix} -7 \ 4 \ – 1 end {pmatrix} $$A continuación, necesitamos encontrar un punto particular en la línea. Podemos intentar $ y = 0 $ y resuelve el sistema resultante de ecuaciones lineales:$$ begin {align} x + z-1 & = & 0 \ 2x-2z + 2 & = & 0 end {align} $$ donación $ x = 0, z = 1 $, por lo que la línea de intersección es $ lbrace { begin {pmatrix} -7t \ 4t \ 1-t end {pmatrix}: t in Bbb R rbrace} $

Si bien este problema tiene una gran respuesta de libro de texto, como explicó Walcher, no creo que sea muy elegante. Esto se debe a que la solución depende de elegir un punto arbitrario, que carece de intuición geométrica. Idealmente, nos gustaría que este punto tuviera algún significado, como estar cerca de los planos, o de la línea, etc.

Por eso, me gustaría recordarles una solución de John Krumm, que pasa desapercibida para muchos. Dejar $ mathbf {p} = {p_x, p_y, p_z } $ y $ mathbf {n} = {n_x, n_y, n_z } $ componer el avión $ mathbf {P} = { mathbf {n}, mathbf {p} } $. Que haya dos planos $ P_1 $ y $ P_2 $, para lo cual nos gustaría calcular la línea de intersección $ mathbf {l} $. Es trivial calcular la dirección como el producto cruzado: $$ mathbf {l} _d = mathbf {n} _1 veces mathbf {n} _2 $$

Si además deseamos que el punto resultante $ mathbf {p} $ está lo más cerca del punto elegido $ mathbf {p} _0 $ como sea posible, podríamos escribir una distancia:
$$ lVert mathbf {p} – mathbf {p} _0 rVert = (p_x-p_ {0x}) ^ 2 + (p_y-p_ {0y}) ^ 2 + (p_z-p_ {0z}) ^ 2 $$
Incorporar los otros puntos de manera similar y escribir esta restricción usando multiplicadores de Lagrange en una función objetivo da como resultado:
$$ J = lVert mathbf {p} – mathbf {p} _0 rVert + lambda ( mathbf {p} – mathbf {p} _1) ^ 2 + mu ( mathbf {p} – mathbf {p} _2) ^ 2 $$

Usando el marco estándar de Lagrange (omitiendo los detalles), uno establece una bonita matriz, en la forma: $$ mathbf {M} = left[ {begin{array}{ccc}
2 & 0 & 0 & n_{1x} & n_{2x}\ 0 & 2 & 0 & n_{1y} & n_{2y}\ 0 & 0 & 2 & n_{1z} & n_{2z} \ n_{1x} & n_{1y} & n_{1z} & 0 & 0\n_{2x} & n_{2y} & n_{2z} & 0 & 0 end{array} } right]
$$

Esta matriz ahora se puede utilizar en un sistema de ecuaciones lineales:
$$ mathbf {M} left[ {begin{array}{c}
p_x \ p_y \ p_z \ lambda \ mu end{array} } right] = izquierda[ {begin{array}{c}
2p_{0x} \ 2p_{0y} \ 2p_{0z} \ mathbf{p}_1 cdot mathbf{n}_1 \ mathbf{p}_2 cdot mathbf{n}_2 end{array} } right]
$$

para resolver el punto desconocido, $ mathbf {p} $, así como los multiplicadores de Lagrange, $ { lambda, mu } $. Si bien los multiplicadores no son de particular interés, serían interesantes para comprender la configuración de puntos o para diferentes parametrizaciones.

Creo que este es un enfoque bastante ordenado que ofrece un método agradable y simple, con resultados geométricamente interpretables. Publico el código MATLAB en mi blog.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *