Como formular o ponto de intersecção das equações nD com cada uma tendo uma origem distinta?

Aug 15 2020

Vamos dizer que temos $n$linha / plano / hiperplano dimensional $n$ representado por $n$quantidade de equações. Observe que cada uma das equações está cruzando origens diferentes$O\in\mathbb{R}^n$.

Qual seria a maneira mais simples de:

  1. compute, e opcionalmente
  2. verificar (tipo, existência) de sua interseção $I\in\mathbb{R}^n$?

Um exemplo mais simples seria assim:

$$\begin{equation}\begin{aligned} x_1 + y_1 &= a_1\\ \end{aligned}\end{equation}\tag{1}\label{eq1}$$ $$\begin{equation}\begin{aligned} x_2 + y_2 &= a_2\\ \end{aligned}\end{equation}\tag{2}\label{eq2}$$

com \ eqref {eq1} está tendo origem $O_1$ e \ eqref {eq2} está tendo origem de $O_2$.

Traçado assim:

2 linhas com origem diferente em $\mathbb{R}^2$

Deixe dizer $I$é comprovado graficamente que existe como acima. Qual é a solução analítica para alcançar$I_{x}$ e $I_{y}$?

Ponto positivo se puder ser formulado como um problema algébrico numericamente estável.

Respostas

Gonbidatu Aug 15 2020 at 18:15

Se usarmos notação vetorial, aponte $\vec{p}$ está em hiperplano $\vec{n}, d$ se e apenas se $$\vec{p} \cdot \vec{n} = d \tag{1}\label{1}$$

Mas, se a definição do hiperplano é em relação à origem $\vec{o}$, então é $$(\vec{p} - \vec{o}) \cdot \vec{n} = d \tag{2a}\label{2a}$$ que é equivalente a $$\vec{p} \cdot \vec{n} = d + \vec{o} \cdot \vec{n} \tag{2b}\label{2b}$$

Em outras palavras, tendo o hiperplano definido em relação a algum ponto não na origem, apenas altera o componente escalar (distância com sinal) do hiperplano. Em coordenadas absolutas, o componente escalar é aumentado pelo produto escalar entre o hiperplano normal e o ponto usado como origem para a definição do hiperplano.

Se usarmos $\vec{p} = (p_1 , \dots , p_N)$ para as coordenadas de um ponto a ser considerado, $\vec{n} = (n_1 , \dots , p_N)$ para o hiperplano normal, e $\vec{o} = (o_1, \dots, o_N)$ para o ponto usado como origem para a definição do hiperplano, podemos escrever $\eqref{2a}$ Como $$(p_1 - o_1) n_1 + \dots + (p_N - o_N) n_N = d \tag{3a}\label{3a}$$ e $\eqref{2b}$ Como $$p_1 n_1 + \dots + p_N n_N = d + o_1 n_1 + \dots + o_N n_N \tag{3b}\label{3b}$$ ou, em forma de soma, como $$\sum_{i=1}^{N} p_i n_i = d + \sum_{i=1}^N o_i n_i \tag{3c}\label{3c}$$

Digamos que você tenha dois hiperplanos, $(n_1, \dots, n_N ; d)$ e $(u_1, \dots, u_N ; p)$, com "origens" $(o_1, \dots, o_N)$ e $(g_1, \dots, g_N)$: $$\left\lbrace ~ \begin{aligned} \sum_{i=1}^N p_i n_i &= d + \sum_{i=1}^N o_i n_i \\ \sum_{i=1}^N p_i u_i &= p + \sum_{i=1}^N g_i u_i \\ \end{aligned} \right . \tag{4} \label{4}$$ onde ambas as equações em $\eqref{4}$ são verdadeiras apenas para $(p_1, \dots, p_N)$ na intersecção dos dois hiperplanos.

A única diferença para a situação padrão é a soma da constante extra adicionada ao componente escalar, dependendo apenas da "origem" (em relação à qual o hiperplano foi definido) e do hiperplano normal.


Nós temos $N$hiperplanos. Vamos usar notação$\vec{n}_i = (n_{i, 1}, \dots, n_{i, N})$ para seus vetores normais, e $d_i$ para suas distâncias sinalizadas de origem absoluta, ou seja, incluindo a soma constante no lado direito em $\eqref{3c}$ ou $\eqref{4}$.

Se formarmos uma matriz $\mathbf{M}$, com cada linha consistindo em um hiperplano normal, $$\mathbf{M} = \left[ \begin{matrix} n_{1, 1} & n_{1, 2} & \dots & n_{1, N-1} & n_{1, N} \\ n_{2, 1} & n_{2, 2} & \dots & n_{2, N-1} & n_{2, N} \\ \vdots & \vdots & ~ & \vdots & \vdots \\ n_{N-1, 1} & n_{N-1, 2} & \dots & n_{N-1, N-1} & n_{N-1, N} \\ n_{N, 1} & n_{N, 2} & \dots & n_{N, N-1} & n_{N, N} \\ \end{matrix} \right ] \tag{5}\label{5}$$ e um vetor coluna $y$ das distâncias sinalizadas, incluindo as constantes somas de compensação de "origem", $$y = \left[ \begin{matrix} d_1 \\ d_2 \\ \vdots \\ d_{N-1} \\ d_{N} \\ \end{matrix} \right ] \tag{6}\label{6}$$ com $x$ sendo o vetor coluna para o ponto de intersecção, o sistema de equações torna-se $$\mathbf{M} x = y \tag{7a}\label{7a}$$ Isso tem uma solução se $\mathbf{M}$ é invertível, $$x = \mathbf{M}^{-1} y \tag{7b}\label{7b}$$

Em um programa de computador, $\mathbf{M}$pode ser quase singular se alguns dos normais são quase linearmente dependentes (ou seja, um produto escalar pareado é próximo ao produto de suas normas euclidianas; ou, equivalentemente, os normais são quase paralelos ou quase opostos). Obviamente, se duas ou mais normais são paralelas ou opostas, então a interseção não é mais um ponto.

A menos que você tenha requisitos adicionais não declarados, basicamente qualquer biblioteca de álgebra linear deve funcionar bem para isso.