我不知道一个明确的公式(如果存在,它可能不容易消化),但由于求解一个小型线性系统很容易得到中心——没有优化算法。给定点 P1、P2、P3、P4,应用平移使 P1 成为原点。任何包含 P1,...,P4 的球体的中心都将具有等距的特性:与 P1 和 P2 等距;来自 P1 和 P3;从 P1 和 P4。每一个都是一个线性方程。4 个未知数有 3 个方程,因此系统是欠定的。您想要的解决方案是最小范数之一(最小二乘解决方案)。这不是反斜杠运算符提供的解决方案,但可以使用pinv来获得它,这对于小型矩阵来说并不昂贵。
p1 = rand(1,4); p2 = rand(1,4); p3 = rand(1,4); p4 = rand(1,4); % test input
v = [p2-p1; p3-p1; p4-p1]; % matrix of linear system
b = 0.5*[v(1,:)*v(1,:)' ; v(2,:)*v(2,:)' ; v(3,:)*v(3,:)']; % RHS of the system
x = p1 + (pinv(v)*b)' % least squares solution, translated back
您可以检查norm(x-p1)
...norm(x-p4)
是否相等。