我有一些变量可以找到,例如x = [1x16(x1,x2,x3,.... x16变量)],条件是x1 + x2 + x3 + .... x16 = 1。我也有16x16矩阵Q = [16x16(实际值)]。
我需要求解方程式'x * Q = x'as shown here。如何用Matlab或任何其他语言轻松解决它?
答案 0 :(得分:0)
通过转置,您的方程式等效于Q'y = 1y,其中y:= x'(列向量),其中Q'是Q(矩阵表示法...)的转置,这意味着y是与本征向量相关的矩阵Q'的特征值1。对于马尔可夫矩阵,总是存在这样的特征向量。令s为列向量y的总和。可能发生两种情况:
两个s都不为0;然后将y的所有坐标除以s就足够了:我们获得的向量仍然是特征向量,坐标和等于1。
或s = 0,无法解决您的问题。
这是一个Matlab程序,可以处理3 x 3矩阵:
M=[.2 .3 .5
.1 .8 .1
.4 .4 .2]
[P,D]=eig(M')
Y=P(:,3)
M'*Y - Y,% should be 0
Z=Y/sum(Y),%the sum of Z's coordinates is 1
M'*Z-Z,% should be 0