Konvolucija

O matematiki, številih, množicah in računih...
User avatar
Aniviller
Posts: 7263
Joined: 15.11.2004 18:16

Re: Konvolucija

Post by Aniviller » 28.2.2010 22:46

Aja to si ze naredil konvolucijo. No saj to pomeni da ze imas porazdelitev po vektorjih razdalje med tockama in imas trojni integral z drugo funkcijo...
No to lahko recimo zmnozis in razcepis na vec integralov. Od enk dobis tisto kar sem ze jaz izracunal. Pri xdx ydy zdz lahko uvedes nove spremljivke u=x^2,v=y^2,w=z^2 in dobis pogoj
u+v+w<aa
To tudi gre - to bi slo se na pamet :)
Mesani cleni bodo pa oblike
u+y^2+z^2<aa
Tukaj pa lahko das
y^2+z^2<aa-u
in najprej zintegriras y in z (to bo nekaj takega v dveh delih, le namesto radija bo notri nekaj drugega), potem pa se po u.

Mislim da bi na ta nacin moralo iti vse. Imas 4 razlicne integrale, ostali se ponavljajo. Tisti s samimi kvadrati v Booleju je zgoraj resen, tisti brez kvadratov je trivialen (sekanje z ravnino), tisti z enim in tisti z dvemi kvadrati bodo pa bodo tudi podobni. V koncni fazi bi moralo it do konca, pa tudi ce bo rezultat grd. Tukaj imas sreco da mathematica lahko brez tezav sesteva funkcije ki so podane po kosih.

Popotnik
Posts: 532
Joined: 12.11.2008 18:35

Re: Konvolucija

Post by Popotnik » 1.3.2010 19:58

Aniviller wrote:Aja to si ze naredil konvolucijo. No saj to pomeni da ze imas porazdelitev po vektorjih razdalje med tockama in imas trojni integral z drugo funkcijo...
No to lahko recimo zmnozis in razcepis na vec integralov. Od enk dobis tisto kar sem ze jaz izracunal. Pri xdx ydy zdz lahko uvedes nove spremljivke u=x^2,v=y^2,w=z^2 in dobis pogoj
u+v+w<aa
To tudi gre - to bi slo se na pamet :)
Mesani cleni bodo pa oblike
u+y^2+z^2<aa
Tukaj pa lahko das
y^2+z^2<aa-u
in najprej zintegriras y in z (to bo nekaj takega v dveh delih, le namesto radija bo notri nekaj drugega), potem pa se po u.

Mislim da bi na ta nacin moralo iti vse. Imas 4 razlicne integrale, ostali se ponavljajo. Tisti s samimi kvadrati v Booleju je zgoraj resen, tisti brez kvadratov je trivialen (sekanje z ravnino), tisti z enim in tisti z dvemi kvadrati bodo pa bodo tudi podobni. V koncni fazi bi moralo it do konca, pa tudi ce bo rezultat grd. Tukaj imas sreco da mathematica lahko brez tezav sesteva funkcije ki so podane po kosih.
In ako prav razumem:

xyz:

Code: Select all

Integrate[Boole[(u + v + w) < aa], {u, 0, 1}, {v, 0, 1}, {w, 0, 1}, 
 Assumptions -> {aa > 0, Element[aa, Reals]}]
xy:

Code: Select all

Integrate[Boole[y^2 + z^2 < aa - u], {y, 0, 1}, {z, 0, 1}, {u, 0, 1}, 
 Assumptions -> {aa > 0, Element[aa, Reals]}]
x: Kak je tu?
1:

Code: Select all

Integrate[
 Boole[(x^2 + y^2 + z^2) < aa], {x, 0, 1}, {y, 0, 1}, {z, 0, 1}, Assumptions -> {aa > 0, Element[aa, Reals]}]

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

Re: Konvolucija

Post by Aniviller » 1.3.2010 20:30

Tako ja. Saj kar smo s tem pridobili je, da ce mu kaj ne bo vsec, lahko recimo pri xy integral po u izpustis, das bb=aa-u in po u naknadno integriras. Samo po moje bo to res znal sam narest.
Ker drugace to prestavljanje cez neenacaj mathematica ze sama naredi. To je bolj za primer ce mora clovek posegat v postopek.

