非常感谢!
想了好久
我自己算的完全不符合。
你好,把A分解成A=P*D*P^(-1)
就行【注意:P^(-1)
是P的逆,D是对角矩阵】
那么每次都有x2 = A*x1
xn = (A*...*A)x1
【括号里n-1个A】
所以xn = P*D*P^(-1) * P*D*P^(-1) * ... *P*D*P^(-1)*x1
= P*(D*...*D)*P^(-1)*x1
【括号里n-1个D】
所以最后就好计算了哈哈哈,求出P*(D*...*D)*P^(-1)
就可以,思路大概就是这样,代码仅供参考:
干脆全部改为符号运算:
syms x [2,1]
syms A [2,2]
syms n positive integer
A = [2,5; 1,3];
xn = A^(n-1)*x; % 我这里把x1改成用x表示会更好
xn = simplify(xn)
pretty(xn)
结果:
xn =
(3*x1*(5/2 - 21^(1/2)/2)^n)/2 + (3*x1*(21^(1/2)/2 + 5/2)^n)/2 - (5*x2*(5/2 - 21^(1/2)/2)^n)/2 - (5*x2*(21^(1/2)/2 + 5/2)^n)/2 + (13*21^(1/2)*x1*(5/2 - 21^(1/2)/2)^n)/42 - (13*21^(1/2)*x1*(21^(1/2)/2 + 5/2)^n)/42 - (25*21^(1/2)*x2*(5/2 - 21^(1/2)/2)^n)/42 + (25*21^(1/2)*x2*(21^(1/2)/2 + 5/2)^n)/42
x2*(5/2 - 21^(1/2)/2)^n - (x1*(21^(1/2)/2 + 5/2)^n)/2 - (x1*(5/2 - 21^(1/2)/2)^n)/2 + x2*(21^(1/2)/2 + 5/2)^n - (5*21^(1/2)*x1*(5/2 - 21^(1/2)/2)^n)/42 + (5*21^(1/2)*x1*(21^(1/2)/2 + 5/2)^n)/42 + (4*21^(1/2)*x2*(5/2 - 21^(1/2)/2)^n)/21 - (4*21^(1/2)*x2*(21^(1/2)/2 + 5/2)^n)/21
/ x1 #1 3 x1 #2 3 x2 #1 5 x2 #2 5 sqrt(21) x1 #1 13 sqrt(21) x1 #2 13 sqrt(21) x2 #1 25 sqrt(21) x2 #2 25 \
| ------- + ------- - ------- - ------- + ----------------- - ----------------- - ----------------- + ----------------- |
| 2 2 2 2 42 42 42 42 |
| |
| x1 #2 x1 #1 sqrt(21) x1 #1 5 sqrt(21) x1 #2 5 sqrt(21) x2 #1 4 sqrt(21) x2 #2 4 |
| x2 #1 - ----- - ----- + x2 #2 - ---------------- + ---------------- + ---------------- - ---------------- |
\ 2 2 42 42 21 21 /
where
/ 5 sqrt(21) \n
#1 == | - - -------- |
\ 2 2 /
/ sqrt(21) 5 \n
#2 == | -------- + - |
\ 2 2 /