说我在D维空间中有N个点;其中N可以是从4到D + 1的数字。
我想创建由这N个点定义的最小可能球体,或者换句话说,创建一个包含所有N个点的最小球体(它完全通过所有N个点)。
解决方案的变量是它的中心和半径。
我对矩阵不好,我猜这个问题需要它们吗?
答案 0 :(得分:1)
我相信你正在为你的积分x
寻找(最小)circumsphere。正如你所建议的那样,这样的对象可以通过一些线性代数来计算。
在m
维度x
中给出一组n
分(m <= n+1)
,以便:
x = [x_11, x_12, ..., x_1n]
[x_21, x_22, ..., x_2n]
.
.
.
[x_m1, x_m2, ..., x_mn]
可以记下半径R
的公共球体的方程式,以X = [X_1,X_2,...,X_n]
为中心,通过x
中的每个点:
(x_11 - X_1)^2 + (x_12 - X_2)^2 + ... + (x_1n - X_n)^2 = R^2 (1)
(x_21 - X_1)^2 + (x_22 - X_2)^2 + ... + (x_2n - X_n)^2 = R^2 (2)
.
.
.
(x_m1 - X_1)^2 + (x_m2 - X_2)^2 + ... + (x_mn - X_n)^2 = R^2 (m)
扩展每个等式中的二次项,从等式(1)
中减去(2)--(m)
,并进行一些操作,得到一组中心X
的线性方程:
M * X = B
其中:
M = [x_11-x_21, x_12-x_22, ..., x_1n-x_2n]
.
.
.
[x_11-x_m1, x_12-x_m2, ..., x_1n-x_mn]
B = [x_11^2-x_21^2 + x_12^2-x_22^2 + ... + x_1n^2-x_2n^2] * (1/2)
.
.
.
[x_11^2-x_m1^2 + x_12^2-x_m2^2 + ... + x_1n^2-x_mn^2] * (1/2)
请注意,M
是(m-1) x n
矩阵,而B
是(m-1) x 1
向量。
显然,当m = n+1
时,矩阵是方形的,并且中心X
有一个唯一的解决方案,完全描述与点x
相关联的环球。 (半径可以作为从X
到任何x_i
的距离获得。
当m < n+1
解决方案不是唯一的时候,并且有一个无限的环球家族。在这种情况下,需要将其他约束添加到矩阵M
以提供解决方案。
在你的情况下,我相信你可能希望约束X
躺在点x
所描述的共同超平面上,但我会更多地考虑这个问题。 ...