Как сформулировать точку пересечения nD-уравнений, каждое из которых имеет различное происхождение?
Допустим, у нас есть $n$-мерная линия / плоскость / гиперплоскость $n$ представлена $n$количество уравнений. Обратите внимание, что каждое из уравнений пересекает различное происхождение.$O\in\mathbb{R}^n$.
Каким будет самый простой способ:
- вычислить, и необязательно
- проверить (тип, наличие) их пересечения $I\in\mathbb{R}^n$?
Самый простой пример, возможно, будет таким:
$$\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}$$
с \ eqref {eq1} имеет происхождение $O_1$ и \ eqref {eq2} имеет происхождение $O_2$.
Построено так:

2 строки с разным началом в $\mathbb{R}^2$
Скажем $I$графически доказано, что существует, как указано выше. Какого аналитического решения достичь$I_{x}$ и $I_{y}$?
Плюс, если ее можно сформулировать как численно устойчивую алгебраическую задачу.
Ответы
Если мы используем векторные обозначения, точка $\vec{p}$ находится на гиперплоскости $\vec{n}, d$ если и только если $$\vec{p} \cdot \vec{n} = d \tag{1}\label{1}$$
Но, если определение гиперплоскости относится к началу координат $\vec{o}$, то это $$(\vec{p} - \vec{o}) \cdot \vec{n} = d \tag{2a}\label{2a}$$ что эквивалентно $$\vec{p} \cdot \vec{n} = d + \vec{o} \cdot \vec{n} \tag{2b}\label{2b}$$
Другими словами, определение гиперплоскости относительно некоторой точки, не являющейся исходной точкой, изменяет только скалярный компонент (расстояние со знаком) гиперплоскости. В абсолютных координатах скалярный компонент увеличивается на скалярное произведение между нормалью гиперплоскости и точкой, используемой в качестве исходной точки для определения гиперплоскости.
Если мы используем $\vec{p} = (p_1 , \dots , p_N)$ для координат рассматриваемой точки, $\vec{n} = (n_1 , \dots , p_N)$ для нормали гиперплоскости и $\vec{o} = (o_1, \dots, o_N)$ для точки, используемой в качестве начала для определения гиперплоскости, мы можем написать $\eqref{2a}$ в виде $$(p_1 - o_1) n_1 + \dots + (p_N - o_N) n_N = d \tag{3a}\label{3a}$$ и $\eqref{2b}$ в виде $$p_1 n_1 + \dots + p_N n_N = d + o_1 n_1 + \dots + o_N n_N \tag{3b}\label{3b}$$ или, в виде суммы, как $$\sum_{i=1}^{N} p_i n_i = d + \sum_{i=1}^N o_i n_i \tag{3c}\label{3c}$$
Допустим, у вас есть две гиперплоскости, $(n_1, \dots, n_N ; d)$ и $(u_1, \dots, u_N ; p)$, с "происхождением" $(o_1, \dots, o_N)$ и $(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}$$ где оба уравнения в $\eqref{4}$ верны только для $(p_1, \dots, p_N)$ на пересечении двух гиперплоскостей.
Единственное отличие от стандартной ситуации - это дополнительная постоянная сумма, добавляемая к скалярному компоненту, зависящая только от «начала координат» (относительно которого была определена гиперплоскость) и от нормали гиперплоскости.
У нас есть $N$гиперплоскости. Воспользуемся обозначениями$\vec{n}_i = (n_{i, 1}, \dots, n_{i, N})$ для их нормальных векторов, и $d_i$ для их знаковых расстояний от абсолютного начала координат, т.е. включая постоянную сумму в правой части $\eqref{3c}$ или же $\eqref{4}$.
Если мы сформируем матрицу $\mathbf{M}$, где каждая строка состоит из нормали гиперплоскости, $$\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}$$ и вектор-столбец $y$ от обозначенных расстояний, включая постоянные суммы компенсации «исходной», $$y = \left[ \begin{matrix} d_1 \\ d_2 \\ \vdots \\ d_{N-1} \\ d_{N} \\ \end{matrix} \right ] \tag{6}\label{6}$$ с участием $x$ будучи вектор-столбцом для точки пересечения, система уравнений принимает вид $$\mathbf{M} x = y \tag{7a}\label{7a}$$ У этого есть решение, если $\mathbf{M}$ обратима, $$x = \mathbf{M}^{-1} y \tag{7b}\label{7b}$$
В компьютерной программе $\mathbf{M}$могут быть почти сингулярными, если некоторые нормали почти линейно зависимы (т. е. попарное скалярное произведение близко к произведению их евклидовых норм; или, что то же самое, нормали почти параллельны или почти противоположны). Очевидно, что если две или более нормалей параллельны или противоположны, то пересечение больше не является точкой.
Если у вас нет неустановленных дополнительных требований, в основном любая библиотека линейной алгебры подойдет для этого.