首页 > 解决方案 > 如何实现 u^k = M^k u_0?

问题描述

M := Matrix([[0.94, 0.09], [0.06, 0.91]]);u[0] = Vector([0.8, 0.2]);。我可以使用什么命令来获得 u^k = M^k u_0 for k=5, 10, ..., 50?

标签: maple

解决方案


我猜你打错了,你想调用M^k . u[0]asu[k]而不是 (as you write it)的结果u^k

restart;
with(LinearAlgebra):
M := Matrix([[0.94, 0.09], [0.06, 0.91]]):
u[0] := Vector([0.8, 0.2]):

# One (inefficient) way
seq(M^k . u[0],k=5..50,5);

# Another way
M5 := M^5:
for k from 5 to 50 by 5 do
  u[k] := M5 . u[k-5];
end do;

# Another way
(evals,evecs) := simplify([Eigenvectors(M)])[]:
seq(evecs . DiagonalMatrix(map(`^`,evals,k))
    . evecs^(-1).u[0],
    k=5..50,5);

推荐阅读