J'ai une fonction python (NumPy) qui crée un quaternion aléatoire uniforme. Je voudrais obtenir deux multiplications de quaternion comme tableau retourné bidimensionnel de la même ou d'une autre fonction. La formule de la multiplication de quaternion dans mon cas récent est Q1 * Q2 et Q2 * Q1. Ici, Q1=(w0, x0, y0, z0)
et Q2=(w1, x1, y1, z1)
sont deux quaternions. Le prévu deux sorties de multiplication de quaternion (tableau en tant que 2-d de retour) doit êtreCréation d'un quaternion aléatoire uniforme et multiplication de deux quaternions
return([-x1*x0 - y1*y0 - z1*z0 + w1*w0, x1*w0 + y1*z0 - z1*y0 +
w1*x0, -x1*z0 + y1*w0 + z1*x0 + w1*y0, x1*y0 - y1*x0 + z1*w0 +
w1*z0])
Quelqu'un peut-il me aider s'il vous plaît? Mes codes sont ici:
def randQ(N):
#Generates a uniform random quaternion
#James J. Kuffner 2004
#A random array 3xN
s = random.rand(3,N)
sigma1 = sqrt(1.0 - s[0])
sigma2 = sqrt(s[0])
theta1 = 2*pi*s[1]
theta2 = 2*pi*s[2]
w = cos(theta2)*sigma2
x = sin(theta1)*sigma1
y = cos(theta1)*sigma1
z = sin(theta2)*sigma2
return array([w, x, y, z])
Quelle est la question ou le problème? – hpaulj
@hpaulj Ma question est comment je peux obtenir Q1 * Q2 et Q2 * Q1 comme tableau retourné d'une autre fonction. Veuillez regarder mon format de tableau retourné attendu Q1 * Q2 (juste avant la fonction). Je voudrais aussi faire Q2 * Q1. – Biophysics