使用切片 2D 高斯分布拟合 3D 抛物线

问题描述 投票:0回答:1

我有一个 3D 喷雾分布,应该适合 3D 抛物线函数。使用光束在不同高度切割 3D 抛物线捕获的数据将适合 2D 高斯。我如何使用从 3D 抛物线的不同切片获取的 2D 高斯分布来拟合或估计 3D 抛物线分布?

python scipy curve-fitting gaussian
1个回答
0
投票

有一个相当简单的方法来做到这一点

scipy

首先我们创建一些试验数据集(3D 高斯):

import numpy as np
from scipy import stats

mu = np.array([1., 2., 3.])
sigma = np.array([
    [3., 0.5, -0.3],
    [0.5, 2., 0.8],
    [-0.3, 0.8, 1.]
])

law = stats.multivariate_normal(mean=mu, cov=sigma)
data = law.rvs(30_000)

现在我们可以使用

fit
 对象的 
multivariate_normal
方法来回归/拟合点云:

stats.multivariate_normal.fit(data)
#(array([0.99285832, 1.99391781, 3.00402304]),
# array([[ 2.97516577,  0.4876874 , -0.30404617],
#        [ 0.4876874 ,  1.96983946,  0.79608385],
#        [-0.30404617,  0.79608385,  0.98948756]]))
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.