我试图计算这类矩阵之间乘法的特征值:
import numpy as np
μ=1.5
σ=0.5
m=np.random.normal(μ,σ)
P=[[-1, m, 0.1, 0.1],[1,0,0,0],[0,1,0,0],[0,0,1,0]] #matrix
n=200
for i in range(n):
m=np.random.normal(μ,σ)
T=[[-1, m, 0.1, 0.1],[1,0,0,0],[0,1,0,0],[0,0,1,0]]
P=np.dot(T,P)
l,v=np.linalg.eig(T)
λ,w=np.linalg.eig(P)
print(l)
print(λ)由于矩阵T的三个特征值小于1(在模中),我期望与矩阵乘积P的特征值相似,特别是小于1的三个特征值将对应于P的特征值,后者随着n的增加而减小并收敛到0。事实上,在n=40之前,这是正确的。那就不再起作用了。对于σ=0,P是n个特征值小于1的矩阵的乘积,但P的特征值会发散。
发布于 2022-06-09 19:41:35
您的T[i]不能保证特征值小于1。
添加一个断言,您将看到它何时违反了假设
import numpy as np
μ=1.5
σ=0.5
m=np.random.normal(μ,σ)
P=[[-1, m, 0.1, 0.1],[1,0,0,0],[0,1,0,0],[0,0,1,0]] #matrix
n=200
for i in range(n):
m=np.random.normal(μ,σ)
T=[[-1, m, 0.1, 0.1],[1,0,0,0],[0,1,0,0],[0,0,1,0]]
assert np.all(abs(np.linalg.eigvals(T)) < 1)
P=np.dot(T,P)
l,v=np.linalg.eig(T)
λ,w=np.linalg.eig(P)
print(abs(l))
print(λ)作为一个随机系统,有时甚至违反约束条件,它可以收敛,但需要对序列的期望值进行一些细致的分析。
该矩阵结构类似于线性动态系统[1]中可控制的典范形式。
但是,由于矩阵T的特征值有时大于1,所以您建议的推理在这种情况下不适用。
https://stackoverflow.com/questions/72518465
复制相似问题