Konvolucija

O matematiki, številih, množicah in računih...
Popotnik
Posts: 532
Joined: 12.11.2008 18:35

Konvolucija

Post by Popotnik » 26.2.2010 18:54

Recimo, da imam

\(l = + \sqrt{x^2 + y^2}\)
x in y sta enakomerno porazdeljena na intervalu \(\lbrack 0, 1 \rbrack\).

Torej sta porazdelitvi \(u(x) = 1\) ter \(v(y) = 1\).

Kaka je potemtakem porazdelitev \(w(l)\). Vem, da gre l od 0 do \(\sqrt{2}\).

Hvala!

User avatar
Aniviller
Posts: 7263
Joined: 15.11.2004 18:16

Re: Konvolucija

Post by Aniviller » 26.2.2010 19:23

To ni konvolucija... to je zamenjava spremeljivke v porazdelitvi. Porazdelitev je enakomerna na kvadratu (0,1)x(0,1)... ti pa isces porazdelitev po radiju. Porazdelitev ne bo gladka ampak bo iz dveh delov: pod 1 (preden prides do vogalov) bo ena varianta, od 1 pa do sqrt(2) pa druga.

Za prvi del je enostavno. Porazdelitev je oblike
\(dP=1\cdot dx\,dy=r\,dr\,d\phi\) (zamenjava spremeljivk)
Ker te zanima porazdelitev po radiju, pointegriras po kotu (ker je to prvi kvadrant, tece od 0 do \(\frac{\pi}{2}\). Torej:
\(w(r)=\frac{\pi}{2}r\) za r<1
Za r>1 pa kot ne tece vec od 0 do \(\frac{\pi}{2}\) ampak manj (narisi si, koliksen del kroznice je znotraj kvadrata). Dobra skica ti bo pokazala, da je \(\cos\phi_0=\frac{1}{r}\) (spodnja meja). Zaradi simetrije je zgornja meja \(\phi_1=\frac{\pi}{2}-\phi_0\). Torej:
\(w(r)=r\int_{\phi_0}^{\phi_1}d\phi=r\left(\frac{\pi}{2}-2\phi_0\right)=r\left(\frac{\pi}{2}-2\arccos\frac{1}{r}\right)\)
Attachments
radirho.png
radirho.png (4.39 KiB) Viewed 2955 times

Popotnik
Posts: 532
Joined: 12.11.2008 18:35

Re: Konvolucija

Post by Popotnik » 27.2.2010 19:52

Huh, tole je pa res super rešitev!

Dejansko je moj problem ena nadgradnja te naloge in je malce bolj zakompliciran - tri dimenzije in drugačna porazdelitev x, y ter z! Upam, da se bo dalo s tem konceptom pomagati.

User avatar
Aniviller
Posts: 7263
Joined: 15.11.2004 18:16

Re: Konvolucija

Post by Aniviller » 27.2.2010 20:22

No, v splosnem lahko recem tole: vse te stvari se resi na isti nacin - zamenjas spremeljivke tako da je ena izmed njih tista po kateri isces porazdelitev, potem pa pointegriras po ostalih. Meje pa poisces tako kot vedno: prvotna porazdelitev je imela ene integracijske meje (ki ustrezajo definicijskemu obmocju porazdelitve), nacine zamenjave spremeljivk integrala pa poznamo - vcasih je sicer malo tezko in je treba skicirat ampak vse kar ves od integralov uporabis tukaj. Katera porazdelitev je pa notri pa je cisto vseeno - edino mogoce bo integral tezje izracunat.

Recimo cisto formalno bi lahko celo tvoje vprasanje zapisali takole:
\(\int_0^1\int_0^1 \underbrace{\rho(x,y)}_{1}dx\,dy=\int_0^1\int_0^{\pi/2} \,d\phi\,r\,dr+\int_1^{\sqrt{2}}\int_{\arccos 1/r}^{\pi/2-\arccos 1/r}\,d\phi\,r\,dr=\)
\(=\int_0^{\sqrt{2}}\rho(r)\,dr\)
V zadnjem koraku smo samo uvedli tole: \(\rho(r)=\begin{cases}\int_0^{\pi/2} \,d\phi&0<x<1\\ \int_{\arccos 1/r}^{\pi/2-\arccos 1/r}\,d\phi&1<x<\sqrt{2}\end{cases}\)

Torej: razcep funkcije na dva dela pride naravno iz zapisa integrala kot vsoto z razlicnimi mejami. Potem pointegriras tisto kar te ne zanima, kar pa v integralu ostane, je iskana porazdelitev (zunanji integrali ti pa nosijo informacijo o defincijskem obmocju posameznih delov porazdelitve - v nasem primeru (0,1) in (1,sqrt2)).

Zdaj lahko vsak problem brez tezav resis, ce le znas zamenjati integracijske meje.

Popotnik
Posts: 532
Joined: 12.11.2008 18:35

Re: Konvolucija

Post by Popotnik » 28.2.2010 18:54

Integracija v 3D je boleča:

npr. meje pri r med 0 in \(\sqrt{2}\) so takšne:

Kot \(\varphi\) je med \(arccos({1 \over r sin(\vartheta)})\) in \({\Pi \over 2} - arccos({1 \over r sin(\vartheta)})\), \(\vartheta\) pa med 0 in \(\Pi \over 2\).

Se da to kako drugače nastaviti?

User avatar
Aniviller
Posts: 7263
Joined: 15.11.2004 18:16

Re: Konvolucija

Post by Aniviller » 28.2.2010 20:03

Hm... no kaj dosti kot zamenjat vrstni red theta/fi tezko naredis. A to ravno tako rezes enotsko kocko s sfero? A ni med 0 in 1 celo obmocje, pa je potem med 1 in sqrt(2) ena varianta, od tam do sqrt(3) pa spet neka druga?

Popotnik
Posts: 532
Joined: 12.11.2008 18:35

Re: Konvolucija

Post by Popotnik » 28.2.2010 20:15

Lapsus. Mislil sem med 1 in sqrt(2). Ja, med sqrt(2) in sqrt(3) je pa tretja varianta.

User avatar
Aniviller
Posts: 7263
Joined: 15.11.2004 18:16

Re: Konvolucija

Post by Aniviller » 28.2.2010 20:27

Ne tukaj ne bo slo na noben lazji nacin. Obmocje je svinjsko grdo... cetrt sferne lupine, odrezane na treh koncih.

Take stvari se ponavadi celo loti z monte carlo metodami... vrzes notri deset miljonov nakljucnih tock, za vsako izracunas "r" in pristejes ena v predalcku pri tistem r.

Popotnik
Posts: 532
Joined: 12.11.2008 18:35

Re: Konvolucija

Post by Popotnik » 28.2.2010 20:31

Aniviller wrote:Ne tukaj ne bo slo na noben lazji nacin. Obmocje je svinjsko grdo... cetrt sferne lupine, odrezane na treh koncih.

Take stvari se ponavadi celo loti z monte carlo metodami... vrzes notri deset miljonov nakljucnih tock, za vsako izracunas "r" in pristejes ena v predalcku pri tistem r.
Hihi, monte carlo je bila prva stvar, ki sem jo naredil :). Sprogramirano v par min, le računal je malce dalj časa, tudi zaradi tega, ker sem kodo napravil in pognal v pythonu.