Pri x je isto:

Code: Select all

Integrate[Boole[ z^2 < aa - u-v],  {z, 0, 1}, {u, 0, 1},{v, 0, 1},
Assumptions -> {aa > 0, Element[aa, Reals]}]
Oziroma ce to ne bo slo, lahko z posebej integriras in smatras desni del neenacaja kot eno spremenljivko.

Popotnik
Posts: 532
Joined: 12.11.2008 18:35

Re: Konvolucija

Post by Popotnik » 2.3.2010 21:59

Nak, ne bo šlo. Vse štiri člene sem umeril na območju 0 < r < 1, ker za to območje imam tudi rezultat, izračunan na klasičen način. Od tod sem torej potegnil štiri konstante oz. uteži. In ko sem si narisal plot območja od 1 do \(\sqrt{2}\), se je od daleč videlo, da ta del ne more biti vezen s prvim delom.

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

Re: Konvolucija

Post by Aniviller » 2.3.2010 23:28

Hm... sumljivo no. Jaz bi kot prvo se enkrat preveril konvolucijski rezultat (izgleda v redu ampak rajsi se enkrat). Pa konstant ne umerjaj s primerjavo... lahko je vec kot en nacin za sestavit skupaj. Utezi dobis direktno od mnozenja tistega produkta (pa polovick pri zamenjavi spremeljivk u=x^2 in podobno). V glavnem, pojdi cez cel postopek sam od zacetka, lahko da se kje skriva kaksna majhna napaka. Mogoce celo kaksen predznak, ceprav dvomim.

gnu
Posts: 111
Joined: 1.3.2010 12:20

Re: Konvolucija

Post by gnu » 3.3.2010 3:48

Če ne bo šlo, je tule http://www.math.kth.se/~johanph/habc.pdf odgovor.

lp

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

Re: Konvolucija

Post by Aniviller » 3.3.2010 9:30

O super, gnu, hvala za tale link. Jaz nekako nisem pomislil na to da bi poiskal reseno verzijo... ne vem zakaj ne.

No saj mislim da bo slo (ze za vajo je dobro) - ce grobo pogledas smo vse te izraze ki notri nastopajo ze videli med racunanjem tako da je treba samo prav sestet pa kaksno napako odpravit.

Popotnik
Posts: 532
Joined: 12.11.2008 18:35

Re: Konvolucija

Post by Popotnik » 3.3.2010 23:11

Hvala Anivillerju za ves trud in gnuju za pripopano povezavo do dokumenta.

Rezultat od Mathematice pa zgleda napačen - je zelo dolga klobasa. Možno, da tudi zaradi tega, ker ta računa s kompleksnimi števili. Rezultate mi je sortirala tudi glede na neke pogoje imaginarnih vrednosti izrazov.

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

Re: Konvolucija

Post by Aniviller » 4.3.2010 10:22

Ja vecine kompleksnih izrazov se izognes ce mu podas vse assumptione. Ostali gredo pa lahko stran ce das na rezultatu FullSimplify. Saj vidis na tistem primeru ki sem ga jaz izracunal. Je cel pogoj z imaginarnimi stevili sel stran. Pa imaginarni rezultati niso nujno napacni: recimo imaginarna stevila v logarimu lahko pomenijo da je tisto v resnici arkus tangens...

sanej
Posts: 71
Joined: 25.8.2010 18:00

Re: Konvolucija

Post by sanej » 22.8.2012 12:04

nekako ne dojamem najbolje konvolucije.

Za a iz realnih števil imam \(\[ f_a(x) = e^{-ax^{2}} \]\) izračunati pa moram \(\[ f_a \ast f_b \]\) za realni števili a in b.

začel sem takole \(\[ f_a \ast f_b = \int_{-\infty}^\infty e^{-at^{2}} e^{-a(x-t)^{2}} \, \mathrm{d}t \]\) pa se mi je zelo hitro ustavilo

