/ Forside / Karriere / Uddannelse / Højere uddannelser / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Højere uddannelser
#NavnPoint
Nordsted1 1588
erling_l 1224
ans 1150
dova 895
gert_h 800
molokyle 661
berpox 610
creamygirl 610
3773 570
10  jomfruane 570
Rekursivt definerede funktioner
Fra : kristiandamm@gmail.c~


Dato : 14-06-06 09:49

Jeg har - i arbejdssammenhæng - et problem med en rekursivt defineret
funktion.

Funktionen er (groft sagt) af formen

g_i(x) = \int_a^x g_{i-1} (f(x, i, t))\cdot h(x, i, t) dt

Hvis det ikke virker skræmmende, så læg over i at der ikke ét men
tre integraler og at såvel f som h er ganske komplekse i sig selv. Og
så indgår g_i endda i definitionen af en anden funktion, hvori der
integreres over g_i.

Det hele skal løses numerisk, så jeg kunne naturligvis blot lade
maskinen regne løs - men det skulle jo også helst terminere inden
jul; skidtet skal indgå i en on-line applikation.

Jeg vil derfor meget gerne kunne forsimple udtrykket, fx ved at
eliminere rekursionen. Er det muligt? Findes der nogle teknikker til
det formål?

På forhånd tak,
Kristian


 
 
Michael Zedeler (14-06-2006)
Kommentar
Fra : Michael Zedeler


Dato : 14-06-06 10:04

kristiandamm@gmail.com wrote:
> Jeg har - i arbejdssammenhæng - et problem med en rekursivt defineret
> funktion.
>
> Funktionen er (groft sagt) af formen
>
> g_i(x) = \int_a^x g_{i-1} (f(x, i, t))\cdot h(x, i, t) dt
>
> Hvis det ikke virker skræmmende, så læg over i at der ikke ét men
> tre integraler og at såvel f som h er ganske komplekse i sig selv. Og
> så indgår g_i endda i definitionen af en anden funktion, hvori der
> integreres over g_i.
>
> Det hele skal løses numerisk, så jeg kunne naturligvis blot lade
> maskinen regne løs - men det skulle jo også helst terminere inden
> jul; skidtet skal indgå i en on-line applikation.
>
> Jeg vil derfor meget gerne kunne forsimple udtrykket, fx ved at
> eliminere rekursionen. Er det muligt? Findes der nogle teknikker til
> det formål?

Jeg kender ikke til nogen metoder til at eliminere rekursionen, men jeg
synes at din funktion ligner noget andet, jeg har set før.

Har du prøvet at omskrive din funktion på denne måde:

g_i(x) = \int_a^(a+delta) g_{i-1} (f(x, i, t))\cdot h(x, i, t) dt
+ \int_(a+delta)^x g_{i-1} (f(x, i, t))\cdot h(x, i, t) dt

(0 < delta << 1) og efterfølgende rækkeudvikle det øverste udtryk i a?

Mvh. Michael.
--
Which is more dangerous? TV guided missiles or TV guided families?
I am less likely to answer usenet postings by anonymous authors.
Visit my home page at http://michael.zedeler.dk/

Henning Makholm (14-06-2006)
Kommentar
Fra : Henning Makholm


Dato : 14-06-06 14:12

Scripsit "kristiandamm@gmail.com" <kristiandamm@gmail.com>

> Funktionen er (groft sagt) af formen

> g_i(x) = \int_a^x g_{i-1} (f(x, i, t))\cdot h(x, i, t) dt

> Jeg vil derfor meget gerne kunne forsimple udtrykket, fx ved at
> eliminere rekursionen. Er det muligt?

Hvis du kan nå nogen vegne overhovedet, må det blive ved at udnytte at
dine funktioner f og h har specielle former som muliggør en
simplificering. Jeg har vanskeligt ved at forestille mig noget der
hjælper i det gennerelle tilfælde: rummet af underlige ting man kan
specificere i den form ved at vælge passende f og h, forekommer at
være alt for stort.

--
Henning Makholm "En tapper tinsoldat. En dame i
spagat. Du er en lykkelig mand ..."

Carsten Svaneborg (14-06-2006)
Kommentar
Fra : Carsten Svaneborg


Dato : 14-06-06 19:17

kristiandamm@gmail.com wrote:
> Funktionen er (groft sagt) af formen
> g_i(x) = \int_a^x g_{i-1} (f(x, i, t))\cdot h(x, i, t) dt

Hvis funktionen f er monoton, så kan du lave en variabel
substitution så g_i kan skrives som en konvolution mellem g_i-1
og så en ny funktion F(r). Fourier transformation giver så en
simpel multiplikativ relation g_i(k) = g_i-1(k) F_i-1(k) i
stedet for et selv-referende integral.

