Konvolucija

O matematiki, številih, množicah in računih...
Popotnik
Prispevkov: 532
Pridružen: 12.11.2008 18:35

Konvolucija

Odgovor Napisal/-a Popotnik »

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!

Uporabniški avatar
Aniviller
Prispevkov: 7263
Pridružen: 15.11.2004 18:16

Re: Konvolucija

Odgovor Napisal/-a Aniviller »

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)\)
Priponke
radirho.png
radirho.png (4.39 KiB) Pogledano 6240 krat

Popotnik
Prispevkov: 532
Pridružen: 12.11.2008 18:35

Re: Konvolucija

Odgovor Napisal/-a Popotnik »

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.

Uporabniški avatar
Aniviller
Prispevkov: 7263
Pridružen: 15.11.2004 18:16

Re: Konvolucija

Odgovor Napisal/-a Aniviller »

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
Prispevkov: 532
Pridružen: 12.11.2008 18:35

Re: Konvolucija

Odgovor Napisal/-a Popotnik »

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?

Uporabniški avatar
Aniviller
Prispevkov: 7263
Pridružen: 15.11.2004 18:16

Re: Konvolucija

Odgovor Napisal/-a Aniviller »

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
Prispevkov: 532
Pridružen: 12.11.2008 18:35

Re: Konvolucija

Odgovor Napisal/-a Popotnik »

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

Uporabniški avatar
Aniviller
Prispevkov: 7263
Pridružen: 15.11.2004 18:16

Re: Konvolucija

Odgovor Napisal/-a Aniviller »

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
Prispevkov: 532
Pridružen: 12.11.2008 18:35

Re: Konvolucija

Odgovor Napisal/-a Popotnik »

Aniviller napisal/-a: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.

Uporabniški avatar
Aniviller
Prispevkov: 7263
Pridružen: 15.11.2004 18:16

Re: Konvolucija

Odgovor Napisal/-a Aniviller »

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:

Koda: Izberi vse

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.
Priponke
mathematica_svinjarija.png

Popotnik
Prispevkov: 532
Pridružen: 12.11.2008 18:35

Re: Konvolucija

Odgovor Napisal/-a Popotnik »

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

Koda: Izberi vse

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}]

Uporabniški avatar
Aniviller
Prispevkov: 7263
Pridružen: 15.11.2004 18:16

Re: Konvolucija

Odgovor Napisal/-a Aniviller »

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.

Uporabniški avatar
Aniviller
Prispevkov: 7263
Pridružen: 15.11.2004 18:16

Re: Konvolucija

Odgovor Napisal/-a Aniviller »

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
Prispevkov: 532
Pridružen: 12.11.2008 18:35

Re: Konvolucija

Odgovor Napisal/-a Popotnik »

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
Prispevkov: 532
Pridružen: 12.11.2008 18:35

Re: Konvolucija

Odgovor Napisal/-a Popotnik »

Aniviller napisal/-a: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.

Odgovori