How to generate a random positive semi-definite matrix of certain size with real numbers in a certain range?
6 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I'm looking for a way to generate a *random positive semi-definite matrix* of size n with real number in the *range* from 0 to 4 for example.
I didn't find any way to directly generate such a matrix. However, I found that *Lehmer* matrix is a positive definite matrix that when you raise each element to a nonnegative power, you get a positive semi-definite matrix.
So, I did something like this
A=16*gallery('lehmer',100) %matrix of size 100*100 in range 0-16
B=A.^(1/2) %scale down to range 0-4
So my questions are:
1. I wonder if that maintains the randomness of the matrix?
2. Is there any direct way to generate random positive semidefinite matrix?
Thanks,
0 Commenti
Risposta accettata
Walter Roberson
il 21 Ott 2011
2 Commenti
Walter Roberson
il 26 Ott 2011
Your question as phrased was about constructing random PD matrices whose entries were all within a certain range.
That is a different matter than constructing matrices whose entries have a uniform distribution within a given range and the matrix as a whole is PD. Such matrices appear to be relatively rare to start with; to require uniform random distribution on the entries appears to make them difficult to generate.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Random Number Generation in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!