# Generating random vectors using Mathematica and an inequality

Consider $$n$$-dimensional vectors $$c^i = \left(c^i_1, c^i_2 ...c^i_n \right)$$ , whose entries are complex and generated at random. These vectors are normalized such that

$$|c^i|^2 = 1.$$

Using Mathematica, how do I construct such a set of $$k$$ vectors $$\{ c^i\}$$? Does it numerically satisfy the following relation in the limit of large-$$n$$,

$$|(c^i)^* c^j| <<1, \quad i \neq j ?$$

Note: As an explicit example, can this be seen numerically for $$n \approx 1000$$?

One way to generate some random vectors that satisfy your normalization rule:

v = RandomPoint[Sphere[1000],100] /. {x_?NumericQ :> x Exp[I RandomReal[{0, 2 Pi}]]}


v will be a set of 100 1000-d vectors where

Norm/@v


will yield all 1. Now we look at your test

test = Outer[Abs@*Dot, Conjugate[v], v, 1];

ListDensityPlot[test, PlotLegends -> Automatic,ScalingFunctions -> "Log"]


A slice:

• Forgot to say this, thank you. It was immensely useful to me. A typo, you meant "test = Outer[Abs@*Dot, Conjugate[v], v, 1]", right? Feb 28 '20 at 17:34
• Ah yes, whoops let me correct that.
– chuy
Mar 2 '20 at 16:02
• I have another question which is related to your this answer. Please have a look! mathematica.stackexchange.com/q/215687/60781 Mar 3 '20 at 12:43