【发布时间】:2020-11-19 22:02:33
【问题描述】:
让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 := 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] 的结果称为u[k] 而不是(如你所写的)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);
【讨论】: