Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 14. 04. 2018 12:41 — Editoval Pritt (14. 04. 2018 12:48)

Pritt
Příspěvky: 394
Pozice: student
Reputace:   19 
 

Pravděpodobnost - generování náhodných vektorů uvnitř hyperkoule

Zdravím,

potřebuji generovat náhodné vektory rovnoměrně uvnitř hyperkoule obecně o $n$ dimenzích.
Potřebuji, aby to fungovalo v přijatelném čase, takže acception-rejection metoda je pro mě nevhodná. Větší $n$ ($n = 60$).

Našel jsem na internetu matlabovskou funkci, která se tváří, že by mohla fungovat, nicméně jsem k ní už nenašel vysvětlení, proč by právě takto generování těchto vektorů mělo vypadat.

Funkce vypadá následovně:

1) Vezmu náhodný vektor $\vec{x}$, kde $x_i \sim N(0,1), \; i = 1,2,\dots,n$.
2) $s_2 = \sum\limits_{i=1}^n x_i^2$
3) $\vec{x} :=  r\cdot\frac{\sqrt[n]{\mathrm{gammainc}(\frac{s_2}{2},\frac{n}{2}) }}{ \sqrt{s_2}} \cdot \vec{x} $
kde $r$ je poloměr hyperkoule $H(r,\vec{0})$ se středem v bodě $\vec{s} = \vec{0}$
a funkce $\mathrm{gammainc}(x,a)$ je nekompletní gamma funkce definovaná takto: $\mathrm{gammainc}(x,a) = \frac{1}{\Gamma(a)}\int_0^xt^{a-1}e^{-t}\mathrm{dt}$,
kde $\Gamma(a) $ je gamma funkce.

Moje otázka zní:
Proč uvedený postup generuje rovnoměrně náhodné vektory uvnitř hyperkoule?

Pokud by někdo věděl alespoň o nějakých materiálech, kde to je vysvětlené, budu vděčný.

Děkuji

Offline

  • (téma jako vyřešené označil(a) Pritt)

#2 14. 04. 2018 14:39

laszky
Příspěvky: 2407
Škola: MFF UK, FJFI CVUT
Reputace:   202 
 

Re: Pravděpodobnost - generování náhodných vektorů uvnitř hyperkoule

Ahoj. Podle tveho vztahu to v 1D vychazi jako

$x := r \cdot \mathrm{erf}\left(\frac{x}{\sqrt{2}}\right)$,

coz by mohlo jit lepe interpretovat. ;-)

Offline

 

#3 14. 04. 2018 17:16

MichalAld
Moderátor
Příspěvky: 5348
Reputace:   130 
 

Re: Pravděpodobnost - generování náhodných vektorů uvnitř hyperkoule

↑ laszky:
Pak to tedy ale není rovnoměrně rozložené, ale spíš Gaussovsky, né ?

Na rovnoměrně rozložené vektory by přece stačilo vzít $\frac{\vec{x}}{ \sqrt{s_2}}$ (jednotkový vektor náhodného směru) a přenásobit jej ještě nějakým náhodným číslem v rozsahu (0, r). Nebo né ?

Offline

 

#4 14. 04. 2018 17:33

Pritt
Příspěvky: 394
Pozice: student
Reputace:   19 
 

Re: Pravděpodobnost - generování náhodných vektorů uvnitř hyperkoule

↑ laszky:

Ahoj, díky za reakci,

pokud bych generoval $x$ z normálního rozdělení $N(0,1)$, tedy pokud by $x$ mohla nabývat i záporných hodnot, upřesnil bych vztah na $x := \mathrm{sgn} (x) r \cdot \mathrm{erf}\left(\dfrac{|x|}{\sqrt{2}}\right)$, ale to je detail. Nicméně, dalo by se to interpretovat jako, že $x$ přiřazuji $r-$krát pravděpodobnost, že veličina $y \sim N(0,1)$ leží v intervalu $\left(-\dfrac{|x|}{\sqrt{2}}, \; \dfrac{|x|}{\sqrt{2}}\right)$?

