Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Моделирование случайных полей.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
541.55 Кб
Скачать

4. Реализация алгоритма и результаты.

На языке С++ была написана программа, со следующей функциональностью:

- получение случайных величин с заданным спектром.

- построение полей с заданным спектром.

- визуализация полученных полей.

- статистический анализ результатов.

Для простоты был использован стационарный случай, когда все частоты . Не представляет труда построить нестационарные решения, однако, сколько-нибудь адекватная визуализация на бумаге в этом случае не представляется возможной.

Для тестов был выбран спектр:

Где за обозначен максимум спектра.

Число гармоник было выбиралось поочередно равным 10, 100 и 1000, расчетная сетка состояла из 40 делений по осям Х и по У, и 12 делений по Z. Визуализация представляет собой «фотографии» двумерных полей скорости на разных слоях по оси Z. Сетка равномерная, шаг сетки h был выбран равным 0.3, .

Моделирование случайных величин с заданной плотностью распределения выполнялось с помощью преобразования Смирнова (метода обратных преобразований). Моделирование гауссовых векторов производилось с помощью преобразования Бокса-Мюллера. Описание этих методов можно найти в [4]. Для машинной реализации равномерно распределенных случайных величин был выбран стандартный алгоритм получения псевдослучайных чисел двойной точности, вшитый в компилятор Visual Studio 2010.

На рис.1 в приложении приведена визуализация одной реализации описанного выше алгоритма. Поле качественно совпадает с нашими интуитивными представлениями о полях турбулентных пульсаций скорости.

Посчитаем сначала аналитически корреляционную функцию с выбранным выше спектром, и затем сравним ее с вычисленной в ходе работы алгоритма. Выражение (32) запишется следующим образом (с точностью до константы):

Графики этих функций и их соотнесение с посчитанными в программе при различных числах гармоник можно найти на рис. 2(а, б, в) в Приложении.

Сравнение теоретического спектра с полученным в программе отражены на рис. 3.

Статистический анализ результатов показал, что, во-первых, при росте N (10, 100, 1000) спектр поля стремится к изначально заданному, а, во-вторых, корреляционные функции стремились к аналитически вычисленным.

5. Выводы.

1) Была написана программа, позволяющая получать практически применимые поля. В выходном файле хранятся данные о всех гармониках в разложении (9).

2) Анализ полученных графиков показал, что при увеличении числа гармоник корреляционные функции стремились к аналитически вычисленным. Также, спектр стремился к теоретическому.

3) Было оценено примерное количество гармоник, при которых корреляционные функции становились едва различимы на графиках: N = 600~700.

6. Заключение.

Данный алгоритм позволяет получать трехмерные нестационарные поля турбулентной пульсации скорости без непосредственных решений сложных уравнений, а лишь благодаря знаниям о спектре этих полей. В задачах, где не требуется особая точность вычисления полей далеко от граничных условий, данный метод может дать удовлетворяющие нас результаты. Также данный алгоритм может помочь в решении диффузионных задач, например, для получения траекторий частиц в случайных полях.

Современные вычислительные возможности сполна позволяют получать практически применимые результаты. Одна реализация поля из 1000 гармоник занимает на персональном компьютере от 1 до 15 секунд, что позволяет проводить подобные вычислительные эксперименты, буквально, в домашних условиях.