Itererer du får du g_i(k) = g_0(k)*F0(k)F1(k)..Fi(k) og så er
spørgsmålet om grænsen g_eq(k)=g_i(k) for i->oo eksisterer.


En anden måde at tænke på problemet på er at g_i(x) = O g_i-1(x)
hvor O er en operator defineret ved integralet ovenover.

Hvis der findes en ligevægtsløsning så iteration konvergerer
mod g_eq(x) så må der gælde g_eq = g_i+1(x) = O g_i(x) = g_i (x)
for store i.

(O-1I) g_eq = 0 hvilket betyder at operatoren O har egenværdien
1 med egenvektor g_eq, som du ønsker.

Så du kan også gøre nytte af tricks for at finde egenvektorer,
f.eks. omskrive O så længe egenvektoren g_eq er bevaret.

--
Mvh. Carsten Svaneborg
http://gauss.ffii.org softwarepatent database

Carsten Svaneborg (14-06-2006)
Kommentar
Fra : Carsten Svaneborg


Dato : 14-06-06 19:35

kristiandamm@gmail.com wrote:
> Jeg har - i arbejdssammenhæng - et problem med en rekursivt defineret
> funktion.

Forøvrigt.

Væske teori (liquid state theory) er fyldt med rekursive integraler.
Årsagen er hvis du ønsker at vide hvordan partikkel 1 og 2 vekselvirker
så kan man ikke nøjes med den direkte vekselvirkning.

I en væske er tætheden høj, og der er mange vekselvirkende naboer.
1 kan f.eks. vekselvirke med en partikkel 3, og 3 kan vekselvirke
med 2, og det giver et hieraki af højreordens indirekte vekselvirkninger
beskrevet igennem korrelationsfunktioner, som man må håndterer og
det sker ved at Fourier transformerer.

Ornstein Zernike ligningen er en rekursiv ligning, der kan løses når
den suppleres med en "closure relation". Som keyword kig evt. på
Baxter faktorisationsteknik, jeg ved ikke helt præcist hvad det går
ud på, men den anvendes ofte til ligninger af OZ typen.

--
Mvh. Carsten Svaneborg
http://gauss.ffii.org softwarepatent database

Niels L Ellegaard (17-06-2006)
Kommentar
Fra : Niels L Ellegaard


Dato : 17-06-06 17:35

Carsten Svaneborg skrev:

> kristiandamm@gmail.com wrote:
> > Funktionen er (groft sagt) af formen
> > g_i(x) = \int_a^x g_{i-1} (f(x, i, t))\cdot h(x, i, t) dt
>
> Hvis funktionen f er monoton, så kan du lave en variabel
> substitution så g_i kan skrives som en konvolution mellem g_i-1
> og så en ny funktion F(r). Fourier transformation giver så en
> simpel multiplikativ relation g_i(k) = g_i-1(k) F_i-1(k) i
> stedet for et selv-referende integral.

Jeg kan ikke helt følge med. Hvis f er tilpas pæn og monoton jeg få
en ligning på følgende form

g_i(x) = \int df g_{i-1} (f)\cdot H_i(x, f) df

Her er H_i en passende funktion der sørger for at det hele virker. Men
så vidt jeg kan se har du brug for ekstra antagelser før du man kan
skrive ligningen om til noget der ligner Ornstein Zernike.

http://en.wikipedia.org/wiki/Fredholm_integral_equation

Numerical recipies anviser nogle måder at diskretisere på, så man
kan

http://www.library.cornell.edu/nr/bookcpdf/c18-1.pdf

Med hensyn til det oprindelige spørgsmål, så ville jeg starte med at
bruge brute force til at udregne dine g_i'er en ad gangen. Dette
kræver at du diskretiserer integralet og erstatter det med et sum, så
du får en matrixligning. Prøv at lave to kørsler hvor du
diskretiserer med forskellig nøjagtighed og se om du få det samme
resulat.

Hvis brute force virker, så behøver du ikke bruge tid på at prøve
at lave noget smart.
Hvis brute force ikke virker, så får du i det mindste en mulighed for
at se hvor der går galt. Men der jo også længe til jul.....


Niels


Carsten Svaneborg (17-06-2006)
Kommentar
Fra : Carsten Svaneborg


Dato : 17-06-06 18:27

Niels L Ellegaard wrote:
> http://en.wikipedia.org/wiki/Fredholm_integral_equation

Det kendte jeg ikke til. Men tricket med Fourier transformation
virker kun hvis det er convolutions, der er på spil, hvilket
kræver at H_i(x,t) kan skrives H_i(x-t).

--
Mvh. Carsten Svaneborg
http://gauss.ffii.org softwarepatent database

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste