Шилин Никита. Технология SEQ. Вычисление многомерных интегралов методом Монте-Карло. Вариант 12#72
Conversation
…ов методом Монте-Карло. Вариант 12
e600eb2 to
20f5f42
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e600eb2342
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
|
||
| for (int i = 0; i < num_points_; ++i) { | ||
| for (int d = 0; d < dimensions; ++d) { | ||
| current[d] += kAlpha[d % alpha_size]; |
There was a problem hiding this comment.
Generate unique Kronecker steps for each dimension
Using d % alpha_size makes dimensions separated by 10 share the same Kronecker increment, so coordinates become perfectly correlated (e.g., x0 == x10 for all samples). This introduces a systematic bias for valid higher-dimensional inputs (e.g., kProduct and kSinProduct in 11+ dimensions), so the estimator is no longer correct for the claimed arbitrary-dimensional case. Either reject dimensions above the supported alpha list or generate distinct irrational steps for every dimension.
Useful? React with 👍 / 👎.
8d79f99 to
cad3715
Compare
Описание
Задача: Вычисление многомерных интегралов методом Монте-Карло
Вариант: 12
Технология: SEQ
Описание вашей реализации и отчёта.
Реализован метод квази-Монте-Карло для вычисления многомерных определённых интегралов произвольной размерности. Для генерации точек используется последовательность Кронекера — детерминированная квазислучайная последовательность на основе дробных частей квадратных корней простых чисел (2, 3, 5, 7, ...). Это обеспечивает равномерное покрытие области интегрирования и воспроизводимость результатов.
Алгоритм: для N точек в d-мерном пространстве [a₁,b₁]×...×[aₐ,bₐ] генерируются квазислучайные координаты, вычисляется значение подынтегральной функции в каждой точке, результат усредняется и умножается на объём области. Сложность: O(N·d) по времени, O(d) по памяти.
Поддерживаются 5 подынтегральных функций с известными аналитическими решениями: Constant (f=1), Linear (f=Σxᵢ), Product (f=Πxᵢ), SumSquares (f=Σxᵢ²), SinProduct (f=Πsin(xᵢ)). Тестирование включает 8 функциональных тестов (1D, 2D, 3D) и 2 перформанс-теста (10M точек, 3D).
Чек-лист
shilin_n_monte_carlo_integrationclang-formatлокально в моем форке (нет ошибок форматирования)clang-tidyлокально в моем форке (нет предупреждений/ошибок)(
shilin_n_monte_carlo_integration), а не вmasterдостоверными