Az $x$ $y$ és $z$ tengely körüli forgatások mátrixai a következő alakot öltik: $$ R_x(\alpha)=\begin{pmatrix} 1 & 0 & 0 \\ 0 & \cos\alpha & -\sin\alpha \\ 0 & \sin\alpha & \cos\alpha \end{pmatrix}, \quad R_y(\alpha)=\begin{pmatrix} \cos\alpha & 0 & \sin\alpha \\ 0 & 1 & 0 \\ -\sin\alpha & 0 & \cos\alpha \end{pmatrix}, \quad R_z(\alpha)=\begin{pmatrix} \cos\alpha & -\sin\alpha & 0 \\ \sin\alpha & \cos\alpha & 0 \\ 0 & 0 & 1 \end{pmatrix}. $$
A solve()
függvény segítségével határozzuk meg, hogy melyik az az $u$ vektor, melyre igaz az, hogy
$$ R_x(\pi/3)R_z(\pi/7)R_y(\pi/5)u=
\begin{pmatrix}
137 \\
42 \\
36
\end{pmatrix}
$$
Először meghívjuk a pylab
csomagot.
%pylab inline
Ezután definiálunk függvényeket, amik segítségével megkapjuk a bizonyos tengelyek körül elforgató mátrixokat.
def R_x(alpha):
'''Visszaadja az x tengely körül, alpha szöggel elforgató mátrixot'''
return matrix([[1, 0, 0], [0, cos(alpha), -sin(alpha)], [0, sin(alpha), cos(alpha)]])
def R_y(alpha):
'''Visszaadja az y tengely körül, alpha szöggel elforgató mátrixot'''
return matrix([[cos(alpha), 0, sin(alpha)], [0, 1, 0], [-sin(alpha), 0, cos(alpha)]])
def R_z(alpha):
'''Visszaadja a z tengely körül, alpha szöggel elforgató mátrixot'''
return matrix([[cos(alpha), -sin(alpha), 0], [sin(alpha), cos(alpha), 0], [0, 0, 1]])
Majd megoldjuk az egyenletet a solve()
függvény segítségével.
u = solve(R_x(pi/3) * R_z(pi/7) * R_y(pi/5), matrix([[137], [42], [36]]))
u
Végül, megbizonyosodunk róla, hogy a kapott vektor valóban a feladat megoldása.
R_x(pi/3) * R_z(pi/7) * R_y(pi/5) * u