Wie formuliere ich einen Schnittpunkt von nD-Gleichungen mit jeweils unterschiedlichem Ursprung?

Aug 15 2020

Nehmen wir an, wir haben $n$-dimensionale Linie / Ebene / Hyperebene $n$ vertreten durch $n$Anzahl der Gleichungen. Beachten Sie, dass jede der Gleichungen einen anderen Ursprung kreuzt$O\in\mathbb{R}^n$.

Was wäre der einfachste Weg zu:

  1. berechnen und optional
  2. Überprüfen (Typ, Existenz) ihrer Schnittmenge $I\in\mathbb{R}^n$?

Ein einfachstes Beispiel wäre vielleicht so:

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

mit \ eqref {eq1} hat Ursprung $O_1$ und \ eqref {eq2} hat den Ursprung von $O_2$.

So geplottet:

2 Zeilen mit unterschiedlichem Ursprung in $\mathbb{R}^2$

Nehmen wir mal an $I$ist grafisch bewiesen, dass es wie oben existiert. Was ist die analytische Lösung zu erreichen$I_{x}$ und $I_{y}$?

Pluspunkt, wenn es als numerisch stabiles algebraisches Problem formuliert werden kann.

Antworten

Gonbidatu Aug 15 2020 at 18:15

Wenn wir die Vektornotation verwenden, zeigen Sie $\vec{p}$ ist auf Hyperebene $\vec{n}, d$ dann und nur dann, wenn $$\vec{p} \cdot \vec{n} = d \tag{1}\label{1}$$

Aber wenn die Hyperebenendefinition in Bezug auf den Ursprung ist $\vec{o}$, Dann ist es $$(\vec{p} - \vec{o}) \cdot \vec{n} = d \tag{2a}\label{2a}$$ das ist äquivalent zu $$\vec{p} \cdot \vec{n} = d + \vec{o} \cdot \vec{n} \tag{2b}\label{2b}$$

Mit anderen Worten, wenn die Hyperebene in Bezug auf einen Punkt definiert wird, der nicht am Ursprung liegt, ändert sich nur die Skalarkomponente (vorzeichenbehafteter Abstand) der Hyperebene. In absoluten Koordinaten wird die Skalarkomponente um das Punktprodukt zwischen der Hyperebenennormalen und dem Punkt erhöht, der als Ursprung für die Hyperebenendefinition verwendet wird.

Wenn wir verwenden $\vec{p} = (p_1 , \dots , p_N)$ für die Koordinaten eines zu berücksichtigenden Punktes, $\vec{n} = (n_1 , \dots , p_N)$ für die Hyperebene normal und $\vec{o} = (o_1, \dots, o_N)$ Für den Punkt, der als Ursprung für die Definition der Hyperebene verwendet wird, können wir schreiben $\eqref{2a}$ wie $$(p_1 - o_1) n_1 + \dots + (p_N - o_N) n_N = d \tag{3a}\label{3a}$$ und $\eqref{2b}$ wie $$p_1 n_1 + \dots + p_N n_N = d + o_1 n_1 + \dots + o_N n_N \tag{3b}\label{3b}$$ oder in Summenform als $$\sum_{i=1}^{N} p_i n_i = d + \sum_{i=1}^N o_i n_i \tag{3c}\label{3c}$$

Angenommen, Sie haben zwei Hyperebenen. $(n_1, \dots, n_N ; d)$ und $(u_1, \dots, u_N ; p)$, mit "Herkunft" $(o_1, \dots, o_N)$ und $(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}$$ wo beide Gleichungen in $\eqref{4}$ sind nur wahr für $(p_1, \dots, p_N)$ am Schnittpunkt der beiden Hyperebenen.

Der einzige Unterschied zur Standardsituation besteht in der zusätzlichen konstanten Summe, die der Skalarkomponente hinzugefügt wird, nur abhängig vom "Ursprung" (für den die Hyperebene definiert wurde) und von der Normalen der Hyperebene.


Wir haben $N$Hyperebenen. Verwenden wir die Notation$\vec{n}_i = (n_{i, 1}, \dots, n_{i, N})$ für ihre normalen Vektoren und $d_i$ für ihre vorzeichenbehafteten Abstände vom absoluten Ursprung, dh einschließlich der konstanten Summe auf der rechten Seite in $\eqref{3c}$ oder $\eqref{4}$.

Wenn wir eine Matrix bilden $\mathbf{M}$, wobei jede Zeile aus einer Hyperebenennormalen besteht, $$\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}$$ und einen Spaltenvektor $y$ aus den vorzeichenbehafteten Abständen einschließlich der konstanten "Ursprungs" -Kompensationssummen, $$y = \left[ \begin{matrix} d_1 \\ d_2 \\ \vdots \\ d_{N-1} \\ d_{N} \\ \end{matrix} \right ] \tag{6}\label{6}$$ mit $x$ Als Spaltenvektor für den Schnittpunkt wird das Gleichungssystem $$\mathbf{M} x = y \tag{7a}\label{7a}$$ Dies hat eine Lösung, wenn $\mathbf{M}$ ist invertierbar, $$x = \mathbf{M}^{-1} y \tag{7b}\label{7b}$$

In einem Computerprogramm $\mathbf{M}$kann nahezu singulär sein, wenn einige der Normalen nahezu linear abhängig sind (dh ein paarweises Punktprodukt liegt nahe am Produkt ihrer euklidischen Normen; oder gleichwertig sind die Normalen nahezu parallel oder nahezu entgegengesetzt). Wenn zwei oder mehr der Normalen parallel oder entgegengesetzt sind, ist der Schnittpunkt offensichtlich kein Punkt mehr.

Sofern Sie keine zusätzlichen Anforderungen angegeben haben, sollte grundsätzlich jede lineare Algebra-Bibliothek dafür funktionieren.