Basic algebraic operations on symbolic objects are the same
as operations on MATLAB^{®} objects of class `double`

.
This is illustrated in the following example.

The Givens transformation produces a plane rotation through
the angle `t`

. The statements

syms t G = [cos(t) sin(t); -sin(t) cos(t)]

create this transformation matrix.

G = [ cos(t), sin(t)] [ -sin(t), cos(t)]

Applying the Givens transformation twice should simply be a
rotation through twice the angle. The corresponding matrix can be
computed by multiplying `G`

by itself or by raising `G`

to
the second power. Both

A = G*G

and

A = G^2

produce

A = [ cos(t)^2 - sin(t)^2, 2*cos(t)*sin(t)] [ -2*cos(t)*sin(t), cos(t)^2 - sin(t)^2]

The `simplify`

function

A = simplify(A)

uses a trigonometric identity to return the expected form by trying several different identities and picking the one that produces the shortest representation.

A = [ cos(2*t), sin(2*t)] [ -sin(2*t), cos(2*t)]

The Givens rotation is an orthogonal matrix, so its transpose is its inverse. Confirming this by

I = G.' *G

which produces

I = [ cos(t)^2 + sin(t)^2, 0] [ 0, cos(t)^2 + sin(t)^2]

and then

I = simplify(I)

I = [ 1, 0] [ 0, 1]

Was this topic helpful?