You are on page 1of 4

> with(linalg);

>
Warning, the protected names norm and trace have been redefined and unprotected

[BlockDiagonal, GramSchmidt , JordanBlock, LUdecomp, QRdecomp , Wronskian, addcol, addrow, adj,


adjoint, angle, augment, backsub, band, basis, bezout, blockmatrix, charmat, charpoly, cholesky, col,
coldim, colspace , colspan, companion, concat, cond, copyinto, crossprod, curl, definite, delcols,
delrows, det, diag, diverge, dotprod, eigenvals, eigenvalues , eigenvectors , eigenvects , entermatrix,
equal, exponential , extend , ffgausselim , fibonacci, forwardsub, frobenius, gausselim , gaussjord,
geneqns , genmatrix, grad, hadamard, hermite, hessian, hilbert, htranspose , ihermite, indexfunc
,
innerprod, intbasis, inverse, ismith, issimilar, iszero, jacobian, jordan, kernel, laplacian, leastsqrs,
linsolve, matadd, matrix, minor, minpoly, mulcol, mulrow, multiply, norm, normalize, nullspace,
orthog, permanent , pivot, potential, randmatrix, randvector, rank, ratform, row, rowdim, rowspace,
rowspan, rref, scalarmul, singularvals, smith, stackmatrix, submatrix, subvector, sumbasis, swapcol,
swaprow, sylvester, toeplitz, trace, transpose, vandermonde , vecpotent
, vectdim, vector,
wronskian]

> A1:=matrix(3,3,[1,0,0,0,cos(w1),-sin(w1),0,sin(w1),cos(w1)]);
1 0 0

A1 := 0 cos(w1) -sin(w1)

0 sin(w1) cos(w1)

> B1:=matrix(3,3,[cos(p1),0,sin(p1),0,1,0,-sin(p1),0,cos(p1)]);
cos(p1) 0 sin(p1)

B1 := 0 1 0

-sin(p1) 0 cos(p1)

> C1:=matrix(3,3,[cos(r1),-sin(r1),0,sin(r1),cos(r1),0,0,0,1]);
cos(r1) -sin(r1 ) 0
C1 := sin(r1 ) cos(r1) 0

0 0 1

> M1:=evalm(C1&*B1&*A1);
M1 := [
[cos(r1 ) cos(p1), -sin(r1 ) cos(w1) + cos(r1 ) sin(p1) sin(w1), sin(r1 ) sin(w1) + cos(r1 ) sin(p1) cos(w1)],
[sin(r1 ) cos(p1), cos(r1 ) cos(w1) + sin(r1 ) sin(p1) sin(w1), -cos(r1 ) sin(w1) + sin(r1) sin(p1) cos(w1)],
[-sin(p1), cos(p1) sin(w1), cos(p1) cos(w1)]]

> A2:=matrix(3,3,[1,0,0,0,cos(w2),-sin(w2),0,sin(w2),cos(w2)]);
1 0 0

A2 := 0 cos(w2) -sin(w2)

0 sin(w2) cos(w2)

> B2:=matrix(3,3,[cos(p2),0,sin(p2),0,1,0,-sin(p2),0,cos(p2)]);
cos(p2) 0 sin(p2)

B2 := 0 1 0

-sin(p2) 0 cos(p2)

> C2:=matrix(3,3,[cos(r2),-sin(r2),0,sin(r2),cos(r2),0,0,0,1]);
cos(r2) -sin(r2 ) 0

C2 := sin(r2 ) cos(r2) 0

0 0 1

> M2:=evalm(C2&*B2&*A2);
M2 := [
[cos(r2 ) cos(p2), -sin(r2 ) cos(w2) + cos(r2 ) sin(p2) sin(w2), sin(r2 ) sin(w2) + cos(r2 ) sin(p2) cos(w2)],
[sin(r2 ) cos(p2), cos(r2 ) cos(w2) + sin(r2 ) sin(p2) sin(w2), -cos(r2 ) sin(w2) + sin(r2) sin(p2) cos(w2)],
[-sin(p2), cos(p2) sin(w2), cos(p2) cos(w2)]]