potem sem probal \(\[ \widehat{f_a \ast f_b} = \widehat{f_a}\widehat{f_b}\) tu pa imam dve furierove transformacije za izračunat in potem

še inverz. ki pa tudi nista trivialne \(\[ \widehat{f_a(x)} = \int_{-\infty}^\infty e^{-at^{2}} e^{-ixt} \, \mathrm{d}t\) kjer me pa tudi neskončnosti uničijo.

Bi mi znal kdo pomagati?? hvala

User avatar
shrink
Posts: 14570
Joined: 4.9.2004 18:45

Re: Konvolucija

Post by shrink » 22.8.2012 15:59

No, nimaš dveh Fourierovih transformacij za izračunat, ker je samo razlika v parametru: enkrat je a, drugič je b.

Fourierovo transformiranko funkcije \(f_a(x)=e^{-ax^2}\) najdeš v tabeli transformirank, kar ni presenečenje, saj gre za obliko zelo pomembne (Gaussove) funkcije:

\(\displaystyle \[ \widehat{f_a(x)}=\sqrt{\frac{\pi}{a}}\cdot e^{-\frac{\omega^2}{4a}}\)

Sedaj lepo izračunaš Fourierovo transformacijo konvolucije \(f_a(x)\) in \(f_b(x)\) na način (s produktom transformirank), kot si ga že sam nastavil. Seveda ugotoviš, da je produkt enake oblike kot transformiranka posamezne funkcije, iz česar sledi, da je inverzna transformiranka spet oblika Gaussove funkcije oz. z drugimi besedami: konvolucija Gaussovih funkcij je spet Gaussova funkcija.

Če slučajno zahtevajo od tebe tudi izračun transformiranke, obstaja eleganten način za to (za svoje potrebe uporabi ustrezno drugo obliko); glej npr.:

http://www.cse.yorku.ca/~kosta/CompVis_ ... ussian.pdf

Edino pazi na en vmesni korak, ko da imaginarno enoto v imenovalec brez pojasnila za to, da se znebi minusa.

User avatar
shrink
Posts: 14570
Joined: 4.9.2004 18:45

Re: Konvolucija

Post by shrink » 22.8.2012 17:24

Pa še to: v omenjenem pdf-ju sta dva tiskarska škrata (mogoče je še kakšen). Moralo bi biti \(\ln G(0)=0\) oz. \(G(0)=1\), pa še minus v en. (9) na desni strani manjka.

sanej
Posts: 71
Joined: 25.8.2010 18:00

Re: Konvolucija

Post by sanej » 8.9.2012 16:30

Živjo.

imam še eno dilemo. In sicer izračunat Fourierovo transformacijo za \(f(x)= x\exp^{-x^2}\) in potem še določit konvolucijo te f(x) z lastno funkcijo fourierove transformiranke.

V tabeli je \(x^nf(x) = i^n \frac{\partial^n \widehat{f(\lambda)}} { \partial \lambda^n}\)

Kako pa se tega lotim brez tabele?
probal sem dvoje

1 integrirati po definiciji od nič do \(\infty\) pa ni najlepše

2 zapišem \(f(x) = -g'(x)g(x)\) pri čemer je g(x) lastna funkcija fourierove transformacije. Kako bi se tu izvil ??

uporabil bi lastnost \(g(t) = f(t)\exp^{iat} je \widehat{g}(\lambda) = \widehat{f}(\lambda - a)\) pa mislim, da se je ne da..

Konvolucijo potem ne bo težko dobiti.
Hvala

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

Re: Konvolucija

Post by Aniviller » 8.9.2012 16:47

No ta zveza za \(x^n f(x)\) je res dober nacin. To je ena izmed najbolj temeljnih lastnosti fourierove transformacije (to da spremeni odvod v mnozenje), isti postopek pa vseeno lahko izvedes tudi, ce tega pravila ne poznas: integriras per partes. 2. metoda te privede do per partesa: g'(x)g(x)=(g^2(x))'/2.

User avatar
shrink
Posts: 14570
Joined: 4.9.2004 18:45

Re: Konvolucija

Post by shrink » 8.9.2012 17:31

Do omenjene zveze prideš čisto enostavno preko odvajanja transformiranke po frekvenci; glej npr. (čisto na koncu):

http://fourier.eng.hmc.edu/e101/lecture ... node2.html

Post Reply