¿Cómo utilizar matlab para generar 100 puntos en la esfera unitaria?
1 Generar tres variables en secuencia bajo restricciones esféricas. Por supuesto, los puntos obtenidos de esta forma no son uniformes y deben ordenarse aleatoriamente:
xyz = cero (n, 3);
Para i = 1:n
x = 2 * rand-1;
y = sqrt(1-x.^2).*(2 * rand-1); 2*randi (0:1)-1). *sqrt(1-x.^2-y.^2);
t = [x, y, z];
xyz(i,)= t(rand permanente (3));
Fin
plot3(xyz(:, 1), xyz(:, 2), xyz(:, 3), ' b . '); /p>
2 Generar aleatoriamente θ y β:
xyz = cero (n, 3
Para i = 1: n
θ); = 2 * pi * rand;
beta = 2 * pi * rand
xyz(i, :=[cos(beta)*[cos(theta)sin(theta)] sin(beta)];
Fin
plot3(xyz(:, 1), xyz(:, 2), xyz(:, 3), ' b . ');
3. Genere dos distribuciones gaussianas independientes e idénticamente distribuidas y normalícelas a una esfera:
S = randn(n, 3);
xyz = bsxfun (@rdivide,S,sqrt(suma(S.*S,2)));
plot3(xyz(:,1),xyz(:,2),xyz(:, 3), ' b. ');
El último método es el más simple y rápido
La próxima vez elija la categoría de preguntas como programación
.