Zdaj bi rad napravil še analitičen rezultat.

Mathematica mi pa računa ta prašičji integral že > 8 min.

User avatar
Aniviller
Posts: 7263
Joined: 15.11.2004 18:16

Re: Konvolucija

Post by Aniviller » 28.2.2010 20:48

Ja monte carlo je res par vrstic...
Ce ti toliko casa racuna potem ne bo uspelo po moje. Je integral prevec ogaben.

Drugace lahko mathematici podas stvari v cisto simbolicni obliki - ni treba nastavljat svojih spremeljivk ker jih sama najde - vprasanje kaksne carovnije uporablja interno (pa se pogoje samostojno poisce). Recimo naredis:

Code: Select all

Integrate[Boole[(x^2 + y^2 + z^2) < aa], {x, 0, 1}, {y, 0, 1}, {z, 0, 1}]
Boole[] je ena ce je pogoj res in nic v nasprotnem primeru. To sicer ne da povrsine odseka sfere ampak volumen sfere polmera sqrt(aa), ki lezi znotraj integracijskega obmocja... dobljeni rezultat je zato kumulativa iskane porazdelitve in ga bo treba se odvajat da dobis tisto kar isces (aja pa aa=r^2 je bolje kasneje vstavit).

No, tole je racunal ene pet minut in mi izpljunil (priponka).

