Текст подпрограммы и версий ( Фортран )
gsr1r.zip
Тексты тестовых примеров ( Фортран )
tgsr1r.zip
Текст подпрограммы и версий ( Си )
gsr1r_c.zip
Тексты тестовых примеров ( Си )
tgsr1r_c.zip
Текст подпрограммы и версий ( Паскаль )
gsr1r_p.zip
Тексты тестовых примеров ( Паскаль )
tgsr1r_p.zip

Подпрограмма:  GSR1R

Назначение

Генерация координат псевдослучайных точек, pавномеpно распределенных на поверхности трехмерной и четырехмерной единичной сферы.

Математическое описание

1.  Случай трехмерной сферы.

Пусть U1 и U2 - две независимые псевдослучайные величины, равномерно распределенные в интервале (-1, 1) и такие, что

      S  =  U12 + U22  ≤  1.

 Tогда искомые координаты определяются формулами:
        Z1  =  2 U1 √(1 - S) ,
        Z2  =  2 U2 √(1 - S) ,
        Z3  =  1 - 2 S . 
2.  Случай четырехмерной сферы.

Пусть U1, U2, U3, U4 - независимые псевдослучайные величины, равномерно распределенные в интервале ( - 1, 1 ) и

   U12 + U22 = S1  ≤ 1 ,
   U32 + U42 = S2  ≤ 1 . 

Тогда искомые координаты равны:

   Z1 = U1 ,    Z2 = U2 ,    Z3 = U3 [(1-S1) / S2]1/2 ,
   Z4 = U4 [(1-S1) / S2]1/2 . 

Marsaglia,G., "Choosing a point from the surface of a sphere", The Annals of Mathematical Statistics, 3(2), 1972, 645 - 646.

Использование

    SUBROUTINE  GSR1R (ISEED, N, IOPT, Z) 

Параметры

ISEED - целая переменная, значение которой перед обращением к подпрограмме может быть любым целым числом в пределах [1, 2147483646]; по окончании работы ей присваивается новое значение, котоpое может быть использовано при последующем вхождении в подпрограмму;
N - заданное количество генерируемых псевдослучайных точек (тип: целый);
IOPT - определяет размерность сферы: IOPT = 3 для генерации случайных точек на поверхности тpехмеpной сферы и IOPT = 4  - для четырехмерной сферы (тип: целый);
Z - вещественный массив размерности N на IOPT, содержащий вычисленные координаты псевдослучайных точек.

Версии: нет

Вызываемые подпрограммы

GSU1R - генерация массива псевдослучайных чисел, pавномеpно распределенных в интервале (0, 1).

Замечания по использованию

  Элемент массива Z (I, K) содержит К - ую координату I - ой точки.

Пример использования

       DIMENSION  Z(2, 3)
       ISEED = 123456
       N = 2
       IOPT = 3
       CALL  GSR1R (ISEED, N, IOPT, Z)

Результаты:

       Z(1, 1)  =  -0.4960526344526;        Z(2, 1)  =  -0.9250978409600;
       Z(1, 2)  =   0.8586316551782;        Z(2, 2)  =  -0.1760423796943;
       Z(1, 3)  =  -0.1291644865232;        Z(2, 3)  =   0.3364566319801.