Comment formuler le point d'intersection des équations nD avec chacune une origine distincte?

Aug 15 2020

Disons que nous avons $n$-ligne / plan / hyperplan dimensionnel $n$ représenté par $n$quantité d'équations. Notez que chacune des équations croise des origines différentes$O\in\mathbb{R}^n$.

Quel serait le moyen le plus simple de:

  1. calculer, et éventuellement
  2. vérifier (type, existence) de leur intersection $I\in\mathbb{R}^n$?

Un exemple le plus simple serait peut-être comme ceci:

$$\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}$$

avec \ eqref {eq1} a l'origine $O_1$ et \ eqref {eq2} a l'origine de $O_2$.

Tracé comme ceci:

2 lignes d'origine différente en $\mathbb{R}^2$

Disons $I$Il est prouvé graphiquement qu'il existe comme ci-dessus. Quelle est la solution analytique à atteindre$I_{x}$ et $I_{y}$?

Un plus s'il peut être formulé comme un problème algébrique numériquement stable.

Réponses

Gonbidatu Aug 15 2020 at 18:15

Si nous utilisons la notation vectorielle, pointez $\vec{p}$ est en hyperplan $\vec{n}, d$ si et seulement si $$\vec{p} \cdot \vec{n} = d \tag{1}\label{1}$$

Mais, si la définition de l'hyperplan est par rapport à l'origine $\vec{o}$, alors c'est $$(\vec{p} - \vec{o}) \cdot \vec{n} = d \tag{2a}\label{2a}$$ ce qui équivaut à $$\vec{p} \cdot \vec{n} = d + \vec{o} \cdot \vec{n} \tag{2b}\label{2b}$$

En d'autres termes, le fait que l'hyperplan soit défini par rapport à un point non à l'origine ne change que la composante scalaire (distance signée) de l'hyperplan. En coordonnées absolues, la composante scalaire est augmentée du produit scalaire entre la normale de l'hyperplan et le point utilisé comme origine pour la définition de l'hyperplan.

Si nous utilisons $\vec{p} = (p_1 , \dots , p_N)$ pour les coordonnées d'un point à considérer, $\vec{n} = (n_1 , \dots , p_N)$ pour l'hyperplan normal, et $\vec{o} = (o_1, \dots, o_N)$ pour le point utilisé comme origine pour la définition de l'hyperplan, on peut écrire $\eqref{2a}$ comme $$(p_1 - o_1) n_1 + \dots + (p_N - o_N) n_N = d \tag{3a}\label{3a}$$ et $\eqref{2b}$ comme $$p_1 n_1 + \dots + p_N n_N = d + o_1 n_1 + \dots + o_N n_N \tag{3b}\label{3b}$$ ou, sous forme de somme, comme $$\sum_{i=1}^{N} p_i n_i = d + \sum_{i=1}^N o_i n_i \tag{3c}\label{3c}$$

Disons que vous avez deux hyperplans, $(n_1, \dots, n_N ; d)$ et $(u_1, \dots, u_N ; p)$, avec "origines" $(o_1, \dots, o_N)$ et $(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}$$ où les deux équations dans $\eqref{4}$ ne sont vrai que pour $(p_1, \dots, p_N)$ à l'intersection des deux hyperplans.

La seule différence par rapport à la situation standard est la somme des constantes supplémentaires ajoutée à la composante scalaire, en fonction uniquement de "l'origine" (par rapport à laquelle l'hyperplan a été défini) et de la normale de l'hyperplan.


Nous avons $N$hyperplans. Utilisons la notation$\vec{n}_i = (n_{i, 1}, \dots, n_{i, N})$ pour leurs vecteurs normaux, et $d_i$ pour leurs distances signées par rapport à l'origine absolue, c'est-à-dire en incluant la somme constante du côté droit dans $\eqref{3c}$ ou $\eqref{4}$.

Si nous formons une matrice $\mathbf{M}$, chaque ligne étant constituée d'une normale hyperplan, $$\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}$$ et un vecteur colonne $y$ à partir des distances signées incluant les sommes constantes de compensation «origine», $$y = \left[ \begin{matrix} d_1 \\ d_2 \\ \vdots \\ d_{N-1} \\ d_{N} \\ \end{matrix} \right ] \tag{6}\label{6}$$ avec $x$ étant le vecteur de colonne pour le point d'intersection, le système d'équations devient $$\mathbf{M} x = y \tag{7a}\label{7a}$$ Cela a une solution si $\mathbf{M}$ est inversible, $$x = \mathbf{M}^{-1} y \tag{7b}\label{7b}$$

Dans un programme informatique, $\mathbf{M}$peut être quasi-singulier si certaines des normales sont presque linéairement dépendantes (c'est-à-dire qu'un produit scalaire par paire est proche du produit de leurs normes euclidiennes; ou, de manière équivalente, les normales sont presque parallèles ou presque opposées). De toute évidence, si deux ou plusieurs des normales sont parallèles ou opposées, l'intersection n'est plus un point.

Sauf si vous avez des exigences supplémentaires non déclarées, en gros, toute bibliothèque d'algèbre linéaire devrait fonctionner correctement.