我有一個創建統一的隨機四元數的python(NumPy)函數。我想獲得兩個四元數乘法作爲來自相同或另一個函數的二維返回數組。在我最近的情況下,四元數乘法的公式是Q1 * Q2和Q2 * Q1。這裏,Q1=(w0, x0, y0, z0)
和Q2=(w1, x1, y1, z1)
是兩個四元數。預期的兩個四元數乘法輸出(作爲二維返回陣列)應該是創建統一的隨機四元數和兩個四元數的乘法
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])
任何人都可以幫助我嗎?我的代碼是在這裏:
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