Offline

 

#5 14. 04. 2018 17:36 — Editoval laszky (14. 04. 2018 17:40)

laszky
Příspěvky: 2407
Škola: MFF UK, FJFI CVUT
Reputace:   202 
 

Re: Pravděpodobnost - generování náhodných vektorů uvnitř hyperkoule

↑ MichalAld:

Pokud nahodny vektor je bran jako (X-0), kde X je nahodny bod v jednotkove kouli, potom delsi vektory jsou asi pravdepodobnejsi nezli kratsi, coz ten tvuj postup nesplnuje.

Podle me, v tom 1D, kdyz je $P(X\leq x)=\Phi(x)=\frac{1}{2}\left[1+\mathrm{erf}\left(\frac{x}{\sqrt{2}}\right)\right]$, potom z toho plyne, ze $P(\widehat{X}\leq \widehat{x}) = \frac{1}{2}\left[1+\frac{\widehat{x}}{r}\right]$, kde $\widehat{X}=r\cdot\mathrm{erf}\left(\frac{X}{\sqrt{2}}\right)$. To znamena, ze $\widehat{X}$ ma rovnomerne rozlozeni na intervalu $(-r,r)$. Ale nejsem zadnej odbornik, je to jen muj tip ;-)

Offline

 

#6 14. 04. 2018 17:39

laszky
Příspěvky: 2407
Škola: MFF UK, FJFI CVUT
Reputace:   202 
 

Re: Pravděpodobnost - generování náhodných vektorů uvnitř hyperkoule

↑ Pritt:

$\mathrm{erf}(x)$ je licha funkce, takze $\mathrm{erf}(x)=\mathrm{erf}(|x|)\mathrm{sgn}(x)$.

Offline

 

#7 14. 04. 2018 18:05

Pritt
Příspěvky: 394
Pozice: student
Reputace:   19 
 

Re: Pravděpodobnost - generování náhodných vektorů uvnitř hyperkoule

↑ laszky:

To vypadá zajímavě :), ale jsem natvrdlej a uniká mi jak z $P(X\leq x)=\Phi(x)=\frac{1}{2}\left[1+\mathrm{erf}\left(\frac{x}{\sqrt{2}}\right)\right]$ plyne $P(\widehat{X}\leq \widehat{x}) = \frac{1}{2}\left[1+\frac{\widehat{x}}{r}\right]$.
Ztrácim se asi v tom přeznačování.

Offline

 

#8 14. 04. 2018 18:08

laszky
Příspěvky: 2407
Škola: MFF UK, FJFI CVUT
Reputace:   202 
 

Re: Pravděpodobnost - generování náhodných vektorů uvnitř hyperkoule

↑ Pritt:

Bude to proste tou transformaci $\widehat{X}=r\cdot\mathrm{erf}\left(\frac{X}{\sqrt{2}}\right)$. Presny zduvodneni (asi nejaka substituce v odpovidajicich integralech) musis uz domyslet sam :-)

Offline

 

#9 14. 04. 2018 19:18

jarrro
Příspěvky: 5490
Škola: UMB BB Matematická analýza
Reputace:   303 
Web
 

Re: Pravděpodobnost - generování náhodných vektorů uvnitř hyperkoule

Nie je to iba kratšie zapísané , že ak $X$ je normované  normálne potom $\hat{X}=r\mathrm{erf}{\(\frac{X}{\sqrt{2}}\)}$ je rovnomerné na $\(-r, r\)$?
Lebo
$P{\(\hat{X}\leq t\)}=P{\(X<\sqrt{2}\mathrm{erf}^{-1}{\(\frac{t}{r}\)}\)}=\frac{1}{2}\(1+\mathrm{erf}{\(\frac{\sqrt{2}\mathrm{erf}^{-1}{\(\frac{t}{r}\)}}{\sqrt{2}}\)}\)=\frac{1}{2}\(1+\frac{t}{r}\)$


MATH IS THE BEST!!!

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson