我需要对矩阵求逆,由下式给出:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
在给定rotation=np.matrix([[1, 0, 0, 0], [0, math.cos(4*math.radians(a)), math.sin(4*math.radians(a)), 0], [0, math.sin(4 * math.radians(a)), -math.cos(4 * math.radians(a)), 0], [0, 0, 0, -1]])
a=60
X=np.matrix('1 ;-1 ;0 ;0')
a1=rotation*X
a1=[[ 1. ]
[ 0.5 ]
[ 0.8660254]
[ 0. ]]
和a
的情况下,是否可以进行反向计算以找到rotation
的值?
谢谢。
答案 0 :(得分:1)
如果我猜对了,你的意思是:
首先,您的矩阵不是rotation matrix;标志在错误的地方...
然后我将忽略4
的因数;您可以自己重新插入。
import numpy as np
from numpy.linalg import norm
from numpy import dot, cos, sin, arccos
x = np.array((1, -1, 0, 0))
y = np.array((1, 0.5, 0.8660254, 0))
# just considering indices 1 and 2
cos_a = dot(x[1:3], y[1:3])/(norm(x[1:3]) * norm(y[1:3]))
a_rad = arccos(cos_a)
a_deg = np.rad2deg(a_rad)
print(a_deg) # 120
,并检查(正确的)溴代确实复制了y
:
rot = np.array((
(1, 0, 0 , 0),
(0, cos(a_rad), -sin(a_rad), 0),
(0, sin(a_rad), cos(a_rad), 0),
(0, 0, 0, 1))
)
print(dot(rot, x)) # [ 1. 0.5 -0.8660254 0. ]