Je pa res neke vrste "incredible magic" tole: da jemlje abstraktne pogoje in ti da kar vse odseke funkcije naenkrat. Zdaj samo das aa=r^2 in odvajas po r da dobis porazdelitev. Saj je sokantno lepa funkcija (po poenostavitvi!!!!) glede na to kaj je slo noter.
Attachments
mathematica_svinjarija.png

Popotnik
Posts: 532
Joined: 12.11.2008 18:35

Re: Konvolucija

Post by Popotnik » 28.2.2010 21:58

Boole izgleda odlično, toda mojega problema tudi ta ne prebavi. Dejanski problem je pač tole:

Code: Select all

Integrate[Boole[((x2 - x1)^2 + (y2 - y1)^2 + (z2 - z1)^2) < aa], {x1, 0, 1}, {x2, 0, 1}, {y1, 0, 1}, {y2, 0, 1}, {z1, 0, 1}, {z2, 0, 1}]

User avatar
Aniviller
Posts: 7263
Joined: 15.11.2004 18:16

Re: Konvolucija

Post by Aniviller » 28.2.2010 22:23

Aha porazdelitev po razdalji med dvema nakljucnima tockama :) Samo to je pa sestkratni integral... mislim da tukaj nimas kaj dosti sans. Ker vsak naslednji integral pridela grse funkcije in na koncu ni vec integrabilno.

Sicer lahko uvedes nove spremeljivke dx=x2-x1 namesto x2, in predpostavis x2>x1 (s tem po vsaki spremeljivki integriras po polovici moznosti ker privzames vrstni red tock - rezultat je potem 2^3 krat ta rezultat). Tako se da vsaj tri integrale (dx,dy,dz) poskusit na prejsnji nacin zintegrirat... vendar tisto po moje ne bo dobro prijelo, ker tokrat sekas kroglo s kvadrom (dx gre od 0 do 1-x2). Izgubis simetrijo in x1,y1,z1 ti se vedno nastopajo v izrazu. To je tisti tezki del. Ce bi sekanje krogle z nekim poljubnim kvadrom uspelo, potem so naslednji trije integrali verjetno lazji. Razen ce x1,y1,z1 nastopajo potem v kaksnih transcendentnih izrazih.

User avatar
Aniviller
Posts: 7263
Joined: 15.11.2004 18:16

Re: Konvolucija

Post by Aniviller » 28.2.2010 22:26

Aja v tem primeru bi takoj dal Assumptions->{aa>0,Element[aa,Reals]}
S tem lahko precej skrajsas cas integracije ker ne gre racunat se vseh kompleksnih moznosti ampak samo tiste ki nas zanimajo.

Popotnik
Posts: 532
Joined: 12.11.2008 18:35

Re: Konvolucija

Post by Popotnik » 28.2.2010 22:32

Ja, saj sem tisto porazdelitev \(\rho(x,y,z)\) zapisal kot \(2(-x + 1)2(-y + 1)2(-z + 1)\). To sem pretvoril v krogelni koordinatni sistem in bi moral potem rešiti dva integrala. In tu se zatakne - mathematica melje, a (v nekem sprejemljivem) času ne uspe rešiti.

Popotnik
Posts: 532
Joined: 12.11.2008 18:35

Re: Konvolucija

Post by Popotnik » 28.2.2010 22:34

Aniviller wrote:Aja v tem primeru bi takoj dal Assumptions->{aa>0,Element[aa,Reals]}
S tem lahko precej skrajsas cas integracije ker ne gre racunat se vseh kompleksnih moznosti ampak samo tiste ki nas zanimajo.
Sem uporabil pri računanju tistih dveh integralov na klasičen način :D. Pri integriranju Boola bom pa sedaj dodal.

Post Reply