$Version
(* "13.2.1 for Mac OS X ARM (64-bit) (January 27, 2023)" *)
ClearAll["Global`*"]
Rationalize
A[0]
A[0] = {{0, -1/0.2}, {1/0.01, -1/(22 0.01)}} // Rationalize;
Define A[n]
recursively
A[n_Integer?Positive] := A[n] = 2*A[n - 1] + IdentityMatrix[2]
Generate a sequence of matrices
MatrixForm /@ (seq = (A /@ Range[10]))
Use FindSequenceFunction
for each matrix position to find the general solution
(A2[n_] = Partition[
FindSequenceFunction[#, n] & /@
Transpose[Flatten /@ seq],
2] // Simplify) // MatrixForm
Comparing the general solution with the recursive definition over a broader range
And @@ Table[A[n] == A2[n], {n, 0, 100}]
(* True *)
EDIT: For a general 2x2 initial matrix
Format[a[n__]] := Subscript[a, Row[{n}]]
\[DoubleStruckCapitalA][0] = Array[a, {2, 2}];
\[DoubleStruckCapitalA][n_Integer?Positive] :=
\[DoubleStruckCapitalA][n] =
2*\[DoubleStruckCapitalA][n - 1] + IdentityMatrix[2]
seq = (\[DoubleStruckCapitalA] /@ Range[7]) // Simplify;
(\[DoubleStruckCapitalA]2[n_] =
Partition[FindSequenceFunction[#, n] & /@
Transpose[Flatten /@ seq], 2] // Simplify) //
MatrixForm
Verifying that the general solution agrees with the recursive definition over a broad range
And @@ Table[\[DoubleStruckCapitalA][n] ==
\[DoubleStruckCapitalA]2[n], {n, 0, 100}] // Simplify
(* True *)
Comparing with the initial result,
repl = Thread[
Flatten[\[DoubleStruckCapitalA][0]] ->
Flatten[Rationalize[{{0, -1/0.2}, {1/0.01, -1/(22 0.01)}}]]]
A2[n] === Simplify[\[DoubleStruckCapitalA]2[n] /. repl]
(* True *)
EDIT 2: Using RSolveValue
indirectly
RSolveValue[{A[n + 1] - 2 A[n] == 1, A[0] == A0}, A[n], n]
(* -1 + 2^n + 2^n A0 *)
Converting this result to matrices
A0 = Array[a, {2, 2}];
(A[n_] = 2^n*A0 + 2^n*IdentityMatrix[2] - IdentityMatrix[2]) //
MatrixForm
This is identical to \[DoubleStruckCapitalA]2[n]
A[n + 1] - 2 A[n] == IdentityMatrix[2]
I think $\endgroup$