私は、一様乱数四元数を作成するPython(NumPy)関数を持っています。私は同じまたは別の関数から2次元の返された配列として2つの四元数の乗算を得たいと思います。私の最近のケースでの四元数乗法の式はQ1 * Q2とQ2 * Q1です。ここで、Q1=(w0, x0, y0, z0)
とQ2=(w1, x1, y1, z1)
は2クォータニオンです。予想される2クォータニオン乗算出力(2-d戻り配列)は2つの四元数の一様乱数四元数と乗算の作成
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])
です。私のコードはここにある:[0] [1]
あなたはそれをする必要はありませんFOO:
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])
質問や問題は何ですか? – hpaulj
@ hpaulj私の質問は、Q1 * Q2とQ2 * Q1を別の関数から返された配列として得る方法です。期待されるQ1 * Q2返された配列形式(関数の直前)を見てください。私はQ2 * Q1も作りたいと思います。 – Biophysics