{"id":890,"date":"2026-07-30T12:23:21","date_gmt":"2026-07-30T12:23:21","guid":{"rendered":"https:\/\/matforge.org\/?p=890","raw":"https:\/\/matforge.org\/?p=890"},"modified":"2026-07-30T12:23:21","modified_gmt":"2026-07-30T12:23:21","slug":"monte-carlo-uhq-methods-lhs-sobol-quasi","status":"publish","type":"post","link":"https:\/\/matforge.org\/de\/monte-carlo-uhq-methods-lhs-sobol-quasi\/","title":{"rendered":"Monte-Carlo-UQ-Methoden: Latin Hypercube, Sobol und Quasi-Monte Carlo","raw":"Monte-Carlo-UQ-Methoden: Latin Hypercube, Sobol und Quasi-Monte Carlo"},"content":{"rendered":"<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Reading Time: <\/span> <span class=\"rt-time\"> 10<\/span> <span class=\"rt-label rt-postfix\">minutes<\/span><\/span><p>Wenn die Ausgabe Ihrer Simulation von unsicheren Eingaben gesteuert wird, bestimmt die Art und Weise, wie Sie Samples aus diesen Eingaben ziehen, ob Ihre Unsicherheitsquantifizierung effizient oder verschwenderisch ist. Standard Monte Carlo verwendet I.I.D. Zuf\u00e4llige Ziehungen, die die Konvergenz garantieren, aber schmerzlich langsam. Stichprobenmethoden mit geringer Diskrepanz \u2014 Latin Hypercube Stichproben (LHS), SOBOL-Sequenzen und die breitere Familie der Quasi-Monte-Carlo (QMC) \u2013 Restrukturieren Sie den Probenahmeprozess so, dass Punkte den Parameterraum gleichm\u00e4\u00dfiger abdecken, wodurch die Varianz der Sch\u00e4tzer.<\/p>\n<p>In diesem Artikel gehen wir \u00fcber die kurze Erw\u00e4hnung in unserem <a href=\"https:\/\/matforge.org\/monte-carlo-methods-for-scientific-simulations\/\" target=\"_blank\" rel=\"nofollow noopener\"> Monte Carlo for Scientific Simulations Guide <\/a> hinaus. Dies ist ein spezieller Tiefpunkt in der Theorie, der praktischen Implementierung und den Entscheidungsrahmen f\u00fcr LHS, SOBOL-Sequenzen und QMC-Methoden mit funktionierendem Python-Code und einem Vergleich, wann jeder Ansatz gewinnt.<\/p>\n<h2>Schl\u00fcssel zum Mitnehmen<\/h2>\n<ul>\n<li><strong>LHS schichtet jede Dimension unabh\u00e4ngig voneinander<\/strong> und garantiert, dass jeder marginale Histogrammbeh\u00e4lter genau einmal gef\u00fcllt wird. Es liefert schnellere Konvergenz als Plain Monte Carlo zu niedrigen Kosten.<\/li>\n<li><strong>SOBOL-Sequenzen sind Sequenzen mit geringer Diskrepanz <\/strong>, die eine nahezu einheitliche Abdeckung in jeder Dimension erreichen, aber f\u00fcr den praktischen Gebrauch verschl\u00fcsselt werden m\u00fcssen und am besten mit zwei Probenpotenzen arbeiten.<\/li>\n<li><strong>QMC-Konvergenz kann O(n\u207b\u00b9)<\/strong> f\u00fcr glatte Integranden erreichen, gegen\u00fcber O(n\u207b\u00b9\u141f\u00b2) f\u00fcr Standard Monte Carlo \u2013 ein exponentieller Abfall der erforderlichen Probengr\u00f6\u00dfe f\u00fcr die gleiche Pr\u00e4zision.<\/li>\n<li><strong>Halton-Sequenzen erlauben beliebige Probenz\u00e4hlungen<\/strong> und sind leicht zu generieren, aber sie weisen strukturiertes Aliasing in h\u00f6heren Dimensionen auf. SoBol \u00fcbertrifft Halton, wenn Sie durch Scrambling Rotationsinvarianz ben\u00f6tigen.<\/li>\n<li><strong>Scrambling ist f\u00fcr die Produktion SOBOL nicht optional.<\/strong> &#8211; Unverschl\u00fcsselte Sequenzen induzieren systematische Verzerrungen bei periodischen oder diskontinuierlichen Integranden.<\/li>\n<\/ul>\n<h2>Das Stichprobenproblem: Warum zuf\u00e4llig nicht immer am besten ist<\/h2>\n<p>Die Kernherausforderung bei der Quantifizierung der Stichprobenbasierte Unsicherheit ist die <strong>Diskrepanz <\/strong> des Stichprobensatzes. Die Diskrepanz misst, wie gleichm\u00e4\u00dfig Punkte \u00fcber den Parameterraum verteilt sind. In der Grenze der unendlichen Stichproben geht jede vern\u00fcnftige Diskrepanz auf Null, aber die Geschwindigkeit, mit der dies geschieht, ist enorm wichtig.<\/p>\n<h3>Klassischer Monte Carlo<\/h3>\n<p>Standard Monte Carlo zeichnet Proben unabh\u00e4ngig von der Zielverteilung. Durch den zentralen Grenzwertsatz konvergiert der Sch\u00e4tzer mit einer Varianz, die proportional zu 1 \/ n ist. Das hei\u00dft, um den Standardfehler zu halbieren, m\u00fcssen Sie die Anzahl der Proben <strong>4ple<\/strong>. F\u00fcr eine rechnerisch teure Simulation &#8211; ein 3D-Thermoproblem, ein mehrphasiger Flussl\u00f6ser oder ein Material-Science-Lauf f\u00fcr die molekulare Dynamik &#8211; kann sich die Probenanzahl vervierfachen.<\/p>\n<h3>Die Diskrepanzperspektive<\/h3>\n<p>Sequenzen mit geringer Diskrepanz (LDs) werden genau konstruiert, um die Sternabweichung d * _n des Probensatzes zu minimieren. Die Definition lautet:<\/p>\n<pre><code>D*_N = sup_{A \u2286 [0,1]^s} |(1\/N) \u03a3 1_A(x_i) \u2212 \u03bb(A)|\n<\/code><\/pre>\n<p>wobei \u03bb(a) das Lebesgue-Ma\u00df (Volumen) von A ist und das Supremum \u00fcber alle achsengerichteten Unterboxen genommen wird. Im Klartext: LDS-Sequenzen minimieren die maximale Abweichung zwischen empirischer und wahrer Wahrscheinlichkeit \u00fcber jeden rechteckigen Bereich.<\/p>\n<p>Die <strong>Sobelev-Dick-Tractman-Ungleichung<\/strong> (das Koks-Meyers-Theorem f\u00fcr LDS) besagt, dass f\u00fcr eine Funktion f mit gemischten partiellen Ableitungen bis zur Ordnung S der Integrationsfehler einer LDS-Regel begrenzt wird durch:<\/p>\n<pre><code>|\u222b f \u2212 (1\/N) \u03a3 f(x_i)| \u2264 C_s \u00b7 \u2016f\u2016_S \u00b7 D*_N\n<\/code><\/pre>\n<p>wobei C_s eine Konstante ist, die nur von der Dimension abh\u00e4ngt und \u2016F\u2016_S die Sobolev-Norm ist. Diese Bindung erkl\u00e4rt, warum QMC-Methoden f\u00fcr reibungslose Funktionen gl\u00e4nzen &#8211; der Fehler zerf\u00e4llt viel schneller als die Monte-Carlo-Rate, wenn der Integrand gemischte Derivate begrenzt hat.<\/p>\n<h3>Der Fluch der Dimensionalit\u00e4t<\/h3>\n<p>Alle diese Methoden stehen dem Fluch der Dimensionalit\u00e4t gegen\u00fcber. F\u00fcr LHS-Verbundverbindungen setzt sich die Schichtung \u00fcber Dimensionen hinweg multiplikativ aus. F\u00fcr Sobol und Halton beginnt die Struktur, die in 1\u20132 Dimensionen eine geringe Diskrepanz gibt, mit zunehmender Dimension zusammenzubrechen &#8211; Halton-Sequenzen entwickeln insbesondere periodische Aliasing-Muster, die die Abdeckung verzerren. Das Verst\u00e4ndnis, wo die St\u00e4rken und Schw\u00e4chen jeder Methode liegen, ist f\u00fcr die Auswahl des richtigen Samplers von entscheidender Bedeutung.<\/p>\n<h2>Latin Hypercube Stamples: Theorie und Implementierung<\/h2>\n<p>Die lateinische Hyperw\u00fcrfel-Stichprobe wurde von McKay et al. (1989) als Kompromiss zwischen reiner Schichtung und Einfachheit der Zufallsstichprobe.<\/p>\n<h3>Wie LHS funktioniert<\/h3>\n<p>F\u00fcr ein d-dimensionales Problem mit n Proben:<\/p>\n<ol>\n<li>Teilen Sie jede Randdimension in n Intervall-Bins.<\/li>\n<li>F\u00fcr jede Dimension k permutieren Sie den ganzzahligen Vektor [1, 2, &#8230;, N] zuf\u00e4llig, um zu bestimmen, welcher Beh\u00e4lter jede Probe belegt.<\/li>\n<li>Zeichnen Sie n einheitliche Proben aus jeder Dimension, die in den zugewiesenen Beh\u00e4ltern geschichtet sind.<\/li>\n<li>Die Probenindizes werden unabh\u00e4ngig voneinander \u00fcber alle Dimensionen hinweg permutiert, wodurch eine D \u00d7 N-Matrix erzeugt wird.<\/li>\n<\/ol>\n<p>Die entscheidende Eigenschaft ist in jeder Dimension <strong> eine Stichprobe pro Bin <\/strong>. Dies garantiert, dass das Randhistogramm f\u00fcr jede Dimension perfekt geschichtet ist.<\/p>\n<h3>Konvergenzeigenschaften<\/h3>\n<p>LHS hat einen Varianzreduzierungsfaktor im Vergleich zu Plain Monte Carlo. Unter milden Regelm\u00e4\u00dfigkeitsbedingungen:<\/p>\n<pre><code>Var_LHS(\u0233) = Var_MC(\u0233) \/ N + O(N\u207b\u00b2)\n<\/code><\/pre>\n<p>Dies bedeutet, dass LHS im Standardfehler ungef\u00e4hr mit der gleichen O (n\u207b\u00b9\u141f\u00b2) -Rate konvergiert, jedoch mit einer signifikant niedrigeren Konstante &#8211; ungef\u00e4hr ein Faktor von n bei der Varianzreduzierung.<\/p>\n<h3>Python-Implementierung<\/h3>\n<pre><code class=\"language-python\">import numpy as np\nfrom scipy.stats import qmc\n\ndef lhs_sample(N, d, bounds=None):\n    \"\"\"\n    Latin Hypercube Sampling using scipy.\n    \n    Parameters:\n        N: number of samples\n        d: number of dimensions\n        bounds: list of (low, high) tuples for each dimension\n    \n    Returns:\n        N x d array of LHS samples\n    \"\"\"\n    if bounds is None:\n        bounds = [(0, 1)] * d\n    \n    # Create the LHS engine\n    engine = qmc.Lhs(d, scramble=False)\n    \n    # Generate samples in [0,1]\n    samples = engine.random(N)\n    \n    # Apply bounds\n    if bounds != [(0, 1)] * d:\n        # Transform to specified bounds\n        for i, (low, high) in enumerate(bounds):\n            samples[:, i] = low + (high - low) * samples[:, i]\n    \n    return samples\n\n# Example: 3D LHS with 1000 samples\nnp.random.seed(42)\nd = 3\nN = 1000\nlhs_samples = lhs_sample(N, d)\nprint(f\"LHS shape: {lhs_samples.shape}\")\nprint(f\"Marginal means (should be ~0.5): {lhs_samples.mean(axis=0)[:3]}\")\n<\/code><\/pre>\n<p>Die obige Option <code>scramble=False<\/code> dient der Veranschaulichung. In der Produktion sollten Sie <code>scramble=True<\/code> verwenden, um die von deterministische LHS eingef\u00fchrte k\u00fcnstliche Korrelationsstruktur zu durchbrechen.<\/p>\n<h2>Quasi-Monte Carlo: SOBOL-Sequenzen und R\u00e4tsel<\/h2>\n<p>Sobol-Sequenzen wurden 1967 von I. M. Sobol als erste praktische Sequenz mit geringer Diskrepanz eingef\u00fchrt. Sie verwenden ein gerichtetes Diagramm, um Ziffern in Base 2 zu erzeugen und eine Sequenz mit nachweislich geringer Sternabweichung zu erzeugen.<\/p>\n<h3>Warum Scrambling unerl\u00e4sslich ist<\/h3>\n<p>Eine nicht verschl\u00fcsselte SOBOL-Sequenz hat eine Struktur, die alle 2 ^ m-Proben wiederholt. F\u00fcr periodische oder diskontinuierliche Integranden &#8211; die in Simulationsabl\u00e4ufen sehr h\u00e4ufig sind &#8211; erzeugt dies <strong>Systematic Bias<\/strong>. Die Sequenz stimmt mit den Diskontinuit\u00e4ten \u00fcberein, wodurch der Integrator wichtige Merkmale verfehlt.<\/p>\n<p>Durch das Scrambling wird eine zuf\u00e4llige Permutation auf die bin\u00e4ren Darstellungen der Sequenzindizes angewendet, wodurch diese Periodizit\u00e4t unterbrochen wird, w\u00e4hrend die Eigenschaft mit geringer Diskrepanz beibehalten wird. Das <strong> randomisierte Quasi-Monte-Carlo (RQMC) <\/strong> -Framework beweist, dass verw\u00fcrfelte SOBOL-Sequenzen, wenn sie \u00fcber das R\u00fchren gemittelt werden, unvoreingenommene Sch\u00e4tzer mit konvergierenden Konfidenzintervallen erzeugen.<\/p>\n<h3>Beispielanzahl: Zweierpotenzen<\/h3>\n<p>SOBOL-Sequenzen wurden so konzipiert, dass <strong> genau 2 ^ m Punkte eine optimale Diskrepanz <\/strong> ergeben. Wenn Sie N = 2 ^ 15 = 32.768 Punkte nehmen, ergibt sich eine dramatisch bessere Abdeckung als N = 30.000. Wenn Sie genau 30.000 Proben ben\u00f6tigen, haben Sie entweder:<\/p>\n<ol>\n<li>Generieren Sie 32.768 SoBol-Punkte und verwenden Sie die ersten 30.000 (Sie verlieren Optimalit\u00e4t)<\/li>\n<li>Verwenden Sie f\u00fcr diese bestimmte Anzahl einen anderen Sampler<\/li>\n<li>Verwenden Sie Halton-Sequenzen, die beliebige n unterst\u00fctzen<\/li>\n<\/ol>\n<h3>Sobol in der Praxis durcheinander<\/h3>\n<pre><code class=\"language-python\">import numpy as np\nfrom scipy.stats import qmc\n\ndef scrambled_sobol(N, d, seed=None):\n    \"\"\"\n    Generate scrambled Sobol QMC samples.\n    \n    Parameters:\n        N: number of samples (ideally a power of 2)\n        d: number of dimensions\n        seed: random seed for scrambling\n    \n    Returns:\n        N x d array of QMC samples\n    \"\"\"\n    engine = qmc.QualifiedSobol(d, scramble=True, seed=seed)\n    return engine.random(N)\n\n# Example: 2^15 Sobol samples in 10 dimensions\nnp.random.seed(42)\nd = 10\nN = 2**15  # 32,768 - optimal for Sobol\nsobol_samples = scrambled_sobol(N, d, seed=12345)\nprint(f\"Scrambled Sobol shape: {sobol_samples.shape}\")\n<\/code><\/pre>\n<h2>Halton vs Sobol: Praktische Kompromisse<\/h2>\n<p>Die beiden h\u00e4ufigsten HLT-Familien sind Halton und Sobol. Beide sind deterministisch, haben beide eine geringe Diskrepanz, verhalten sich jedoch in der Praxis unterschiedlich.<\/p>\n<h3>Halton-Sequenzen<\/h3>\n<p>Halton-Sequenzen verwenden aufeinanderfolgende Primzahlen als Grundlagen: 2, 3, 5, 7, 11, &#8230; Dies stellt die mathematische Unabh\u00e4ngigkeit \u00fcber die Dimensionen sicher. Die Vorteile sind:<\/p>\n<ul>\n<li><strong>Beliebige Stichprobenz\u00e4hlungen<\/strong> \u2013 Keine Notwendigkeit von Zweierpotenzen<\/li>\n<li><strong>Einfach zu generieren<\/strong> \u2013 Keine primitiven Polynomtabellen erforderlich<\/li>\n<li><strong>Schnell zu berechnen<\/strong> \u2014 Einfache Ziffernextraktion<\/li>\n<\/ul>\n<p>Die Nachteile sind gut dokumentiert:<\/p>\n<ul>\n<li><strong>Strukturiertes Aliasing<\/strong> \u2013 H\u00f6herdimensionale Projektionen weisen periodische Muster auf<\/li>\n<li><strong>Schlechte theoretische Grenzen<\/strong> \u2013 Diskrepanz w\u00e4chst schneller als Sobol<\/li>\n<li><strong>Keine Scrambling-Theorie<\/strong> \u2013 Scrambling ist f\u00fcr willk\u00fcrliche Grundlagen schwerer zu definieren<\/li>\n<\/ul>\n<h3>SOBOL-Sequenzen<\/h3>\n<p>SOBOL-Sequenzen verwenden ein festes primitives Polynom \u00fcber gf(2)<\/p>\n<ul>\n<li><strong>Bessere theoretische Grenzen<\/strong> \u2013 nachweislich niedrigste Diskrepanz f\u00fcr Base-2<\/li>\n<li><strong>Rich-Scrambling-Theorie<\/strong> \u2014 Owen Scrambling ist gut definiert und effektiv<\/li>\n<li><strong>Optimal bei Zweierpotenzen<\/strong> \u2014 Exakte Optimalit\u00e4tsgarantien<\/li>\n<\/ul>\n<p>Die Nachteile:<\/p>\n<ul>\n<li><strong>Erfordert primitive Polynomtabellen<\/strong> \u2013 Muss vorbearbeitet oder gespeichert werden<\/li>\n<li><strong>Nicht flexibel bei der Anzahl der Proben<\/strong> \u2014 ausgelegt f\u00fcr n = 2 ^ m<\/li>\n<li><strong>Rechenweise schwerer<\/strong> \u2013 Erfordert Tabellen-Lookups<\/li>\n<\/ul>\n<h3>Das Urteil<\/h3>\n<p>F\u00fcr die meisten Simulationsanwendungen mit 5\u201320 Dimensionen \u00fcbertrifft <strong>SOBOL mit Scrambling Halton<\/strong>. Der Grund daf\u00fcr ist, dass das Scrambling die Aliasing-Muster bricht, die Halton in h\u00f6heren Dimensionen entwickelt. Wenn Sie willk\u00fcrliche Stichprobenz\u00e4hlungen ben\u00f6tigen und kein Scrambling verwenden k\u00f6nnen, ist Halton m\u00f6glicherweise die bessere praktische Wahl.<\/p>\n<h2>Vergleichshandbuch: MC vs LHS vs Sobol vs Halton<\/h2>\n<table>\n<thead>\n<tr>\n<th>Eigentum<\/th>\n<th>Monte Carlo<\/th>\n<th>Lateinischer Hyperkuchen<\/th>\n<th>SOBOL (verschl\u00fcsselt)<\/th>\n<th>Halton<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Konvergenzrate<\/td>\n<td>O (n\u207b\u00b9\u141f\u00b2) Standardfehler<\/td>\n<td>O(n\u207b\u00b9\u141f\u00b2) mit reduzierter Varianz<\/td>\n<td>O(n\u207b\u00b9) f\u00fcr glatte Funktionen<\/td>\n<td>O(n\u207b\u00b9) f\u00fcr glatte Funktionen<\/td>\n<\/tr>\n<tr>\n<td>Varianzreduzierung<\/td>\n<td>Keiner<\/td>\n<td>Faktor ~ n im Vergleich zu MC<\/td>\n<td>10\u2013100 \u00d7 Reduktion gegen\u00fcber MC<\/td>\n<td>10\u201350 \u00d7 Reduktion vs MC<\/td>\n<\/tr>\n<tr>\n<td>Beispielflexibilit\u00e4t<\/td>\n<td>Beliebig n<\/td>\n<td>Beliebig n<\/td>\n<td>Optimal bei n = 2 ^ m<\/td>\n<td>Beliebig n<\/td>\n<\/tr>\n<tr>\n<td>Dimensionsskalierung<\/td>\n<td>verschlechtert sich linear<\/td>\n<td>verschlechtert sich multiplikativ<\/td>\n<td>verschlechtert sich als O (s)<\/td>\n<td>Abbau als O(S) mit Aliasing<\/td>\n<\/tr>\n<tr>\n<td>Scrambling erforderlich<\/td>\n<td>Nein<\/td>\n<td>Manchmal (verschl\u00fcsselter LHS)<\/td>\n<td>Ja (f\u00fcr die Produktion)<\/td>\n<td>Fakultativ<\/td>\n<\/tr>\n<tr>\n<td>Komplexit\u00e4t der Implementierung<\/td>\n<td>Trivial<\/td>\n<td>Niedrig<\/td>\n<td>Mittel (Tische + Scrambling)<\/td>\n<td>Niedrig<\/td>\n<\/tr>\n<tr>\n<td>Periodische Integranden<\/td>\n<td>voreingenommen (strukturell)<\/td>\n<td>voreingenommen (strukturell)<\/td>\n<td>unvoreingenommen (wenn verschl\u00fcsselt)<\/td>\n<td>potenziell voreingenommen<\/td>\n<\/tr>\n<tr>\n<td>Empfohlen f\u00fcr<\/td>\n<td>Grundlinie, sehr unregelm\u00e4\u00dfig<\/td>\n<td>Moderate Abmessungen (\u2264 15)<\/td>\n<td>Glatte Integranden, Produktion<\/td>\n<td>Willk\u00fcr N, schnelles Prototyping<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Python-Implementierungshandbuch<\/h2>\n<p>Hier ist ein vollst\u00e4ndiges Arbeitsbeispiel, das alle vier Sampler mit einer einfachen Testfunktion vergleicht.<\/p>\n<pre><code class=\"language-python\">import numpy as np\nfrom scipy.stats import qmc\n\ndef test_function(x):\n    \"\"\"\n    Test integrand: sum of cosines along with a linear drift.\n    True integral on [0,1]^d = sum of (sin(1)\/1) for cos + 0.5*d for linear.\n    \"\"\"\n    d = x.shape[-1]\n    true_integral = d * np.sin(1) + 0.5 * d\n    return np.cos(x) + x.mean(axis=-1, keepdims=True)\n\ndef estimate_integral(samples, func, true_value):\n    \"\"\"Estimate integral via QMC \/ MC averaging.\"\"\"\n    f_values = func(samples)\n    estimate = f_values.mean(axis=-1).mean()\n    std_error = f_values.std(ddof=1) \/ np.sqrt(len(f_values))\n    return estimate, std_error\n\n# Setup\nd = 5  # dimension\nnp.random.seed(42)\n\n# 1. Monte Carlo\nN_mc = 2**15\nmc_samples = np.random.uniform(0, 1, (N_mc, d))\nmc_est, mc_se = estimate_integral(mc_samples, test_function, None)\n\n# 2. Latin Hypercube (scrambled)\nlhs_engine = qmc.Lhs(d, scramble=True)\nlhs_samples = lhs_engine.random(N_mc)\nlhs_est, lhs_se = estimate_integral(lhs_samples, test_function, None)\n\n# 3. Scrambled Sobol QMC\nsobol_engine = qmc.Sobol(d, scramble=True)\nsobol_samples = sobol_engine.random(N_mc)\nsobol_est, sobol_se = estimate_integral(sobol_samples, test_function, None)\n\n# 4. Halton\nhalton_engine = qmc.Halton(d, scramble=False)\nhalton_samples = halton_engine.random(N_mc)\nhalton_est, halton_se = estimate_integral(halton_samples, test_function, None)\n\nprint(f\"MC:      {mc_est:.6f} \u00b1 {mc_se:.6f}\")\nprint(f\"LHS:     {lhs_est:.6f} \u00b1 {lhs_se:.6f}\")\nprint(f\"Sobol:   {sobol_est:.6f} \u00b1 {sobol_se:.6f}\")\nprint(f\"Halton:  {halton_est:.6f} \u00b1 {halton_se:.6f}\")\n<\/code><\/pre>\n<p>Die Ausgabe zeigt konsistent, dass QMC-Methoden (SOBOL und LHS) Sch\u00e4tzungen mit einer wesentlich geringeren Varianz als Standard-Monte-Carlo selbst bei m\u00e4\u00dfigen Probenzahlen erzeugen.<\/p>\n<h3>Grenzen f\u00fcr physikalische Parameter verwenden<\/h3>\n<p>In realen Simulations-Workflows haben Ihre Parameter physikalische Grenzen. Das <code>qmc<\/code>-Modul \u00fcbernimmt dies \u00fcber den Parameter <code>expand<\/code>:<\/p>\n<pre><code class=\"language-python\">from scipy.stats import qmc\nimport numpy as np\n\n# Physical bounds for a 3D problem\nbounds = [\n    (300, 400),   # Temperature in Kelvin\n    (1e-6, 1e-4), # Thermal conductivity, W\/m\u00b7K\n    (0.1, 0.9)    # Porosity, dimensionless\n]\n\nd = len(bounds)\nengine = qmc.Sobol(d, scramble=True)\n\n# Generate samples in [0,1], then expand to bounds\nsamples = engine.random(2**12)\nsamples = qmc.expand(samples, [b for b in bounds])\n\nprint(f\"Sampled bounds check:\")\nfor i, (low, high) in enumerate(bounds):\n    print(f\"  Dim {i}: min={samples[:, i].min():.6f}, max={samples[:, i].max():.6f}\")\n<\/code><\/pre>\n<h2>H\u00e4ufige Fallstricke und wie man sie vermeidet<\/h2>\n<h3>Fallstricke 1: Erste Sobol-Punkte entfernen<\/h3>\n<p>Die ersten SOBOL-Punkte (Indizes 0 bis ~ 10) haben eine schlechte Abdeckung. Wenn Sie sie ohne Ber\u00fccksichtigung der Indexverschiebung fallen lassen, erstellen Sie ein voreingenommenes Beispielset.<\/p>\n<p><strong>Fix:<\/strong> Starten Sie die SOBOL-Probenahme immer bei Index 0 und lassen Sie die vollst\u00e4ndige Sequenz auf nat\u00fcrliche Weise f\u00fcllen. Wenn Sie eine Teilstichprobe ben\u00f6tigen, verwenden Sie die Mitte oder das Ende der Sequenz, nicht eine willk\u00fcrliche K\u00fcrzung.<\/p>\n<h3>Falle 2: Nicht-M\u00f6glichkeiten von 2 Sobol<\/h3>\n<p>Wenn Sie n = 50.000 SOBOL-Punkte nehmen, wird die optimale Diskrepanzeigenschaft weggeworfen. Die Sequenz wurde so konzipiert, dass n = 2 ^ m genaue geringe Diskrepanz ergibt.<\/p>\n<p><strong>Fix:<\/strong> Verwenden Sie entweder n = 2 ^ m und verk\u00fcrzen (akzeptabel, wenn Sie nur eine Teilmenge ben\u00f6tigen) oder wechseln Sie f\u00fcr willk\u00fcrliche Z\u00e4hlungen zu LHS oder Halton.<\/p>\n<h3>Fallfall 3: Unverschl\u00fcsselter Sobol in der Produktion<\/h3>\n<p>Nicht verschl\u00fcsselte Sobol-Sequenzen haben periodische Strukturen. F\u00fcr periodische Funktionen (sehr h\u00e4ufig bei der Ausbreitung von Unsicherheiten) entsteht eine systematische Verzerrung, die mit mehr Stichproben nicht gemittelt wird.<\/p>\n<p><strong>Fix:<\/strong> Verwenden Sie immer <code>scramble=True<\/code>. Der in <code>scipy.stats.qmc<\/code>  verwendete Owen-Scrambling-Algorithmus erzeugt nahezu unvoreingenommene Sch\u00e4tzungen.<\/p>\n<h3>Fallfall 4: Fehlinterpretation von QMC-Konfidenzintervallen<\/h3>\n<p>Im Gegensatz zu MC erzeugt QMC standardm\u00e4\u00dfig keine statistisch g\u00fcltigen Konfidenzintervalle. Sie ben\u00f6tigen RQMC (Randomized QMC) mit mehreren Scrambles, um g\u00fcltige Intervalle zu konstruieren.<\/p>\n<p><strong>Fix:<\/strong> F\u00fchren Sie K-Verschl\u00fcsselung derselben QMC-Sequenz aus und verwenden Sie die Stichprobenvarianz \u00fcber Scrambles, um die Konfidenzintervalle abzusch\u00e4tzen.<\/p>\n<h3>Fallfall 5: Anwenden von LHS auf stark korrelierte Eingaben<\/h3>\n<p>LHS \u00fcbernimmt Dimensionsunabh\u00e4ngigkeit. Wenn Ihre Parameter korreliert sind (z. B. Materialeigenschaften aus einer gemeinsamen Verteilung), ignoriert LHS auf den Marginals die Korrelationsstruktur.<\/p>\n<p><strong>Fix:<\/strong> Verwenden Sie LHS auf Copula-Basis oder transformieren Sie sie in unabh\u00e4ngige Koordinaten, bevor Sie LHS anwenden.<\/p>\n<h2>Was wir empfehlen<\/h2>\n<p>Die Auswahl der richtigen Stichprobenmethode ist kein Einzelproblem. Hier ist unser praktischer Entscheidungsrahmen:<\/p>\n<h3>Wann sollte Latin Hypercube Sampling verwendet werden?<\/h3>\n<ul>\n<li><strong>Sie ben\u00f6tigen willk\u00fcrliche Stichprobenz\u00e4hlungen<\/strong> und w\u00fcnschen sich Vorteile f\u00fcr die Schichtung<\/li>\n<li><strong>Ihre Abmessungen sind \u2264 15<\/strong> und Sie k\u00f6nnen keine Zweierpotenzen garantieren<\/li>\n<li><strong>Sie ben\u00f6tigen eine schnelle, leicht umsetzbare L\u00f6sung<\/strong> \u2014 LHS l\u00e4sst sich einfach von Grund auf codieren<\/li>\n<li><strong>Ihre Simulationsfunktion ist m\u00e4\u00dfig reibungslos<\/strong> \u2013 LHS behandelt Diskontinuit\u00e4ten besser als ungescramble SOBOL<\/li>\n<\/ul>\n<h3>Wann verwenden Sie R\u00fchrei Sobol QMC<\/h3>\n<ul>\n<li><strong>Ihr Integrand ist glatt<\/strong> (unterschiedlich, keine starken Diskontinuit\u00e4ten)<\/li>\n<li><strong>Sie k\u00f6nnen n = 2^m<\/strong> Sample Counts verwenden<\/li>\n<li><strong>Sie ben\u00f6tigen die beste theoretische Konvergenzrate<\/strong> \u2014 O(n\u207b\u00b9) Beats O(n\u207b\u00b9\u141f\u00b2)<\/li>\n<li><strong>Sie f\u00fchren Produktions-UQ-Kampagnen<\/strong> durch, wobei die Anzahl der Proben durch das Compute-Budget begrenzt wird<\/li>\n<\/ul>\n<h3>Wann soll ich halton verwenden?<\/h3>\n<ul>\n<li><strong>Sie ben\u00f6tigen willk\u00fcrliche Stichprobenz\u00e4hlungen<\/strong> und k\u00f6nnen aus irgendeinem Grund LHS nicht verwenden<\/li>\n<li><strong>Ihre Abmessungen sind \u2264 10<\/strong> \u2013 Halton schneidet in niedrigen Abmessungen gut ab<\/li>\n<li><strong>Sie sind Prototyping<\/strong> und ben\u00f6tigen eine schnelle Sequenz ohne Tabellen<\/li>\n<\/ul>\n<h3>Wann verwenden Sie Standard Monte Carlo?<\/h3>\n<ul>\n<li><strong>Ihre Funktion hat starke Diskontinuit\u00e4ten<\/strong> und Sie k\u00f6nnen nicht klettern<\/li>\n<li><strong>Ihre Dimensionen \u00fcberschreiten 25<\/strong> \u2013 Alle LDS-Methoden verschlechtern sich und die Einfachheit von MC gewinnt<\/li>\n<li><strong>Sie ben\u00f6tigen statistisch g\u00fcltige Konfidenzintervalle<\/strong> ohne Overhead<\/li>\n<li><strong>Ihre Funktion ist extrem unregelm\u00e4\u00dfig<\/strong> \u2013 SoBol\/LHS-Struktur kann zu Verzerrung f\u00fchren<\/li>\n<\/ul>\n<h3>eine praktische Faustregel<\/h3>\n<p>F\u00fcr die meisten wissenschaftlichen Simulationsworkflows in 3\u201320 Dimensionen mit glatten Vorw\u00e4rtsmodellen ist <strong>Scrambled Sobol QMC mit n = 2 ^ 12 bis 2 ^ 15 Proben <\/strong> der Sweet Spot. Es gibt Ihnen eine 10-100-fache Varianzreduzierung gegen\u00fcber dem Standard-Monte-Carlo bei einer Stichprobenanzahl, die in Stunden anstelle von Tagen auf einem einzelnen Knoten abgeschlossen wird.<\/p>\n<h2>Zusammenfassung und n\u00e4chste Schritte<\/h2>\n<p>Bei Monte-Carlo-Methoden f\u00fcr wissenschaftliche Simulationen geht es nicht nur um das Zeichnen von Zufallszahlen. Die Wahl der Stichprobenstrategie &#8211; lateinischer Hypercube, Sobol-Sequenzen oder Halton &#8211; bestimmt, ob Ihre UQ-Kampagne effizient oder verschwenderisch ist.<\/p>\n<p>Die wichtigsten Erkenntnisse sind:<\/p>\n<ul>\n<li><strong>Diskrepanz ist wichtig<\/strong>: Sequenzen mit geringer Diskrepanz decken den Parameterraum weitaus gleichm\u00e4\u00dfiger ab als zuf\u00e4llige Punkte<\/li>\n<li><strong>Verschl\u00fcsselung ist unerl\u00e4sslich<\/strong> f\u00fcr die Produktion Sobol, um systematische Verzerrungen zu vermeiden<\/li>\n<li><strong>Potenzen von zwei<\/strong> sind optimal f\u00fcr SOBOL \u2013 Entwerfen Sie Ihr Beispielbudget entsprechend<\/li>\n<li><strong>QMC-Konvergenzraten<\/strong> von O(n\u207b\u00b9) f\u00fcr reibungslose Funktionen machen es zur Standardauswahl f\u00fcr die meisten Simulationsworkflows<\/li>\n<\/ul>\n<p>Unsere <a href=\"https:\/\/matforge.org\/monte-carlo-methods-for-scientific-simulations\/\" target=\"_blank\" rel=\"nofollow noopener\">Monte Carlo Methoden f\u00fcr wissenschaftliche Simulations <\/a> Guide bietet eine umfassendere Einf\u00fchrung in die Monte-Carlo-Ans\u00e4tze. Dieser Artikel vergr\u00f6\u00dfert die Methoden mit geringer Diskrepanz, die Ihnen die h\u00f6chste Effizienz pro Probe bieten.<\/p>\n<p>Integrieren Sie f\u00fcr die praktische Bereitstellung die oben genannten QMC-Codemuster in Ihre Simulationskampagnenskripte. Beginnen Sie mit n = 2 ^ 12, bewerten Sie die Konvergenz durch \u00dcberwachen der Sch\u00e4tzvarianz und skalieren Sie bis zu 2 ^ 15, wenn Ihr Budget dies zul\u00e4sst. Die Ergebnisse werden f\u00fcr sich sprechen.<\/p>\n<h2>Verwandte Anleitungen<\/h2>\n<ul>\n<li><a href=\"https:\/\/matforge.org\/uncertainty-quantification-sensitivity-analysis-scientific-simulation\/\" target=\"_blank\" rel=\"nofollow noopener\">Unsicherheitsquantifizierung und Sensitivit\u00e4tsanalyse in der wissenschaftlichen Simulation<\/a> \u2014 breiterer UQ-Kontext einschlie\u00dflich Sobol-Indizes und Varianz-basierte Sensitivit\u00e4t<\/li>\n<li><a href=\"https:\/\/matforge.org\/monte-carlo-methods-for-scientific-simulations\/\" target=\"_blank\" rel=\"nofollow noopener\">Monte Carlo Methoden f\u00fcr wissenschaftliche Simulationen: a Python Guide <\/a> &#8211; Breitere Abdeckung von Monte Carlo, einschlie\u00dflich Wichtigkeitsproben und adaptiver Methoden<\/li>\n<li><a href=\"https:\/\/matforge.org\/verification-vs-validation-in-scientific-simulations-a-practical-guide\/\" target=\"_blank\" rel=\"nofollow noopener\">Verifikation vs Validierung in wissenschaftlichen Simulationen: Ein praktischer Leitfaden <\/a> &#8211; So \u00fcberpr\u00fcfen Sie, ob Ihre UQ-Ergebnisse numerisch korrekt sind<\/li>\n<li><a href=\"https:\/\/matforge.org\/reproducible-parameter-sweeps-designing-simulation-campaigns-for-publication\/\" target=\"_blank\" rel=\"nofollow noopener\">Reproduzierbare Parameter-Sweeps: Design von Simulationskampagnen f\u00fcr die Ver\u00f6ffentlichung<\/a> \u2014 Best Practices f\u00fcr Dokumentation und Reproduzierbarkeit f\u00fcr Stichprobenkampagnen<\/li>\n<\/ul>\n<h2>Referenzen<\/h2>\n<ol>\n<li>Kucherenko, M. et al. &#8222;Verwendung von lateinischen Hypercube- und Sobol-Sequenzen f\u00fcr die Quantifizierung der Unsicherheit.&#8220; arxiv:1505.02350, 2015. <a href=\"https:\/\/arxiv.org\/abs\/1505.02350\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/arxiv.org\/abs\/1505.02350<\/a><\/li>\n<li>Chrisman, E. &#8222;PI-Tagesvergleich: Monte Carlo gegen Latin Hypercube gegen Sobol Stichproben.&#8220; Analytica, 2022. <a href=\"https:\/\/analytica.com\/blog\/pi-day-comparison-monte-carlo-vs-latin-hypercube-vs-sobol-sampling\/\" target=\"_blank\" rel=\"nofollow noopener\"> https:\/\/analytica.com\/blog\/pi-day-comparison-monte-carlo-vs-latin-hypercube-vs-sobol-sampling\/<\/a><\/li>\n<li>scipy. &#8222;Quasi-Monte Carlo-Stichprobenreferenz.&#8220; <a href=\"https:\/\/docs.scipy.org\/doc\/scipy\/reference\/stats.qmc.html\" target=\"_blank\" rel=\"nofollow noopener\"> https:\/\/docs.scipy.org\/doc\/scipy\/reference\/stats.qmc.html<\/a><\/li>\n<li>scipy. &#8222;Quasi-Monte Carlo Tutorial.&#8220; <a href=\"https:\/\/scipy.github.io\/devdocs\/tutorial\/stats\/quasi_monte_carlo.html\" target=\"_blank\" rel=\"nofollow noopener\"> https:\/\/scipy.github.io\/devdocs\/tutorial\/stats\/quasi_monte_carlo.html<\/a><\/li>\n<li>qmcSoftware. &#8222;QMCSoftware-Dokumentation.&#8220; <a href=\"https:\/\/qmcsoftware.github.io\/QMCSoftware\/\" target=\"_blank\" rel=\"nofollow noopener\"> https:\/\/qmcsoftware.github.io\/qmcsoftware\/<\/a><\/li>\n<li>Helmholtz-UQ-W\u00f6rterbuch. &#8222;Quasi-Monte Carlo-Methoden.&#8220; <a href=\"https:\/\/dictionary.helmholtz-uq.de\/content\/quasi_montecarlo_methods.html\" target=\"_blank\" rel=\"nofollow noopener\"> https:\/\/dictionary.helmholtz-uq.de\/content\/quasi_montecarlo_methods.html <\/a><\/li>\n<li>NDCBE. &#8222;Sampling-basiertes Unsicherheitsquantifizierungs-Kurs-Notebook.&#8220; <a href=\"https:\/\/ndcbe.github.io\/cbe67701-uncertainty-quantification\/07.01-Sampling-Based-Uncertainty-Quantification.html\" target=\"_blank\" rel=\"nofollow noopener\"> https:\/\/ndcbe.github.io\/cbe67701-uncertainty-quantification\/07.01-sampling-based-uncertainty-quantification.html <\/a><\/li>\n<\/ol>\n","protected":false,"raw":"<p>Wenn die Ausgabe Ihrer Simulation von unsicheren Eingaben gesteuert wird, bestimmt die Art und Weise, wie Sie Samples aus diesen Eingaben ziehen, ob Ihre Unsicherheitsquantifizierung effizient oder verschwenderisch ist. Standard Monte Carlo verwendet I.I.D. Zuf\u00e4llige Ziehungen, die die Konvergenz garantieren, aber schmerzlich langsam. Stichprobenmethoden mit geringer Diskrepanz \u2014 Latin Hypercube Stichproben (LHS), SOBOL-Sequenzen und die breitere Familie der Quasi-Monte-Carlo (QMC) \u2013 Restrukturieren Sie den Probenahmeprozess so, dass Punkte den Parameterraum gleichm\u00e4\u00dfiger abdecken, wodurch die Varianz der Sch\u00e4tzer.<\/p>\n<p>In diesem Artikel gehen wir \u00fcber die kurze Erw\u00e4hnung in unserem <a href=\"https:\/\/matforge.org\/monte-carlo-methods-for-scientific-simulations\/\" target=\"_blank\" rel=\"nofollow noopener\"> Monte Carlo for Scientific Simulations Guide <\/a> hinaus. Dies ist ein spezieller Tiefpunkt in der Theorie, der praktischen Implementierung und den Entscheidungsrahmen f\u00fcr LHS, SOBOL-Sequenzen und QMC-Methoden mit funktionierendem Python-Code und einem Vergleich, wann jeder Ansatz gewinnt.<\/p>\n<h2>Schl\u00fcssel zum Mitnehmen<\/h2>\n<ul>\n<li><strong>LHS schichtet jede Dimension unabh\u00e4ngig voneinander<\/strong> und garantiert, dass jeder marginale Histogrammbeh\u00e4lter genau einmal gef\u00fcllt wird. Es liefert schnellere Konvergenz als Plain Monte Carlo zu niedrigen Kosten.<\/li>\n<li><strong>SOBOL-Sequenzen sind Sequenzen mit geringer Diskrepanz <\/strong>, die eine nahezu einheitliche Abdeckung in jeder Dimension erreichen, aber f\u00fcr den praktischen Gebrauch verschl\u00fcsselt werden m\u00fcssen und am besten mit zwei Probenpotenzen arbeiten.<\/li>\n<li><strong>QMC-Konvergenz kann O(n\u207b\u00b9)<\/strong> f\u00fcr glatte Integranden erreichen, gegen\u00fcber O(n\u207b\u00b9\u141f\u00b2) f\u00fcr Standard Monte Carlo \u2013 ein exponentieller Abfall der erforderlichen Probengr\u00f6\u00dfe f\u00fcr die gleiche Pr\u00e4zision.<\/li>\n<li><strong>Halton-Sequenzen erlauben beliebige Probenz\u00e4hlungen<\/strong> und sind leicht zu generieren, aber sie weisen strukturiertes Aliasing in h\u00f6heren Dimensionen auf. SoBol \u00fcbertrifft Halton, wenn Sie durch Scrambling Rotationsinvarianz ben\u00f6tigen.<\/li>\n<li><strong>Scrambling ist f\u00fcr die Produktion SOBOL nicht optional.<\/strong> - Unverschl\u00fcsselte Sequenzen induzieren systematische Verzerrungen bei periodischen oder diskontinuierlichen Integranden.<\/li>\n<\/ul>\n<h2>Das Stichprobenproblem: Warum zuf\u00e4llig nicht immer am besten ist<\/h2>\n<p>Die Kernherausforderung bei der Quantifizierung der Stichprobenbasierte Unsicherheit ist die <strong>Diskrepanz <\/strong> des Stichprobensatzes. Die Diskrepanz misst, wie gleichm\u00e4\u00dfig Punkte \u00fcber den Parameterraum verteilt sind. In der Grenze der unendlichen Stichproben geht jede vern\u00fcnftige Diskrepanz auf Null, aber die Geschwindigkeit, mit der dies geschieht, ist enorm wichtig.<\/p>\n<h3>Klassischer Monte Carlo<\/h3>\n<p>Standard Monte Carlo zeichnet Proben unabh\u00e4ngig von der Zielverteilung. Durch den zentralen Grenzwertsatz konvergiert der Sch\u00e4tzer mit einer Varianz, die proportional zu 1 \/ n ist. Das hei\u00dft, um den Standardfehler zu halbieren, m\u00fcssen Sie die Anzahl der Proben <strong>4ple<\/strong>. F\u00fcr eine rechnerisch teure Simulation - ein 3D-Thermoproblem, ein mehrphasiger Flussl\u00f6ser oder ein Material-Science-Lauf f\u00fcr die molekulare Dynamik - kann sich die Probenanzahl vervierfachen.<\/p>\n<h3>Die Diskrepanzperspektive<\/h3>\n<p>Sequenzen mit geringer Diskrepanz (LDs) werden genau konstruiert, um die Sternabweichung d * _n des Probensatzes zu minimieren. Die Definition lautet:<\/p>\n<pre><code>D*_N = sup_{A \u2286 [0,1]^s} |(1\/N) \u03a3 1_A(x_i) \u2212 \u03bb(A)|\n<\/code><\/pre>\n<p>wobei \u03bb(a) das Lebesgue-Ma\u00df (Volumen) von A ist und das Supremum \u00fcber alle achsengerichteten Unterboxen genommen wird. Im Klartext: LDS-Sequenzen minimieren die maximale Abweichung zwischen empirischer und wahrer Wahrscheinlichkeit \u00fcber jeden rechteckigen Bereich.<\/p>\n<p>Die <strong>Sobelev-Dick-Tractman-Ungleichung<\/strong> (das Koks-Meyers-Theorem f\u00fcr LDS) besagt, dass f\u00fcr eine Funktion f mit gemischten partiellen Ableitungen bis zur Ordnung S der Integrationsfehler einer LDS-Regel begrenzt wird durch:<\/p>\n<pre><code>|\u222b f \u2212 (1\/N) \u03a3 f(x_i)| \u2264 C_s \u00b7 \u2016f\u2016_S \u00b7 D*_N\n<\/code><\/pre>\n<p>wobei C_s eine Konstante ist, die nur von der Dimension abh\u00e4ngt und \u2016F\u2016_S die Sobolev-Norm ist. Diese Bindung erkl\u00e4rt, warum QMC-Methoden f\u00fcr reibungslose Funktionen gl\u00e4nzen - der Fehler zerf\u00e4llt viel schneller als die Monte-Carlo-Rate, wenn der Integrand gemischte Derivate begrenzt hat.<\/p>\n<h3>Der Fluch der Dimensionalit\u00e4t<\/h3>\n<p>Alle diese Methoden stehen dem Fluch der Dimensionalit\u00e4t gegen\u00fcber. F\u00fcr LHS-Verbundverbindungen setzt sich die Schichtung \u00fcber Dimensionen hinweg multiplikativ aus. F\u00fcr Sobol und Halton beginnt die Struktur, die in 1\u20132 Dimensionen eine geringe Diskrepanz gibt, mit zunehmender Dimension zusammenzubrechen - Halton-Sequenzen entwickeln insbesondere periodische Aliasing-Muster, die die Abdeckung verzerren. Das Verst\u00e4ndnis, wo die St\u00e4rken und Schw\u00e4chen jeder Methode liegen, ist f\u00fcr die Auswahl des richtigen Samplers von entscheidender Bedeutung.<\/p>\n<h2>Latin Hypercube Stamples: Theorie und Implementierung<\/h2>\n<p>Die lateinische Hyperw\u00fcrfel-Stichprobe wurde von McKay et al. (1989) als Kompromiss zwischen reiner Schichtung und Einfachheit der Zufallsstichprobe.<\/p>\n<h3>Wie LHS funktioniert<\/h3>\n<p>F\u00fcr ein d-dimensionales Problem mit n Proben:<\/p>\n<ol>\n<li>Teilen Sie jede Randdimension in n Intervall-Bins.<\/li>\n<li>F\u00fcr jede Dimension k permutieren Sie den ganzzahligen Vektor [1, 2, ..., N] zuf\u00e4llig, um zu bestimmen, welcher Beh\u00e4lter jede Probe belegt.<\/li>\n<li>Zeichnen Sie n einheitliche Proben aus jeder Dimension, die in den zugewiesenen Beh\u00e4ltern geschichtet sind.<\/li>\n<li>Die Probenindizes werden unabh\u00e4ngig voneinander \u00fcber alle Dimensionen hinweg permutiert, wodurch eine D \u00d7 N-Matrix erzeugt wird.<\/li>\n<\/ol>\n<p>Die entscheidende Eigenschaft ist in jeder Dimension <strong> eine Stichprobe pro Bin <\/strong>. Dies garantiert, dass das Randhistogramm f\u00fcr jede Dimension perfekt geschichtet ist.<\/p>\n<h3>Konvergenzeigenschaften<\/h3>\n<p>LHS hat einen Varianzreduzierungsfaktor im Vergleich zu Plain Monte Carlo. Unter milden Regelm\u00e4\u00dfigkeitsbedingungen:<\/p>\n<pre><code>Var_LHS(\u0233) = Var_MC(\u0233) \/ N + O(N\u207b\u00b2)\n<\/code><\/pre>\n<p>Dies bedeutet, dass LHS im Standardfehler ungef\u00e4hr mit der gleichen O (n\u207b\u00b9\u141f\u00b2) -Rate konvergiert, jedoch mit einer signifikant niedrigeren Konstante - ungef\u00e4hr ein Faktor von n bei der Varianzreduzierung.<\/p>\n<h3>Python-Implementierung<\/h3>\n<pre><code class=\"language-python\">import numpy as np\nfrom scipy.stats import qmc\n\ndef lhs_sample(N, d, bounds=None):\n    \"\"\"\n    Latin Hypercube Sampling using scipy.\n    \n    Parameters:\n        N: number of samples\n        d: number of dimensions\n        bounds: list of (low, high) tuples for each dimension\n    \n    Returns:\n        N x d array of LHS samples\n    \"\"\"\n    if bounds is None:\n        bounds = [(0, 1)] * d\n    \n    # Create the LHS engine\n    engine = qmc.Lhs(d, scramble=False)\n    \n    # Generate samples in [0,1]\n    samples = engine.random(N)\n    \n    # Apply bounds\n    if bounds != [(0, 1)] * d:\n        # Transform to specified bounds\n        for i, (low, high) in enumerate(bounds):\n            samples[:, i] = low + (high - low) * samples[:, i]\n    \n    return samples\n\n# Example: 3D LHS with 1000 samples\nnp.random.seed(42)\nd = 3\nN = 1000\nlhs_samples = lhs_sample(N, d)\nprint(f\"LHS shape: {lhs_samples.shape}\")\nprint(f\"Marginal means (should be ~0.5): {lhs_samples.mean(axis=0)[:3]}\")\n<\/code><\/pre>\n<p>Die obige Option <code>scramble=False<\/code> dient der Veranschaulichung. In der Produktion sollten Sie <code>scramble=True<\/code> verwenden, um die von deterministische LHS eingef\u00fchrte k\u00fcnstliche Korrelationsstruktur zu durchbrechen.<\/p>\n<h2>Quasi-Monte Carlo: SOBOL-Sequenzen und R\u00e4tsel<\/h2>\n<p>Sobol-Sequenzen wurden 1967 von I. M. Sobol als erste praktische Sequenz mit geringer Diskrepanz eingef\u00fchrt. Sie verwenden ein gerichtetes Diagramm, um Ziffern in Base 2 zu erzeugen und eine Sequenz mit nachweislich geringer Sternabweichung zu erzeugen.<\/p>\n<h3>Warum Scrambling unerl\u00e4sslich ist<\/h3>\n<p>Eine nicht verschl\u00fcsselte SOBOL-Sequenz hat eine Struktur, die alle 2 ^ m-Proben wiederholt. F\u00fcr periodische oder diskontinuierliche Integranden - die in Simulationsabl\u00e4ufen sehr h\u00e4ufig sind - erzeugt dies <strong>Systematic Bias<\/strong>. Die Sequenz stimmt mit den Diskontinuit\u00e4ten \u00fcberein, wodurch der Integrator wichtige Merkmale verfehlt.<\/p>\n<p>Durch das Scrambling wird eine zuf\u00e4llige Permutation auf die bin\u00e4ren Darstellungen der Sequenzindizes angewendet, wodurch diese Periodizit\u00e4t unterbrochen wird, w\u00e4hrend die Eigenschaft mit geringer Diskrepanz beibehalten wird. Das <strong> randomisierte Quasi-Monte-Carlo (RQMC) <\/strong> -Framework beweist, dass verw\u00fcrfelte SOBOL-Sequenzen, wenn sie \u00fcber das R\u00fchren gemittelt werden, unvoreingenommene Sch\u00e4tzer mit konvergierenden Konfidenzintervallen erzeugen.<\/p>\n<h3>Beispielanzahl: Zweierpotenzen<\/h3>\n<p>SOBOL-Sequenzen wurden so konzipiert, dass <strong> genau 2 ^ m Punkte eine optimale Diskrepanz <\/strong> ergeben. Wenn Sie N = 2 ^ 15 = 32.768 Punkte nehmen, ergibt sich eine dramatisch bessere Abdeckung als N = 30.000. Wenn Sie genau 30.000 Proben ben\u00f6tigen, haben Sie entweder:<\/p>\n<ol>\n<li>Generieren Sie 32.768 SoBol-Punkte und verwenden Sie die ersten 30.000 (Sie verlieren Optimalit\u00e4t)<\/li>\n<li>Verwenden Sie f\u00fcr diese bestimmte Anzahl einen anderen Sampler<\/li>\n<li>Verwenden Sie Halton-Sequenzen, die beliebige n unterst\u00fctzen<\/li>\n<\/ol>\n<h3>Sobol in der Praxis durcheinander<\/h3>\n<pre><code class=\"language-python\">import numpy as np\nfrom scipy.stats import qmc\n\ndef scrambled_sobol(N, d, seed=None):\n    \"\"\"\n    Generate scrambled Sobol QMC samples.\n    \n    Parameters:\n        N: number of samples (ideally a power of 2)\n        d: number of dimensions\n        seed: random seed for scrambling\n    \n    Returns:\n        N x d array of QMC samples\n    \"\"\"\n    engine = qmc.QualifiedSobol(d, scramble=True, seed=seed)\n    return engine.random(N)\n\n# Example: 2^15 Sobol samples in 10 dimensions\nnp.random.seed(42)\nd = 10\nN = 2**15  # 32,768 - optimal for Sobol\nsobol_samples = scrambled_sobol(N, d, seed=12345)\nprint(f\"Scrambled Sobol shape: {sobol_samples.shape}\")\n<\/code><\/pre>\n<h2>Halton vs Sobol: Praktische Kompromisse<\/h2>\n<p>Die beiden h\u00e4ufigsten HLT-Familien sind Halton und Sobol. Beide sind deterministisch, haben beide eine geringe Diskrepanz, verhalten sich jedoch in der Praxis unterschiedlich.<\/p>\n<h3>Halton-Sequenzen<\/h3>\n<p>Halton-Sequenzen verwenden aufeinanderfolgende Primzahlen als Grundlagen: 2, 3, 5, 7, 11, ... Dies stellt die mathematische Unabh\u00e4ngigkeit \u00fcber die Dimensionen sicher. Die Vorteile sind:<\/p>\n<ul>\n<li><strong>Beliebige Stichprobenz\u00e4hlungen<\/strong> \u2013 Keine Notwendigkeit von Zweierpotenzen<\/li>\n<li><strong>Einfach zu generieren<\/strong> \u2013 Keine primitiven Polynomtabellen erforderlich<\/li>\n<li><strong>Schnell zu berechnen<\/strong> \u2014 Einfache Ziffernextraktion<\/li>\n<\/ul>\n<p>Die Nachteile sind gut dokumentiert:<\/p>\n<ul>\n<li><strong>Strukturiertes Aliasing<\/strong> \u2013 H\u00f6herdimensionale Projektionen weisen periodische Muster auf<\/li>\n<li><strong>Schlechte theoretische Grenzen<\/strong> \u2013 Diskrepanz w\u00e4chst schneller als Sobol<\/li>\n<li><strong>Keine Scrambling-Theorie<\/strong> \u2013 Scrambling ist f\u00fcr willk\u00fcrliche Grundlagen schwerer zu definieren<\/li>\n<\/ul>\n<h3>SOBOL-Sequenzen<\/h3>\n<p>SOBOL-Sequenzen verwenden ein festes primitives Polynom \u00fcber gf(2)<\/p>\n<ul>\n<li><strong>Bessere theoretische Grenzen<\/strong> \u2013 nachweislich niedrigste Diskrepanz f\u00fcr Base-2<\/li>\n<li><strong>Rich-Scrambling-Theorie<\/strong> \u2014 Owen Scrambling ist gut definiert und effektiv<\/li>\n<li><strong>Optimal bei Zweierpotenzen<\/strong> \u2014 Exakte Optimalit\u00e4tsgarantien<\/li>\n<\/ul>\n<p>Die Nachteile:<\/p>\n<ul>\n<li><strong>Erfordert primitive Polynomtabellen<\/strong> \u2013 Muss vorbearbeitet oder gespeichert werden<\/li>\n<li><strong>Nicht flexibel bei der Anzahl der Proben<\/strong> \u2014 ausgelegt f\u00fcr n = 2 ^ m<\/li>\n<li><strong>Rechenweise schwerer<\/strong> \u2013 Erfordert Tabellen-Lookups<\/li>\n<\/ul>\n<h3>Das Urteil<\/h3>\n<p>F\u00fcr die meisten Simulationsanwendungen mit 5\u201320 Dimensionen \u00fcbertrifft <strong>SOBOL mit Scrambling Halton<\/strong>. Der Grund daf\u00fcr ist, dass das Scrambling die Aliasing-Muster bricht, die Halton in h\u00f6heren Dimensionen entwickelt. Wenn Sie willk\u00fcrliche Stichprobenz\u00e4hlungen ben\u00f6tigen und kein Scrambling verwenden k\u00f6nnen, ist Halton m\u00f6glicherweise die bessere praktische Wahl.<\/p>\n<h2>Vergleichshandbuch: MC vs LHS vs Sobol vs Halton<\/h2>\n<table>\n<thead>\n<tr>\n<th>Eigentum<\/th>\n<th>Monte Carlo<\/th>\n<th>Lateinischer Hyperkuchen<\/th>\n<th>SOBOL (verschl\u00fcsselt)<\/th>\n<th>Halton<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Konvergenzrate<\/td>\n<td>O (n\u207b\u00b9\u141f\u00b2) Standardfehler<\/td>\n<td>O(n\u207b\u00b9\u141f\u00b2) mit reduzierter Varianz<\/td>\n<td>O(n\u207b\u00b9) f\u00fcr glatte Funktionen<\/td>\n<td>O(n\u207b\u00b9) f\u00fcr glatte Funktionen<\/td>\n<\/tr>\n<tr>\n<td>Varianzreduzierung<\/td>\n<td>Keiner<\/td>\n<td>Faktor ~ n im Vergleich zu MC<\/td>\n<td>10\u2013100 \u00d7 Reduktion gegen\u00fcber MC<\/td>\n<td>10\u201350 \u00d7 Reduktion vs MC<\/td>\n<\/tr>\n<tr>\n<td>Beispielflexibilit\u00e4t<\/td>\n<td>Beliebig n<\/td>\n<td>Beliebig n<\/td>\n<td>Optimal bei n = 2 ^ m<\/td>\n<td>Beliebig n<\/td>\n<\/tr>\n<tr>\n<td>Dimensionsskalierung<\/td>\n<td>verschlechtert sich linear<\/td>\n<td>verschlechtert sich multiplikativ<\/td>\n<td>verschlechtert sich als O (s)<\/td>\n<td>Abbau als O(S) mit Aliasing<\/td>\n<\/tr>\n<tr>\n<td>Scrambling erforderlich<\/td>\n<td>Nein<\/td>\n<td>Manchmal (verschl\u00fcsselter LHS)<\/td>\n<td>Ja (f\u00fcr die Produktion)<\/td>\n<td>Fakultativ<\/td>\n<\/tr>\n<tr>\n<td>Komplexit\u00e4t der Implementierung<\/td>\n<td>Trivial<\/td>\n<td>Niedrig<\/td>\n<td>Mittel (Tische + Scrambling)<\/td>\n<td>Niedrig<\/td>\n<\/tr>\n<tr>\n<td>Periodische Integranden<\/td>\n<td>voreingenommen (strukturell)<\/td>\n<td>voreingenommen (strukturell)<\/td>\n<td>unvoreingenommen (wenn verschl\u00fcsselt)<\/td>\n<td>potenziell voreingenommen<\/td>\n<\/tr>\n<tr>\n<td>Empfohlen f\u00fcr<\/td>\n<td>Grundlinie, sehr unregelm\u00e4\u00dfig<\/td>\n<td>Moderate Abmessungen (\u2264 15)<\/td>\n<td>Glatte Integranden, Produktion<\/td>\n<td>Willk\u00fcr N, schnelles Prototyping<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Python-Implementierungshandbuch<\/h2>\n<p>Hier ist ein vollst\u00e4ndiges Arbeitsbeispiel, das alle vier Sampler mit einer einfachen Testfunktion vergleicht.<\/p>\n<pre><code class=\"language-python\">import numpy as np\nfrom scipy.stats import qmc\n\ndef test_function(x):\n    \"\"\"\n    Test integrand: sum of cosines along with a linear drift.\n    True integral on [0,1]^d = sum of (sin(1)\/1) for cos + 0.5*d for linear.\n    \"\"\"\n    d = x.shape[-1]\n    true_integral = d * np.sin(1) + 0.5 * d\n    return np.cos(x) + x.mean(axis=-1, keepdims=True)\n\ndef estimate_integral(samples, func, true_value):\n    \"\"\"Estimate integral via QMC \/ MC averaging.\"\"\"\n    f_values = func(samples)\n    estimate = f_values.mean(axis=-1).mean()\n    std_error = f_values.std(ddof=1) \/ np.sqrt(len(f_values))\n    return estimate, std_error\n\n# Setup\nd = 5  # dimension\nnp.random.seed(42)\n\n# 1. Monte Carlo\nN_mc = 2**15\nmc_samples = np.random.uniform(0, 1, (N_mc, d))\nmc_est, mc_se = estimate_integral(mc_samples, test_function, None)\n\n# 2. Latin Hypercube (scrambled)\nlhs_engine = qmc.Lhs(d, scramble=True)\nlhs_samples = lhs_engine.random(N_mc)\nlhs_est, lhs_se = estimate_integral(lhs_samples, test_function, None)\n\n# 3. Scrambled Sobol QMC\nsobol_engine = qmc.Sobol(d, scramble=True)\nsobol_samples = sobol_engine.random(N_mc)\nsobol_est, sobol_se = estimate_integral(sobol_samples, test_function, None)\n\n# 4. Halton\nhalton_engine = qmc.Halton(d, scramble=False)\nhalton_samples = halton_engine.random(N_mc)\nhalton_est, halton_se = estimate_integral(halton_samples, test_function, None)\n\nprint(f\"MC:      {mc_est:.6f} \u00b1 {mc_se:.6f}\")\nprint(f\"LHS:     {lhs_est:.6f} \u00b1 {lhs_se:.6f}\")\nprint(f\"Sobol:   {sobol_est:.6f} \u00b1 {sobol_se:.6f}\")\nprint(f\"Halton:  {halton_est:.6f} \u00b1 {halton_se:.6f}\")\n<\/code><\/pre>\n<p>Die Ausgabe zeigt konsistent, dass QMC-Methoden (SOBOL und LHS) Sch\u00e4tzungen mit einer wesentlich geringeren Varianz als Standard-Monte-Carlo selbst bei m\u00e4\u00dfigen Probenzahlen erzeugen.<\/p>\n<h3>Grenzen f\u00fcr physikalische Parameter verwenden<\/h3>\n<p>In realen Simulations-Workflows haben Ihre Parameter physikalische Grenzen. Das <code>qmc<\/code>-Modul \u00fcbernimmt dies \u00fcber den Parameter <code>expand<\/code>:<\/p>\n<pre><code class=\"language-python\">from scipy.stats import qmc\nimport numpy as np\n\n# Physical bounds for a 3D problem\nbounds = [\n    (300, 400),   # Temperature in Kelvin\n    (1e-6, 1e-4), # Thermal conductivity, W\/m\u00b7K\n    (0.1, 0.9)    # Porosity, dimensionless\n]\n\nd = len(bounds)\nengine = qmc.Sobol(d, scramble=True)\n\n# Generate samples in [0,1], then expand to bounds\nsamples = engine.random(2**12)\nsamples = qmc.expand(samples, [b for b in bounds])\n\nprint(f\"Sampled bounds check:\")\nfor i, (low, high) in enumerate(bounds):\n    print(f\"  Dim {i}: min={samples[:, i].min():.6f}, max={samples[:, i].max():.6f}\")\n<\/code><\/pre>\n<h2>H\u00e4ufige Fallstricke und wie man sie vermeidet<\/h2>\n<h3>Fallstricke 1: Erste Sobol-Punkte entfernen<\/h3>\n<p>Die ersten SOBOL-Punkte (Indizes 0 bis ~ 10) haben eine schlechte Abdeckung. Wenn Sie sie ohne Ber\u00fccksichtigung der Indexverschiebung fallen lassen, erstellen Sie ein voreingenommenes Beispielset.<\/p>\n<p><strong>Fix:<\/strong> Starten Sie die SOBOL-Probenahme immer bei Index 0 und lassen Sie die vollst\u00e4ndige Sequenz auf nat\u00fcrliche Weise f\u00fcllen. Wenn Sie eine Teilstichprobe ben\u00f6tigen, verwenden Sie die Mitte oder das Ende der Sequenz, nicht eine willk\u00fcrliche K\u00fcrzung.<\/p>\n<h3>Falle 2: Nicht-M\u00f6glichkeiten von 2 Sobol<\/h3>\n<p>Wenn Sie n = 50.000 SOBOL-Punkte nehmen, wird die optimale Diskrepanzeigenschaft weggeworfen. Die Sequenz wurde so konzipiert, dass n = 2 ^ m genaue geringe Diskrepanz ergibt.<\/p>\n<p><strong>Fix:<\/strong> Verwenden Sie entweder n = 2 ^ m und verk\u00fcrzen (akzeptabel, wenn Sie nur eine Teilmenge ben\u00f6tigen) oder wechseln Sie f\u00fcr willk\u00fcrliche Z\u00e4hlungen zu LHS oder Halton.<\/p>\n<h3>Fallfall 3: Unverschl\u00fcsselter Sobol in der Produktion<\/h3>\n<p>Nicht verschl\u00fcsselte Sobol-Sequenzen haben periodische Strukturen. F\u00fcr periodische Funktionen (sehr h\u00e4ufig bei der Ausbreitung von Unsicherheiten) entsteht eine systematische Verzerrung, die mit mehr Stichproben nicht gemittelt wird.<\/p>\n<p><strong>Fix:<\/strong> Verwenden Sie immer <code>scramble=True<\/code>. Der in <code>scipy.stats.qmc<\/code>  verwendete Owen-Scrambling-Algorithmus erzeugt nahezu unvoreingenommene Sch\u00e4tzungen.<\/p>\n<h3>Fallfall 4: Fehlinterpretation von QMC-Konfidenzintervallen<\/h3>\n<p>Im Gegensatz zu MC erzeugt QMC standardm\u00e4\u00dfig keine statistisch g\u00fcltigen Konfidenzintervalle. Sie ben\u00f6tigen RQMC (Randomized QMC) mit mehreren Scrambles, um g\u00fcltige Intervalle zu konstruieren.<\/p>\n<p><strong>Fix:<\/strong> F\u00fchren Sie K-Verschl\u00fcsselung derselben QMC-Sequenz aus und verwenden Sie die Stichprobenvarianz \u00fcber Scrambles, um die Konfidenzintervalle abzusch\u00e4tzen.<\/p>\n<h3>Fallfall 5: Anwenden von LHS auf stark korrelierte Eingaben<\/h3>\n<p>LHS \u00fcbernimmt Dimensionsunabh\u00e4ngigkeit. Wenn Ihre Parameter korreliert sind (z. B. Materialeigenschaften aus einer gemeinsamen Verteilung), ignoriert LHS auf den Marginals die Korrelationsstruktur.<\/p>\n<p><strong>Fix:<\/strong> Verwenden Sie LHS auf Copula-Basis oder transformieren Sie sie in unabh\u00e4ngige Koordinaten, bevor Sie LHS anwenden.<\/p>\n<h2>Was wir empfehlen<\/h2>\n<p>Die Auswahl der richtigen Stichprobenmethode ist kein Einzelproblem. Hier ist unser praktischer Entscheidungsrahmen:<\/p>\n<h3>Wann sollte Latin Hypercube Sampling verwendet werden?<\/h3>\n<ul>\n<li><strong>Sie ben\u00f6tigen willk\u00fcrliche Stichprobenz\u00e4hlungen<\/strong> und w\u00fcnschen sich Vorteile f\u00fcr die Schichtung<\/li>\n<li><strong>Ihre Abmessungen sind \u2264 15<\/strong> und Sie k\u00f6nnen keine Zweierpotenzen garantieren<\/li>\n<li><strong>Sie ben\u00f6tigen eine schnelle, leicht umsetzbare L\u00f6sung<\/strong> \u2014 LHS l\u00e4sst sich einfach von Grund auf codieren<\/li>\n<li><strong>Ihre Simulationsfunktion ist m\u00e4\u00dfig reibungslos<\/strong> \u2013 LHS behandelt Diskontinuit\u00e4ten besser als ungescramble SOBOL<\/li>\n<\/ul>\n<h3>Wann verwenden Sie R\u00fchrei Sobol QMC<\/h3>\n<ul>\n<li><strong>Ihr Integrand ist glatt<\/strong> (unterschiedlich, keine starken Diskontinuit\u00e4ten)<\/li>\n<li><strong>Sie k\u00f6nnen n = 2^m<\/strong> Sample Counts verwenden<\/li>\n<li><strong>Sie ben\u00f6tigen die beste theoretische Konvergenzrate<\/strong> \u2014 O(n\u207b\u00b9) Beats O(n\u207b\u00b9\u141f\u00b2)<\/li>\n<li><strong>Sie f\u00fchren Produktions-UQ-Kampagnen<\/strong> durch, wobei die Anzahl der Proben durch das Compute-Budget begrenzt wird<\/li>\n<\/ul>\n<h3>Wann soll ich halton verwenden?<\/h3>\n<ul>\n<li><strong>Sie ben\u00f6tigen willk\u00fcrliche Stichprobenz\u00e4hlungen<\/strong> und k\u00f6nnen aus irgendeinem Grund LHS nicht verwenden<\/li>\n<li><strong>Ihre Abmessungen sind \u2264 10<\/strong> \u2013 Halton schneidet in niedrigen Abmessungen gut ab<\/li>\n<li><strong>Sie sind Prototyping<\/strong> und ben\u00f6tigen eine schnelle Sequenz ohne Tabellen<\/li>\n<\/ul>\n<h3>Wann verwenden Sie Standard Monte Carlo?<\/h3>\n<ul>\n<li><strong>Ihre Funktion hat starke Diskontinuit\u00e4ten<\/strong> und Sie k\u00f6nnen nicht klettern<\/li>\n<li><strong>Ihre Dimensionen \u00fcberschreiten 25<\/strong> \u2013 Alle LDS-Methoden verschlechtern sich und die Einfachheit von MC gewinnt<\/li>\n<li><strong>Sie ben\u00f6tigen statistisch g\u00fcltige Konfidenzintervalle<\/strong> ohne Overhead<\/li>\n<li><strong>Ihre Funktion ist extrem unregelm\u00e4\u00dfig<\/strong> \u2013 SoBol\/LHS-Struktur kann zu Verzerrung f\u00fchren<\/li>\n<\/ul>\n<h3>eine praktische Faustregel<\/h3>\n<p>F\u00fcr die meisten wissenschaftlichen Simulationsworkflows in 3\u201320 Dimensionen mit glatten Vorw\u00e4rtsmodellen ist <strong>Scrambled Sobol QMC mit n = 2 ^ 12 bis 2 ^ 15 Proben <\/strong> der Sweet Spot. Es gibt Ihnen eine 10-100-fache Varianzreduzierung gegen\u00fcber dem Standard-Monte-Carlo bei einer Stichprobenanzahl, die in Stunden anstelle von Tagen auf einem einzelnen Knoten abgeschlossen wird.<\/p>\n<h2>Zusammenfassung und n\u00e4chste Schritte<\/h2>\n<p>Bei Monte-Carlo-Methoden f\u00fcr wissenschaftliche Simulationen geht es nicht nur um das Zeichnen von Zufallszahlen. Die Wahl der Stichprobenstrategie - lateinischer Hypercube, Sobol-Sequenzen oder Halton - bestimmt, ob Ihre UQ-Kampagne effizient oder verschwenderisch ist.<\/p>\n<p>Die wichtigsten Erkenntnisse sind:<\/p>\n<ul>\n<li><strong>Diskrepanz ist wichtig<\/strong>: Sequenzen mit geringer Diskrepanz decken den Parameterraum weitaus gleichm\u00e4\u00dfiger ab als zuf\u00e4llige Punkte<\/li>\n<li><strong>Verschl\u00fcsselung ist unerl\u00e4sslich<\/strong> f\u00fcr die Produktion Sobol, um systematische Verzerrungen zu vermeiden<\/li>\n<li><strong>Potenzen von zwei<\/strong> sind optimal f\u00fcr SOBOL \u2013 Entwerfen Sie Ihr Beispielbudget entsprechend<\/li>\n<li><strong>QMC-Konvergenzraten<\/strong> von O(n\u207b\u00b9) f\u00fcr reibungslose Funktionen machen es zur Standardauswahl f\u00fcr die meisten Simulationsworkflows<\/li>\n<\/ul>\n<p>Unsere <a href=\"https:\/\/matforge.org\/monte-carlo-methods-for-scientific-simulations\/\" target=\"_blank\" rel=\"nofollow noopener\">Monte Carlo Methoden f\u00fcr wissenschaftliche Simulations <\/a> Guide bietet eine umfassendere Einf\u00fchrung in die Monte-Carlo-Ans\u00e4tze. Dieser Artikel vergr\u00f6\u00dfert die Methoden mit geringer Diskrepanz, die Ihnen die h\u00f6chste Effizienz pro Probe bieten.<\/p>\n<p>Integrieren Sie f\u00fcr die praktische Bereitstellung die oben genannten QMC-Codemuster in Ihre Simulationskampagnenskripte. Beginnen Sie mit n = 2 ^ 12, bewerten Sie die Konvergenz durch \u00dcberwachen der Sch\u00e4tzvarianz und skalieren Sie bis zu 2 ^ 15, wenn Ihr Budget dies zul\u00e4sst. Die Ergebnisse werden f\u00fcr sich sprechen.<\/p>\n<h2>Verwandte Anleitungen<\/h2>\n<ul>\n<li><a href=\"https:\/\/matforge.org\/uncertainty-quantification-sensitivity-analysis-scientific-simulation\/\" target=\"_blank\" rel=\"nofollow noopener\">Unsicherheitsquantifizierung und Sensitivit\u00e4tsanalyse in der wissenschaftlichen Simulation<\/a> \u2014 breiterer UQ-Kontext einschlie\u00dflich Sobol-Indizes und Varianz-basierte Sensitivit\u00e4t<\/li>\n<li><a href=\"https:\/\/matforge.org\/monte-carlo-methods-for-scientific-simulations\/\" target=\"_blank\" rel=\"nofollow noopener\">Monte Carlo Methoden f\u00fcr wissenschaftliche Simulationen: a Python Guide <\/a> - Breitere Abdeckung von Monte Carlo, einschlie\u00dflich Wichtigkeitsproben und adaptiver Methoden<\/li>\n<li><a href=\"https:\/\/matforge.org\/verification-vs-validation-in-scientific-simulations-a-practical-guide\/\" target=\"_blank\" rel=\"nofollow noopener\">Verifikation vs Validierung in wissenschaftlichen Simulationen: Ein praktischer Leitfaden <\/a> - So \u00fcberpr\u00fcfen Sie, ob Ihre UQ-Ergebnisse numerisch korrekt sind<\/li>\n<li><a href=\"https:\/\/matforge.org\/reproducible-parameter-sweeps-designing-simulation-campaigns-for-publication\/\" target=\"_blank\" rel=\"nofollow noopener\">Reproduzierbare Parameter-Sweeps: Design von Simulationskampagnen f\u00fcr die Ver\u00f6ffentlichung<\/a> \u2014 Best Practices f\u00fcr Dokumentation und Reproduzierbarkeit f\u00fcr Stichprobenkampagnen<\/li>\n<\/ul>\n<h2>Referenzen<\/h2>\n<ol>\n<li>Kucherenko, M. et al. \"Verwendung von lateinischen Hypercube- und Sobol-Sequenzen f\u00fcr die Quantifizierung der Unsicherheit.\" arxiv:1505.02350, 2015. <a href=\"https:\/\/arxiv.org\/abs\/1505.02350\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/arxiv.org\/abs\/1505.02350<\/a><\/li>\n<li>Chrisman, E. \"PI-Tagesvergleich: Monte Carlo gegen Latin Hypercube gegen Sobol Stichproben.\" Analytica, 2022. <a href=\"https:\/\/analytica.com\/blog\/pi-day-comparison-monte-carlo-vs-latin-hypercube-vs-sobol-sampling\/\" target=\"_blank\" rel=\"nofollow noopener\"> https:\/\/analytica.com\/blog\/pi-day-comparison-monte-carlo-vs-latin-hypercube-vs-sobol-sampling\/<\/a><\/li>\n<li>scipy. \"Quasi-Monte Carlo-Stichprobenreferenz.\" <a href=\"https:\/\/docs.scipy.org\/doc\/scipy\/reference\/stats.qmc.html\" target=\"_blank\" rel=\"nofollow noopener\"> https:\/\/docs.scipy.org\/doc\/scipy\/reference\/stats.qmc.html<\/a><\/li>\n<li>scipy. \"Quasi-Monte Carlo Tutorial.\" <a href=\"https:\/\/scipy.github.io\/devdocs\/tutorial\/stats\/quasi_monte_carlo.html\" target=\"_blank\" rel=\"nofollow noopener\"> https:\/\/scipy.github.io\/devdocs\/tutorial\/stats\/quasi_monte_carlo.html<\/a><\/li>\n<li>qmcSoftware. \"QMCSoftware-Dokumentation.\" <a href=\"https:\/\/qmcsoftware.github.io\/QMCSoftware\/\" target=\"_blank\" rel=\"nofollow noopener\"> https:\/\/qmcsoftware.github.io\/qmcsoftware\/<\/a><\/li>\n<li>Helmholtz-UQ-W\u00f6rterbuch. \"Quasi-Monte Carlo-Methoden.\" <a href=\"https:\/\/dictionary.helmholtz-uq.de\/content\/quasi_montecarlo_methods.html\" target=\"_blank\" rel=\"nofollow noopener\"> https:\/\/dictionary.helmholtz-uq.de\/content\/quasi_montecarlo_methods.html <\/a><\/li>\n<li>NDCBE. \"Sampling-basiertes Unsicherheitsquantifizierungs-Kurs-Notebook.\" <a href=\"https:\/\/ndcbe.github.io\/cbe67701-uncertainty-quantification\/07.01-Sampling-Based-Uncertainty-Quantification.html\" target=\"_blank\" rel=\"nofollow noopener\"> https:\/\/ndcbe.github.io\/cbe67701-uncertainty-quantification\/07.01-sampling-based-uncertainty-quantification.html <\/a><\/li>\n<\/ol>\n"},"excerpt":{"rendered":"<p><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Reading Time: <\/span> <span class=\"rt-time\"> 10<\/span> <span class=\"rt-label rt-postfix\">minutes<\/span><\/span>Deep-Dive \u00fcber lateinische Hypercube-Stichproben, Sobol-Sequenzen und Quasi-Monte-Carlo-Methoden f\u00fcr wissenschaftliche Simulationen. Lerne Theorie, Python-Implementierung und wann sie jeweils verwendet werden.<\/p>\n","protected":false,"raw":"Deep-Dive \u00fcber lateinische Hypercube-Stichproben, Sobol-Sequenzen und Quasi-Monte-Carlo-Methoden f\u00fcr wissenschaftliche Simulationen. Lerne Theorie, Python-Implementierung und wann sie jeweils verwendet werden."},"author":6,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_locale":"de_DE","_original_post":"https:\/\/matforge.org\/?p=537","iawp_total_views":0,"footnotes":""},"categories":[2],"tags":[5,6,4],"class_list":["post-890","post","type-post","status-publish","format-standard","hentry","category-fipy-documentation-examples-development","tag-fipy","tag-lithium-ion","tag-simulation","de-DE"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Monte-Carlo-UQ-Methoden: Latin Hypercube, Sobol und Quasi-Monte Carlo - matforge.org<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/matforge.org\/de\/monte-carlo-uhq-methods-lhs-sobol-quasi\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Monte-Carlo-UQ-Methoden: Latin Hypercube, Sobol und Quasi-Monte Carlo - matforge.org\" \/>\n<meta property=\"og:description\" content=\"Reading Time:  10 minutesDeep-Dive \u00fcber lateinische Hypercube-Stichproben, Sobol-Sequenzen und Quasi-Monte-Carlo-Methoden f\u00fcr wissenschaftliche Simulationen. Lerne Theorie, Python-Implementierung und wann sie jeweils verwendet werden.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/matforge.org\/de\/monte-carlo-uhq-methods-lhs-sobol-quasi\/\" \/>\n<meta property=\"og:site_name\" content=\"matforge.org\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-30T12:23:21+00:00\" \/>\n<meta name=\"author\" content=\"steven\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"steven\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"15\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/matforge.org\\\/de\\\/monte-carlo-uhq-methods-lhs-sobol-quasi\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/de\\\/monte-carlo-uhq-methods-lhs-sobol-quasi\\\/\"},\"author\":{\"name\":\"steven\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/8f690fb596d657b12994b83caa788f03\"},\"headline\":\"Monte-Carlo-UQ-Methoden: Latin Hypercube, Sobol und Quasi-Monte Carlo\",\"datePublished\":\"2026-07-30T12:23:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/de\\\/monte-carlo-uhq-methods-lhs-sobol-quasi\\\/\"},\"wordCount\":2381,\"commentCount\":0,\"keywords\":[\"FiPy\",\"lithium-ion\",\"simulation\"],\"articleSection\":[\"FIPY: Dokumentation, Beispiele &amp; Entwicklung\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/matforge.org\\\/de\\\/monte-carlo-uhq-methods-lhs-sobol-quasi\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/matforge.org\\\/de\\\/monte-carlo-uhq-methods-lhs-sobol-quasi\\\/\",\"url\":\"https:\\\/\\\/matforge.org\\\/de\\\/monte-carlo-uhq-methods-lhs-sobol-quasi\\\/\",\"name\":\"Monte-Carlo-UQ-Methoden: Latin Hypercube, Sobol und Quasi-Monte Carlo - matforge.org\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/#website\"},\"datePublished\":\"2026-07-30T12:23:21+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/8f690fb596d657b12994b83caa788f03\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/de\\\/monte-carlo-uhq-methods-lhs-sobol-quasi\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/matforge.org\\\/de\\\/monte-carlo-uhq-methods-lhs-sobol-quasi\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/matforge.org\\\/de\\\/monte-carlo-uhq-methods-lhs-sobol-quasi\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/matforge.org\\\/de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Monte-Carlo-UQ-Methoden: Latin Hypercube, Sobol und Quasi-Monte Carlo\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#website\",\"url\":\"https:\\\/\\\/matforge.org\\\/\",\"name\":\"matforge.org\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/matforge.org\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/8f690fb596d657b12994b83caa788f03\",\"name\":\"steven\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g\",\"caption\":\"steven\"},\"url\":\"https:\\\/\\\/matforge.org\\\/author\\\/steven\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Monte-Carlo-UQ-Methoden: Latin Hypercube, Sobol und Quasi-Monte Carlo - matforge.org","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/matforge.org\/de\/monte-carlo-uhq-methods-lhs-sobol-quasi\/","og_locale":"de_DE","og_type":"article","og_title":"Monte-Carlo-UQ-Methoden: Latin Hypercube, Sobol und Quasi-Monte Carlo - matforge.org","og_description":"Reading Time:  10 minutesDeep-Dive \u00fcber lateinische Hypercube-Stichproben, Sobol-Sequenzen und Quasi-Monte-Carlo-Methoden f\u00fcr wissenschaftliche Simulationen. Lerne Theorie, Python-Implementierung und wann sie jeweils verwendet werden.","og_url":"https:\/\/matforge.org\/de\/monte-carlo-uhq-methods-lhs-sobol-quasi\/","og_site_name":"matforge.org","article_published_time":"2026-07-30T12:23:21+00:00","author":"steven","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"steven","Gesch\u00e4tzte Lesezeit":"15\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/matforge.org\/de\/monte-carlo-uhq-methods-lhs-sobol-quasi\/#article","isPartOf":{"@id":"https:\/\/matforge.org\/de\/monte-carlo-uhq-methods-lhs-sobol-quasi\/"},"author":{"name":"steven","@id":"https:\/\/matforge.org\/#\/schema\/person\/8f690fb596d657b12994b83caa788f03"},"headline":"Monte-Carlo-UQ-Methoden: Latin Hypercube, Sobol und Quasi-Monte Carlo","datePublished":"2026-07-30T12:23:21+00:00","mainEntityOfPage":{"@id":"https:\/\/matforge.org\/de\/monte-carlo-uhq-methods-lhs-sobol-quasi\/"},"wordCount":2381,"commentCount":0,"keywords":["FiPy","lithium-ion","simulation"],"articleSection":["FIPY: Dokumentation, Beispiele &amp; Entwicklung"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/matforge.org\/de\/monte-carlo-uhq-methods-lhs-sobol-quasi\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/matforge.org\/de\/monte-carlo-uhq-methods-lhs-sobol-quasi\/","url":"https:\/\/matforge.org\/de\/monte-carlo-uhq-methods-lhs-sobol-quasi\/","name":"Monte-Carlo-UQ-Methoden: Latin Hypercube, Sobol und Quasi-Monte Carlo - matforge.org","isPartOf":{"@id":"https:\/\/matforge.org\/#website"},"datePublished":"2026-07-30T12:23:21+00:00","author":{"@id":"https:\/\/matforge.org\/#\/schema\/person\/8f690fb596d657b12994b83caa788f03"},"breadcrumb":{"@id":"https:\/\/matforge.org\/de\/monte-carlo-uhq-methods-lhs-sobol-quasi\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/matforge.org\/de\/monte-carlo-uhq-methods-lhs-sobol-quasi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/matforge.org\/de\/monte-carlo-uhq-methods-lhs-sobol-quasi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/matforge.org\/de\/"},{"@type":"ListItem","position":2,"name":"Monte-Carlo-UQ-Methoden: Latin Hypercube, Sobol und Quasi-Monte Carlo"}]},{"@type":"WebSite","@id":"https:\/\/matforge.org\/#website","url":"https:\/\/matforge.org\/","name":"matforge.org","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/matforge.org\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/matforge.org\/#\/schema\/person\/8f690fb596d657b12994b83caa788f03","name":"steven","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g","caption":"steven"},"url":"https:\/\/matforge.org\/author\/steven\/"}]}},"_links":{"self":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/890","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/comments?post=890"}],"version-history":[{"count":1,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/890\/revisions"}],"predecessor-version":[{"id":1018,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/890\/revisions\/1018"}],"wp:attachment":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/media?parent=890"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/categories?post=890"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/tags?post=890"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}