Если каждая строка с индексом i задана единицей векторного столбца
vi = {
v1i,
v2i,
v3i,
...
vDi
}
, указывающей вдоль линии i, и точкой, заданной векторным столбцом
pi = {
p1i,
p2i,
p3i,
...
pDi
}
, где i = 1 ... N, то искомая точка x
, заданная в виде столбца, определяется уравнением
x = inverse( sum(i=1:N, I - vi * transposed(vi)) ) * sum(i=1:N, (I - vi * transposed(vi)) * pi);
Здесь I
- это D-размерная единичная квадратная матрица.
Если каждая строка задана двумя точками pi
и qi
, то вы можете вычислить
vi = (qi - pi) / sqrt(transposed(qi - pi) * (qi - pi))