Рассмотрим эллипсоид, заданный уравнением
Можно принять, что центр эллипсоида v=0 (а если нужен смещённый в иную точку - прибавить к найденным координатам точки внутри соответствующие компоненты вектора координат центра v)
Учитывая, что матрица А положительно определённая и симметричная, её можно представить, как
и, заменяя
перейти к уравнению для шара
Очевидно, это преобразование, растяжение и поворот осей, равномерное распределение точек внутри шара переведёт в равномерное внутри эллипсоида.
То есть, сгенерировав случайную точку y с равномерным внутри сферы распределением, можно получить равномерно распределённую внутри эллипсоида точку x, как
Остаётся выяснить, как получить точку, равномерно распределённую внутри сферы.
Простейший способ - "отбрасыванием", т.е. генерируется n случайых величин, распределённых U(-1,1), находится сумма их квадратов, если она больше 1, попытка неудачна, делается следующая, пока не будет получена точка внутри сферы. При большом n этот способ даст большое число неудачных попыток, так, например, при n=8 неудачны будут 63 попытки из 64. Поэтому лучше сгенерировать n случайных величин, из которых одна даст для точки координату r, остальные угловые координаты точки (далее по формуле гиперсферических координат). Однако распределение r не может быть равномерным, плотность распределения должна быть пропорциональна объёму слоя гиперсферы, соответствующему радиусу r, то есть
. То есть функция распределения будет
для r от нуля до единицы, нулю при r<0 и единице при r>1. Так что для получения r надо сгенерировать равномерное U(0,1) и вычислить