> M:=evalm(M1&*M2);
>
M := [
[
cos(r1) cos(p1) cos(r2 ) cos(p2) + (-sin(r1 ) cos(w1) + cos(r1 ) sin(p1) sin(w1)) sin(r2) cos(p2)
- (sin(r1) sin(w1) + cos(r1) sin(p1) cos(w1)) sin(p2),
cos(r1) cos(p1) (-sin(r2 ) cos(w2) + cos(r2 ) sin(p2) sin(w2))
+ (-sin(r1 ) cos(w1) + cos(r1) sin(p1) sin(w1)) (cos(r2 ) cos(w2) + sin(r2 ) sin(p2) sin(w2))
+ (sin(r1) sin(w1) + cos(r1) sin(p1) cos(w1)) cos(p2) sin(w2),
cos(r1) cos(p1) (sin(r2 ) sin(w2) + cos(r2 ) sin(p2) cos(w2))
+ (-sin(r1 ) cos(w1) + cos(r1) sin(p1) sin(w1)) (-cos(r2) sin(w2) + sin(r2 ) sin(p2) cos(w2))
+ (sin(r1) sin(w1) + cos(r1) sin(p1) cos(w1)) cos(p2) cos(w2)],
[
sin(r1 ) cos(p1) cos(r2) cos(p2) + (cos(r1 ) cos(w1) + sin(r1 ) sin(p1) sin(w1)) sin(r2) cos(p2)
- (-cos(r1) sin(w1) + sin(r1 ) sin(p1) cos(w1)) sin(p2),
sin(r1 ) cos(p1) (-sin(r2) cos(w2) + cos(r2 ) sin(p2) sin(w2))
+ (cos(r1 ) cos(w1) + sin(r1 ) sin(p1) sin(w1)) (cos(r2 ) cos(w2) + sin(r2 ) sin(p2) sin(w2))
+ (-cos(r1) sin(w1) + sin(r1 ) sin(p1) cos(w1)) cos(p2) sin(w2),
sin(r1 ) cos(p1) (sin(r2 ) sin(w2) + cos(r2 ) sin(p2) cos(w2))
+ (cos(r1 ) cos(w1) + sin(r1 ) sin(p1) sin(w1)) (-cos(r2 ) sin(w2) + sin(r2) sin(p2) cos(w2))
+ (-cos(r1) sin(w1) + sin(r1 ) sin(p1) cos(w1)) cos(p2) cos(w2)],
[-sin(p1) cos(r2) cos(p2) + cos(p1) sin(w1) sin(r2 ) cos(p2) - cos(p1) cos(w1) sin(p2),
-sin(p1) (-sin(r2 ) cos(w2) + cos(r2 ) sin(p2) sin(w2))
+ cos(p1) sin(w1) (cos(r2 ) cos(w2) + sin(r2 ) sin(p2) sin(w2)) + cos(p1) cos(w1) cos(p2) sin(w2),
-sin(p1) (sin(r2 ) sin(w2) + cos(r2 ) sin(p2) cos(w2))
+ cos(p1) sin(w1) (-cos(r2) sin(w2) + sin(r2 ) sin(p2) cos(w2)) + cos(p1) cos(w1) cos(p2) cos(w2)]]

> p:=-evalf(arcsin(M[3,1])*180/Pi);
p := 57.29577950 arcsin(
sin(p1) cos(r2 ) cos(p2) - 1. cos(p1) sin(w1) sin(r2 ) cos(p2) + cos(p1) cos(w1) sin(p2))
> prad:=evalf(p*Pi/180);
prad := 0.9999999999 arcsin(
sin(p1) cos(r2 ) cos(p2) - 1. cos(p1) sin(w1) sin(r2 ) cos(p2) + cos(p1) cos(w1) sin(p2))
> w:=evalf(arcsin(M[3,2]/cos(prad))*180/Pi);
w := 57.29577950 arcsin(
(-1. sin(p1) (-1. sin(r2) cos(w2) + cos(r2 ) sin(p2) sin(w2))
+ cos(p1) sin(w1) (cos(r2 ) cos(w2) + sin(r2 ) sin(p2) sin(w2)) + cos(p1) cos(w1) cos(p2) sin(w2)) cos
(
0.9999999999 arcsin(
sin(p1) cos(r2 ) cos(p2) - 1. cos(p1) sin(w1) sin(r2 ) cos(p2) + cos(p1) cos(w1) sin(p2))))

> r:=evalf(arcsin(M[2,1]/cos(prad))*180/Pi);
>
r := 57.29577950 arcsin(
(sin(r1 ) cos(p1) cos(r2 ) cos(p2) + (cos(r1 ) cos(w1) + sin(r1 ) sin(p1) sin(w1)) sin(r2 ) cos(p2)
- 1. (-1. cos(r1) sin(w1) + sin(r1 ) sin(p1) cos(w1)) sin(p2)) cos(
0.9999999999 arcsin(
sin(p1) cos(r2 ) cos(p2) - 1. cos(p1) sin(w1) sin(r2 ) cos(p2) + cos(p1) cos(w1) sin(p2))))

> V2:=matrix(3,1,[X2,Y2,Z2]);
X2

V2 := Y2

Z2

> V1:=matrix(3,1,[X1,Y1,Z1]);
X1
V1 := Y1

Z1

> V3:=evalm(M1&*V2);
V3 := [
[
cos(r1) cos(p1) X2 + (-sin(r1 ) cos(w1) + cos(r1) sin(p1) sin(w1)) Y2
+ (sin(r1) sin(w1) + cos(r1) sin(p1) cos(w1)) Z2],
[
sin(r1 ) cos(p1) X2 + (cos(r1) cos(w1) + sin(r1) sin(p1) sin(w1)) Y2
+ (-cos(r1) sin(w1) + sin(r1 ) sin(p1) cos(w1)) Z2],
[-sin(p1) X2 + cos(p1) sin(w1) Y2+ cos(p1) cos(w1) Z2]]

> V:=evalm(V3+V1);
V := [
[
cos(r1) cos(p1) X2 + (-sin(r1 ) cos(w1) + cos(r1) sin(p1) sin(w1)) Y2
+ (sin(r1) sin(w1) + cos(r1) sin(p1) cos(w1)) Z2 + X1],
[
sin(r1 ) cos(p1) X2 + (cos(r1) cos(w1) + sin(r1) sin(p1) sin(w1)) Y2
+ (-cos(r1) sin(w1) + sin(r1 ) sin(p1) cos(w1)) Z2 + Y1],
[-sin(p1) X2 + cos(p1) sin(w1) Y2+ cos(p1) cos(w1) Z2 + Z1]]

>

You might also like