Strona głównaArtykułyClassical Mechanics

Particle Interaction Simulation

Observe how individual particles interact with each other in a 3D space. Adjust parameters like mass, charge, and initial velocity to see the effects on their trajectories and collisions.

mysimulator teamZaktualizowano — czerwiec 2026≈ 9 min czytania▶ Otwórz symulację

Zamiana obliczenia na eksperyment

Metoda Monte Carlo zastępuje wartość, której trudno bezpośrednio obliczyć, oczekiwaniem, które można oszacować poprzez wielokrotne losowe próbkowanie: pobieraj próbki z odpowiedniej rozkładu, średniaj funkcję ich wartości i pozwól prawu dużego liczby zagwarantować, że średnia zbiega się do prawdziwego oczekiwanego wartości wraz ze wzrostem liczby próbek. Nazwa pochodzi z Los Alamos w latach 40-tych, gdzie Stanislaw Ulam zdał sobie sprawę, że trudne zadanie kombinatoryczne dotyczące solitaire było znacznie łatwiejsze do rozwiązania poprzez rozdartą talię i liczenie niż przez dokładną enumerację, a John von Neumann dostrzegł ten sam trik zastosowany bezpośrednio do transportu neutronów.

demo na żywo · powiązana symulacja● LIVE

π z kwadratu i ćwiartki koła

Najprostszy przykład koncepcyjny, który daje całą rodzinie intuicję: wkomarż kwadrat jednostkowy i z niego losowo wybieramy punkty. Prawdopodobieństwo, że punkt trafi do wnętrza ćwiartki koła, jest równe stosunkowi dwóch obszarów, π/4, więc licząc trafienia i skalując, otrzymujemy oszacowanie dla π:

załóżmy, że wewnątrz = 0; for (int i = 0; i < liczba_punktow; i++) { double x = random.nextDouble(); double y = random.nextDouble(); if (x*x + y*y <= 1) { wewnątrz++; } } return wewnątrz / liczba_punktow;

To ostatnia właściwość – całkowita obojętność błędu względem wymiaru – jest całą przyczyną, dla której Monte Carlo ma znaczenie poza zabawnymi demonstracjami. Zasada numerycznego całkowania oparta na siatce potrzebuje mᵈ punktów do rozmieszczenia m punktów wzdłuż każdego z d osi, więc jej koszt rośnie wraz z wymiarem (klątwa wymiarowości); granica błędna szacowania Monte Carlo 1/√n dosłownie nie zawiera d. W dwóch wymiarach ta obojętność względem wymiaru jest łagodną ciekawostką; w dwudziestu, dwustu lub dwuset wyższych wymiarach modelu ryzyka rzeczywistego, posteriora Bayesa lub całki transportu światła, często jest to jedyna metoda, która działa w ogóle.

let inside = 0;
for (let i = 0; i < n; i++) {
  const x = Math.random(), y = Math.random();
  if (x*x + y*y <= 1) inside++;
}
piEstimate = 4 * inside / n;

standard error ≈ 1.64 / sqrt(n)      (falls with 1/sqrt(n), independent of dimension)

Ogólne zintegrowanie: każdy całka jest obszarem

Nic powyżej nie jest specyficzne dla okręgów. Każdy określony całka ∫f(x)dx wzdłuż ograniczonego obszaru może być zapisana jako oczekiwanie, E[f(X)] · (objętość obszaru), dla X wyciągniętego równomiernie z tego obszaru — więc ten sam trzyprzedni obwód szacujący π generalizuje natychmiast do szacowania dowolnej całki, w dowolnej liczbie wymiarów, po prostu próbując z odpowiedniego obszaru i średnią f zamiast liczenia uderzeń:

∫_a^b f(x) dx  ≈  (b − a) · (1/n) Σ f(Xi),     Xi ~ Uniform(a, b)

Od obszaru do pieniędzy: Wartość w ryzyku (VaR)

Ta sama maszyna odpowiada na zupełnie inne pytanie w finansach: jaki jest najgorszy możliwy zysk, jaki może poniósł portfel w danym horyzoncie czasowym i z określoną pewnością — jego Wartość w ryzyku (VaR)? Zamiast zakładać zamkniętą dystrybucję wartości przyszłej portfela, Monte Carlo VaR symuluje tysiące prawdopodobnych ścieżek cenowych bezpośrednio. Standardowy model dla ceny pojedynczego aktywa to ruch Browna geometrycznego (GBM), równanie różniczkowe stochastyczne

dS = μ S dt + σ S dW (μ = dryf, σ = zmienność, dW = wzrost Wienera) rozwiązany (Euler–Maruyama / dokładny GBM krok): S(t+Δt) = S(t) · exp( (μ − σ²/2)Δt + σ√Δt · Z ), Z ~ N(0,1) Symuluj tysiące niezależnych ścieżek cenowych w ten sposób do daty horyzontu, oblicz zysk lub stratę portfela na każdej symulowanej ścieżce i posortuj rozkład wyników. 95% VaR to po prostu strata na 5. percentylu tego symulowanego rozkładu — strata, której spodziewamy się, że zostanie przekroczona tylko 5% czasu. Ten podejście Monte Carlo radzi sobie z instrumentami zależnymi od ścieżki (opcje z możliwością wcześniejszego wykonywania lub bariery, produkty strukturalne), których formuły analityczne nie mogą obsłużyć, kosztem potrzeby wystarczającej liczby symulowanych ścieżek, aby wiarygodnie oszacować ogon rozkładu — ponieważ ogon definiuje się tym, że mamy najmniej próbek.

