# How to compute the limit of a subdivided rotation applied to itself n times?

I have the following function:

f[n_, angle_, axis_] := Simplify[RotationMatrix[angle/n, axis]^n];


where n is a positive integer, angle is real and axis is a 3d real vector.

So the idea is that a specific rotation, given by axis and angle, is subdivided into n steps and is repeatedly applied onto itself n times.

This should approach some limit as n->+Inf.

Trying to compute the limit I did:

Simplify[Limit[f[n, a, {x, y, z}], n -> Infinity,
Assumptions -> Element[n, PositiveIntegers]]]


But mathematica just gives me:

Limit::alimv: Warning: Assumptions that involve the limit variable are ignored.
{{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}


How can I get the proper limit function ?

• Have you looked at the function RotationMatrix? That might be a good start. Commented Mar 18, 2021 at 23:29
• that part I found and solved. but that's about it. ;) Commented Mar 19, 2021 at 0:40
• Then please show your progress. Commented Mar 19, 2021 at 2:01
• Welcome to MMA SE! I don't quite understand...do you really mean f(x/N) there? Isn't f defined on integers? x/N seems to approach 0 as N goes to infinity. Commented Mar 19, 2021 at 4:12
• Also, I'm not totally sure you need recursion here—isn't f(n) simply the matrix RotZ(angleZ/N) * RotY(angleY/N) to the nth power, or is there some subtlety here about the axes changing, maybe? Commented Mar 19, 2021 at 4:14

expr1 = Simplify[
RotationMatrix[angle/n, {a, b, c}], {angle \[Element] Reals,
n \[Element] Integers, a \[Element] Reals, b \[Element] Reals,
c \[Element] Reals}];
expr2 = Simplify[
MatrixPower[expr1, n], {angle \[Element] Reals,
n \[Element] Integers, a \[Element] Reals, b \[Element] Reals,
c \[Element] Reals}];
expr3 = Limit[expr2, n -> Infinity];
expr4 = Simplify[
expr3 - (expr1 /. {n -> 1}), {angle \[Element] Reals,
n \[Element] Integers, a \[Element] Reals, b \[Element] Reals,
c \[Element] Reals}]


In expr1, we assume an arbitrary axis of rotation, {a, b, c} with real components. Set up the RotationMatrix for angle/n as our general case. Use Simplify to ensure that it remains a manageable expression.

In expr2, we use MatrixPower to raise the result of expr1 to the n-th power and Simplify again with the same assumptions to ensure the expression remains manageable.

In expr3, take the Limit as n -> Infinity. This expression is the one you've stated that you're looking for, but it is also equivalent to expr1 /. {n -> 1}, which is proven by evaluating expr4 and finding that it equals {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}} after simplification.