gpt4 book ai didi

4维球体上点的Python均匀分布

转载 作者:太空狗 更新时间:2023-10-29 21:32:07 24 4
gpt4 key购买 nike

我需要在 4 维球体上均匀分布点。我知道这不像选择 3 个角度和使用极坐标那么简单。

我在 3 个维度上使用

from random import random

u=random()
costheta = 2*u -1 #for distribution between -1 and 1
theta = acos(costheta)
phi = 2*pi*random

x=costheta
y=sin(theta)*cos(phi)
x=sin(theta)*sin(phi)

这给出了 x、y 和 z 的均匀分布。

如何获得 4 个维度的相似分布?

最佳答案

A standard way ,虽然,也许not the fastest , 就是用Muller的方法在N球面上生成均匀分布的点:

import numpy as np
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d.axes3d as axes3d

N = 600
dim = 3

norm = np.random.normal
normal_deviates = norm(size=(dim, N))

radius = np.sqrt((normal_deviates**2).sum(axis=0))
points = normal_deviates/radius

fig, ax = plt.subplots(subplot_kw=dict(projection='3d'))
ax.scatter(*points)
ax.set_aspect('equal')
plt.show()

enter image description here

只需将 dim = 3 更改为 dim = 4 即可在 4 球体上生成点。

关于4维球体上点的Python均匀分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15880367/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com