3x3 の行列と 3x1 のベクトルがあるとします。行列A
にベクトルをP
複数回掛けたいとします。
A=[0 0.3 0.5; 0.8 0 0.5; 0.2 0.7 0] * P=[1; 1; 1]
これの答えを何倍にもしたいP
ですN
。
今は手作業でこれを行うことができますが、Matlab を使用することを余儀なくされており、頭痛の種になっています。
乾杯
3x3 の行列と 3x1 のベクトルがあるとします。行列A
にベクトルをP
複数回掛けたいとします。
A=[0 0.3 0.5; 0.8 0 0.5; 0.2 0.7 0] * P=[1; 1; 1]
これの答えを何倍にもしたいP
ですN
。
今は手作業でこれを行うことができますが、Matlab を使用することを余儀なくされており、頭痛の種になっています。
乾杯
これは単なる推測ですが、あなたが望むのは
PN = mpower(A,N)*P0
これN
が世代番号で、P0
は初期集団ベクトルです。
@LuisMendo および @DennisJaheruddin が示唆するように、これは次と同等です。
PN = A^N*P0
やや詳しく説明すると、世代ごとに を使用して古い人口から新しい人口を計算しますPnew = A*Pold
。つまり、次のようになります。
P1 = A*P0 % generation 1
P2 = A*P1 = A*A*P0 % generation 2
P3 = A*P2 = A*A*A*P0 % generation 3
などなど
PN = (A*A*A*A...*A)*P0 % generation N
= A^N*P0