Azzera filtri
Azzera filtri

random generation of a matrix subject to a certain constraint

1 visualizzazione (ultimi 30 giorni)
Hello there,
Is there a way to randomly generate a mx1 matrix A, such that transpose(A)*B*A>=1? where B is an mxm matrix?
Thank you!
  3 Commenti
John D'Errico
John D'Errico il 6 Mar 2016
Modificato: John D'Errico il 6 Mar 2016
Anyway, this question is poorly posed, in the same sense that it makes no sense to ask to choose a random positive integer. Without any definition of the distribution of those numbers, it is impossible to generate such a solution.
Mnr
Mnr il 7 Mar 2016
Modificato: Mnr il 7 Mar 2016
B is a real valued positive semi definite matrix.

Accedi per commentare.

Risposte (1)

John D'Errico
John D'Errico il 7 Mar 2016
B is real, semi-positive definite (or non-negative definite) with a complete set of eigenvectors/values.
Ws can always write A as a linear combination of the eigenvectors.
A = sum(c_i*V_i)
Here V_i is the i'th eigenvector, and c_i is the coefficient in the linear combination. I've used sum sloppily here, as a summation over i, not as the MATLAB function sum.
Then what is A'*B*A?
B*A = sum(c_i*lambda_i*V_i)
If we then take the dot product with the vector A, we need to recognize that the vectors V_i are orthogonal, with unit norm. So dot(V_i,V_i) == 1, and dot(V_i*V_j)=0 for i~=j. Therefore we can write
A'*B*A = sum(c_i^2*lambda_i)
Since the matrix is non-negative definite, all of the lambda_i are real, and non-negative. Therefore, if you will choose a vector A such that A'*B*A>=1, all you need do is choose the c_i such that
sum(c_i*lambda_i) >= 1
As I said, this problem is not well-posed, since without definition of a distribution for the c_i, we cannot choose such a random vector. Regardless, this is a sufficient result for you to do as you wish.

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!

Translated by