2012-03-17 13 views
6

me gustaría para generar una matriz cuadrada simétrica aleatoria verdadera con las entradas distribuidas uniformemente entre 0 y 1. Mi intento es: a = rand(5); b = a + a.'Cómo generar una matriz cuadrada simétrica real aleatorio con las entradas distribuidas uniformemente

Mi preocupación es que si bien la matriz a se distribuye uniformemente de acuerdo con la documentación http://www.mathworks.com.au/help/techdoc/ref/rand.html, la matriz b podría no ser, ya que el promedio de dos números aleatorios podría no ser el mismo que el número original.

He intentado utilizar hist(a); hist(b) pero no estoy seguro de cómo interpretar el gráfico resultante. EDITAR: Según Oli matriz b ya no se distribuye uniformemente, ¿hay alguna manera de hacerlo de esa manera?

Respuesta

14

No, si lo hace, entonces b no se distribuirá uniformemente; tendrá un triangular distribution.

¿Qué tal algo como esto:

a = rand(5); 
b = triu(a) + triu(a,1)'; 

donde triu() toma la parte triangular superior de la matriz.

+0

gracias, Oli, ¿algún consejo sobre cómo hacer que se distribuya uniformemente? – Aina

+0

@Aina: ver mi respuesta actualizada. –

+0

gracias, Oli, ¿así que usar la función triu mantiene la distribución uniforme? Acabo de ejecutarlo y hist (b) se ve diferente a lo que tenía para mi matriz b. – Aina

2

Solo puede obtener entradas distribuidas uniformemente en la mitad de la matriz.

a=rand(5); 
b=triu(a).'+triu(a,1); 
+0

gracias g24l, entonces ¿es IMPOSIBLE tener una matriz simétrica aleatoria con entradas uniformemente distribuidas? – Aina

+0

@Aina: Estaba hablando de cómo generar la matriz. Los elementos de la matriz están distribuidos uniformemente, pero no al azar, y no iid. –

Cuestiones relacionadas