9 votos

Expresan los valores de una matriz en pow N

Tengo una matriz cuadrada (que viene de una Cadena de Markov) que se ve así:

Q=[0100..000a1a0..0000b1b..00..............0000..01]

con a,b,c, etc. los números reales entre el 0 1 incluido.

Estoy interesado en los valores de la primera línea de la matriz QN. Actualmente, estoy usando una biblioteca (numpy) que me permite calcular QN y luego leí la primera línea de esta matriz. Pero con grandes matrices (>500×500) y los grandes valores de N (~ 10000), es un poco demasiado lento para mi uso.

Por curiosidad, me han conspirado QN0,j N entre 1 a 1000 y me encontré con que se siga algo que se parece a una distribución de Poisson o similar (pero no sé si es sólo por mi específicos de la matriz de entrada Q o no).

Mi pregunta es, dada una matriz Q, hay una manera para obtener los valores de QN0,j sin tener que calcular QN?

Edit: los términos de la diagonal son tales como: 0 <= a <= b <= c <= ... < 1

Edit2:

Parece que si puedo diagonalize Q, puedo usar Qn=PDnP1, lo que es más rápido para grandes valores de n de una exponenciación al cuadrado (como el usado por numpy). El problema es que no estoy seguro de que es posible para cualquier matriz Q. Y si no es posible, me gustaría aceptar una ligera modificación de Q, P o D si el resultado es lo suficientemente cerca.

Edit3:

Los valores de la primera línea de QNN[1,100]:

Values of Q^N_i,0

Edit4:

es a<=b e no a<b, lo siento!

0voto

Rob Dickerson Puntos 758

Un general bidiagonal matriz no siempre es diagonalizable; por ejemplo, si a=b==12 obtendrá un bloque de Jordan de autovalores 12.

Pero, puesto que todas sus entradas son distintas, estás de suerte. Voy a cambiar de notación un poco:

M=[a11a1a21a2an11an11]. (En su caso, a1=0.)

Entonces los autovalores de a M son sencillamente a1,,an1,1. El vector propio correspondiente a 1 es, obviamente, la constante 1 vector. El autovector de a ai es el vector de la vi, donde vij={0,j>ii1k=j(ak1)i1k=j(akai),ji y vii=1 por el vacío producto de la convención. Usted puede comprobar esta fórmula por mirar el jésima fila de a Mvi:

aji1k=j(ak1)i1k=j(akai)+(1aj+1)i1k=j(ak1)i1k=j+1(akai)=(aj+(1aj)(ajai)aj1)vij=aivij.

Así que ahora que usted tiene los vectores propios y valores propios, se puede descomponer M=BDB1 y calcular el Mn=BDnB1.

EDIT: Aquí está la fórmula para B1. Escribir B=[v1v2vn] donde vi es como el anterior y vn es el vector. Entonces B1=[w1w2wn] con wij={0,j>ii1k=j(ak1)ik=j+1(akaj),ji para i<n y wnj={1,j=nn1k=j+1(ak1)n2k=j(akan1),j<n.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X