Oczekiwana niedosłowność (zwana również Warunkowym VaR) idzie o krok dalej i pyta: przy założeniu, że strata przekroczyła próg VaR, jaki jest jej średni rozmiar? Odpowiada na pytanie, na które sam VaR nie może odpowiedzieć — jak źle jest źle, poza progiem — i jest szacowany z tych samych symulowanych ścieżek poprzez po prostu uśrednianie strat, które spadają poza percentyl VaR, zamiast jedynie raportowanie tego jednego percentyla.

dS = μ S dt + σ S dW                        (μ = drift, σ = volatility, dW = Wiener increment)

discretised (Euler–Maruyama / exact GBM step):
S(t+Δt) = S(t) · exp( (μ − σ²/2)Δt + σ√Δt · Z ),     Z ~ N(0,1)

Buying accuracy without buying more samples

Because the 1/√n law is fixed, the only lever left is shrinking the variance of what you are averaging, and several standard techniques do exactly that for the same sample budget: importance sampling draws more heavily from the region that matters most (e.g. deep in the loss tail for VaR) and reweights to correct the bias; antithetic variates pairs each random draw Z with its mirror −Z, so their errors partially cancel; stratified sampling forces samples to cover the domain evenly rather than leaving it to chance; and control variates subtract off a correlated quantity whose true mean is already known exactly, using only the residual difference as the random part of the estimate.

Ważność zależy od generatora, a nie tylko od metody

Odpowiedź Monte Carlo jest tak wiarygodna, jak losowość, która ją napędza. W tym przypadku obowiązuje kilka zasad: użyj sprawdzonych generatorów zamiast domyślnych (losowe generatory liniowe są znane z wpadania w widoczne hiperplane, gdy ich wyjście jest przedstawione w dwóch lub więcej wymiarach); wyraźnie zasiej i zarejestruj ziarno, ponieważ niepowtarzalne uruchomienie Monte Carlo nie może być debugowane ani zweryfikowane; a w przypadku zastosowań o wysokim ryzyku uczciwie przyznaj się, że caża szacunek dziedziczy wszystkie założenia dotyczące modelu ścieżki cenowej — szacunek VaR GBM jest tak dobry, jak założenie, że zwroty są lognormalne z stałą zmiennością, co w rzeczywistości rynki najbardziej naruszają podczas ekstremalnych zdarzeń, o których VaR ma ostrzec.

Często zadawane pytania

Dlaczego integracja Monte Carlo działa w wysokich wymiarach, kiedy metody oparte na siatce nie działają?

Metoda oparta na siatce wymaga liczby punktów, która rośnie jako potęga (punktów na osi) wymiaru, co powoduje wykładniczy wzrost kosztów – tzw. przekleństwo wymiarowości. Granica błędów Monte Carlo, w przybliżeniu 1/sqrt(n), nie zależy od wymiaru; taka sama liczba próbek losowych daje w miarę równą dokładność niezależnie od tego, czy integrujemy nad 2 wymiarami, czy 200, co sprawia, że dominuje w problemach o wysokiej wymiarowości, takich jak symulacje ryzyka i transport światła.

Co oznacza wartość atryku 95%?

Jest to poziom strat, który wyniki symulacji portfela przekraczają tylko 5% czasu w ramach wybranego horyzontu – strata na poziomie 5. percentylu rozkładu zysków i strat. Nie mówi nic o tym, jak duże mogą być straty poza tym progiem; to pytanie odpowiada wartość oczekiwana minimalnej straty (Conditional VaR), która średnio oblicza straty, które przekraczają próg VaR.

Dlaczego dokładność Monte Carlo poprawia się tak wolno wraz ze wzrostem liczby próbek?

Ponieważ standardowy błąd średniej Monte Carlo spada w przybliżeniu jako 1/sqrt(n): aby zredukować błąd o połowę, potrzebujesz czterokrotnej liczby próbek, a aby dodać jeden cyfrę znaczeniową dokładności, potrzebujesz w przybliżeniu stu razy więcej próbek. Techniki redukcji wariancji, takie jak ważone próbkowanie, antithetic variates i próbkowanie stratyfikowane, zmniejszają stałą przed 1/sqrt(n), która jest jedynym dostępnym wsparciem, gdy liczba próbek staje się zbyt kosztowna do ciągłego podnoszenia.

Wypróbuj na żywo

Wszystko powyżej działa bezpośrednio w Twojej przeglądarce — otwórz Monte Carlo Estimation i zmieniaj parametry podczas działania. Nic nie jest instalowane ani przesyłane na serwer, cały model działa w jednej karcie.

▶ Otwórz symulację Monte Carlo Estimation

Co znalazłeś?

Dodaj kroki odtworzenia (opcjonalnie)