Az x y és z tengely körüli forgatások mátrixai a következő alakot öltik: Rx(α)=(1000cosα−sinα0sinαcosα),Ry(α)=(cosα0sinα010−sinα0cosα),Rz(α)=(cosα−sinα0sinαcosα0001).
A solve()
függvény segítségével határozzuk meg, hogy melyik az az u vektor, melyre igaz az, hogy
Rx(π/3)Rz(π/7)Ry(π/5)u=(1374236)
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