ζ(2k+1) nyomában

A Mathematica nagyházit készítette: Szöllősi Ferenc, 2. éves matematikus hallgató.

0. Abstract vagy ahogy tetszik: kivonat, motiváció, röviden a dolgozatról:

Mint ismeretes, ζ(s) előállítható zárt alakban minden páros pozitív egész s-re. Ez az eredmény Eulertől származik. De mit mondhatunk ζ(s)-ről, ha s páratlan? A számelmélet talán egyik legnagyobb megoldatlan sejtése, hogy vajon igaz-e, hogy minden páratlan egész 1-nél nagyobb s-re ζ(s) transzcendens? Párosra az állítás Euler eredményéből azonnal adódik.
Ebben a dolgozatban meghatározzuk a \(TraditionalForm\`∑\+\(k = 1\)\%\(+∞\)\((3  k - 2)\)\^\(-s\)\)illetve a \(TraditionalForm\`∑\+\(k = 1\)\%\(+∞\)\((3  k - 1)\)\^\(-s\)\)alakú kifejezések összegét zárt alakban tetszőleges nemnegatív páratlan egész s-re. Mint megmutatjuk, ezek az összegek minden megfelelő s-re (Subscript[Q, 1]) (Sqrt[3]) (π^s) + (Subscript[Q, 2]) ζ(
            3)alakban állnak elő, ahol (Subscript[Q, 1]) ,  (Subscript[Q, 2])racionális számok. Tehát ha sikerülne valamely úton-módon meghatározni ezen soroknak az összegét a jövőben úgy, hogy abban már nem szerepel maga a ζ(s)kifejezés, akkor ezen eredmények segítségével kifejezhető lenne maga ζ(s). Más szóval ζ(s) meghatározásához ,,elég'' csupán a fenti sorok összegét meghatározni.

Megjegyzés

Ha jól emlékszem valamely honlapon láttam egyszer egy ennél jóval általánosabb, Ramanujantól származó eredményt. Az állítás egy \(TraditionalForm\`∑\+\(k = 1\)\%\(+∞\)\((a\ k - b)\)\^\(-s\)\)alakú numerikus sorról szólt. Ennek azonban nem tudtam bővebben utánna járni.

1. A fő definíció, bemelegítésnek néhány egyszerűbb sorösszeg, egy jó trükk:

Definíció

ζ(
          s) := (∑_(k = 1)^∞) (1/(k^s)), ahol s > 1. Megjegyezzük, hogy ez egész komplex síkra kiterjeszthető analitikusan a ζ függvény (tehát olyan negatív egészekre is értelmezve van, ahol a sorösszeg formálisan divergens), egyetlen pólusa az s = 1-ben van.

Példa

Figyeljük meg, hogy ζ(-1)az formálisan az egész számok összege, ám az analitikus kiterjesztés miatt itt egy véges értéket kapunk.

Zeta[2]
Zeta[3]
Zeta[-1]
Zeta[1]

Definíció

Egy ζ(
          s) = (∑_(k = 1)^∞) (k^(-s))numerikus sor a k-szeletén mindig egy \(TraditionalForm\`∑\+\(k = 1\)\%∞\((a\ k - b)\)\^\(-s\)\)alakú sort értünk, ahol b  ∈  [0, a - 1], b egész.

Megjegyezzük, hogy amennyiben összegezzük az a k szeleteket minden szóba jöhető b-re, akkor ζ(s)-t kapjuk vissza. Ezt a következőkben fel fogjuk használni.

A \(TraditionalForm\`∑\+\(k = 1\)\%∞\((2  k)\)\^\(-s\)\)eset

Sejtés, avagy mit mutat a Mathematica?

(∑_(k = 1)^(+∞))(1/(((2  k))^s))

Most belátjuk a sejtést:

\(∑\+\(k = 1\)\%\(+∞\)1\/\((2  k)\)\^s = \(\(1\/2\^s\) \(∑\+\(k = 1\)\%\(+∞\)1\/k\^s\) = \(2\^\(-s\)\) ζ \((3)\)\)\)

A \(TraditionalForm\`∑\+\(k = 1\)\%∞\((2  k - 1)\)\^\(-s\)\)eset; egy hasznos trükk

Sejtés

(∑_(k = 1)^(+∞))(1/(((2  k - 1))^s))

Bizonyítás

Nem teszünk mást, mint felhasználunk egy korábbi eredményt, mi szerint a 2  k szeletek összege ζ(s).

\(∑\+\(k = 1\)\%\(+∞\)1\/\((2  k - 1)\)\^s = \(∑\+\(k = 1\)\%\(+∞\)1\/k\^s - ∑\+\(k = 1\)\%\(+∞\)1\/\((2  k)\)\^s = \(ζ \((3)\) - \(2\^\(-s\)\) ζ \((3)\) = \((1 - 
                2\^\(-s\))\) ζ \((3)\)\)\)\)

2.1. A fő eredményünk prezentálása s = 3-ra; előkészületek.

Egy trivializmus

\(∑\+\(k = 1\)\%\(+∞\)1\/\((3  k)\)\^3 = \(1\/27\) ζ \((3)\)\)

A \(TraditionalForm\`∑\+\(k = 1\)\%\(+∞\)\((3  k - 1)\)\^\(-3\)\)és a \(TraditionalForm\`∑\+\(k = 1\)\%\(+∞\)\((3  k - 2)\)\^\(-3\)\)esetek:

Sejtés:

(∑_(k = 1)^(+∞))(1/(((3  k - 1))^3))
(∑_(k = 1)^(+∞))(1/(((3  k - 2))^3))

Bizonyítás

A matematikusok körében ζ(2) meghatározása nemcsupán gyerekjáték. Trivializmus. Kiszámítására régóta ismert számos módszer, elemi, de olyanok is, amelyek ugyan bámulatosak, igen mélyek, és éppen ezért kevesek számára érthetőek. A komplex függvénytan egyik jelentős eredménye az ún. Residuum-tétel; komplex vonalinegrál segítségével könnyen, gyorsan meg tudjuk határozni bizonyos típusú végtelen sorok zárt alakját. Numerikus sorok vizsgálatának másik lehetséges módja a Fourier-analízis. Mi ezt az utat fogjuk követni. Az ötletünket az adta, hogy az (Subscript[f, 2])(x) = (x^2)függvény Fourier-sorfejtéséből megkaptuk mellékeredményként ζ(2)-t. Mi volna, ha megvizsgálnánk az (Subscript[f, 3])(x) = (x^3)függvényhez tartozó Fourier-sort?
Mindenekelőtt szükségünk lesz egy a céljainknak megfelelő sorfejtő programra. Ezt készítjük el a következőkben:

A MyFourier program

Ez a program egy előre definiált függvénynek készíti el a Fourier-együtthatóit. Az output egy háromelemű lista, amely elemei rendre a sin, a cos, illetve a konstans együtthatói.

MyFourier[f_] := 
      Assuming[k  ∈  Integers,  
        Simplify[
          Evaluate[{(1/π) (∫_(-π)^π) f[x] 
                    Sin[k x] \[DifferentialD]x, (1/π) (∫_(-π)^π) f[x] 
                    Cos[k x] \[DifferentialD]x, (1/π) (∫_(-π)^π) (1/2) f[x] \[DifferentialD]x}]]]

Egyik példa

Lényegében szemléletesen ellenőrizzük a programunk működését. Csupán erre a célra íródott, a továbbiakban nem használt függvény, amely az input Fourier-sorának n-dik részletösszegével tér vissza a következő:

ϕ[f_, n_] := 
      Module[{}, 
        Table[(Subscript[S, k]) = (1/π) (∫_(-π)^π) f[x] 
                  Sin[k x] \[DifferentialD]x, {k, 1, n}]; 
        Table[(Subscript[C, k]) = (1/π) (∫_(-π)^π) f[x] 
                  Cos[k x] \[DifferentialD]x, {k, 1, n}]; 
        (Subscript[A, 0]) = (1/π) (∫_(-π)^π) (1/2) 
                f[x] \[DifferentialD]x; 
(∑_(i = 1)^n) (Subscript[C, i]) Cos[i x] + (∑_(i = 1)^n) (Subscript[S, i]) Sin[i x] + 
          (Subscript[A, 0])]

f[x_] := (x^2) - x + 6

MyFourier[f]

ϕ[f, 5]

Plot[Evaluate[{f[x], ϕ[f, 2]}], {x, -π, π}, 
      PlotStyle -> {Hue[1], Hue[0.6]}]

Plot[Evaluate[{f[x], ϕ[f, 15]}], {x, -π, π}, 
      PlotStyle -> {Hue[1], Hue[0.6]}]

Másik példa

Külön felhívnánk a figyelmet arra, hogy a MyFourier program nem veszi figyelembe azokat az eseteket, ahol az integrálás során a nevezőbe 0 kerül. Az csak később fog kiderülni, hogy ez nem zavar majd minket a munkánk során, tekintettel arra, hogy mi végig polinomokkal foglalkozunk, ahol a nevező csak k = 0esetén tűnik el. Ennek a bizonyítása azonnal adódik a Fourier-sorfejtésből, mint algoritmusból. Ezt a hiányosságot illusztrálja a mostani példa, és a ,,Simplify''-t már nem tartalmazó MyFourier2 program. (A programot a továbbiakban nem használjuk.) Megjegyezzük még, hogy a ϕ függvény (lásd előző példa) minden tagra pontosan számítja az együtthatókat, ezért annak működését a MyFourier outputja nem befojásolja.

MyFourier2[f_] := 
      Assuming[k  ∈  Integers,  
        Evaluate[{(1/π) (∫_(-π)^π) f[x] 
                  Sin[k x] \[DifferentialD]x, (1/π) (∫_(-π)^π) f[x] 
                  Cos[k x] \[DifferentialD]x, (1/π) (∫_(-π)^π) (1/2) f[x] \[DifferentialD]x}]]

g[x_] := Cos[x] + Sin[2  x]

MyFourier[g]

ϕ[g, 12]

MyFourier2[g]

h[x_] := 12  (x^5) + α (x^2) + 3  β

MyFourier[h]

MyFourier2[h]

2.2. A fő eredményünk prezentálása s = 3-ra; Fourier-sorfejtés

Egy érdekes összefüggés

Amint azt föntebb már vázoltuk, a 3  k szeletek összege visszaadja ζ(s)-t. E szerint:

\(∑\+\(k = 1\)\%\(+∞\)1\/\((3  k)\)\^s + ∑\+\(k = 1\)\%\(+∞\)1\/\((3  k - 1)\)\^s + ∑\+\(k = 1\)\%\(+∞\)1\/\((3  k - 2)\)\^s = ζ \((s)\)\)

Innen viszont:

\(∑\+\(k = 1\)\%\(+∞\)1\/\((3  k - 1)\)\^s + ∑\+\(k = 1\)\%\(+∞\)1\/\((3  k - 2)\)\^s = \(ζ \((s)\) - \(1\/3\^s\) ζ \((s)\) = \(\(3\^s - 
                1\)\/3\^s\) ζ \((s)\)\)\)

Világos, hogy feladatunkkal készen vagyunk, ha meghatározzuk a fenti két végtelen sor különbségének a zárt alakját. A következőkben ezt az eredményt hozzuk ki:

Sejtés

(Subscript[f, 3])[x_] := (x^3)
MyFourier[(Subscript[f, 3])]
ϕ[(Subscript[f, 3]), 5]

Elnézve a MyFourier outputját, látható, hogy ebben a sorban vannak (Subscript[c, 1 ]) (k^(-3)), illetve (Subscript[c, 2]) (k^(-1))alakú tagok. Mi volna, ha megpróbállnánk olyan (természetesen harmadfokú) polinomot keresni, amelynek a Fourier-sorában csupán c (k^(-3))együtthatójú elemek vannak? Mi volna ha ezt éppen úgy választanánk, hogy |c|=1 teljesüljön? Ezt fogjuk tenni a következőkben:

Konstrukció

f[x_] := A (x^3) + B (x^2) + C x + D
MyFourier[f]

A MyFourier kiadta az együtthatókat. Nem kell mást tennünk, mint az A, B, C, D konstansokat úgy megválasztani, hogy csupán (k^(-3))alakú együtthatók legyenek a sorban. Ránézésre B = 0, és így D = 0választással nincsen sem konstansunk, sem (k^(-2))-es kitevőnk. Marad még A,  C megválasztása:

Solve[{A (π^2) + C == 0, -12 A == 1}, {A, 
        C}]

Definíció

A továbbiakban mindig (Subscript[F, s])(x) jelöli azt az s-ed fokú polinomot, amelynek Fourier-sora csupán (1/(k^s))abszolút értékű együtthatókból áll. Ezt a polinomot az s-hez tartozó főpolinomnak fogjuk nevezni.

Példa

Az s = 3értékhez tartozó főpolinom tehát:

(Subscript[F, 3])[
        x_] := -(1/12) (x^3) + (1/12) (π^2) 
          x
(Subscript[F, 3])[(π/3)]
MyFourier[(Subscript[F, 3])]
ϕ[(Subscript[F, 3]), 5]

A végső kardcsapás

Vegyük észre, hogy amint elvégezzük a főpolinomhoz tartozó Fourier-sorban az x = (π/3)helyettesítést, a 3  k hasú sinusok eltűnnek, és szerencsére \(TraditionalForm\`sin(\((3  k ± 1)\) π\/3) = \(sin(
            k\ π ± \ π\/3) = \(\(cos(
                k\ π)\)\ \(sin(π\/3)\) = \(\((\(-1\))\)\^k\) \@3\/2\)\)\), magyarul:

\(\(F\_3\) \((π\/3)\) = \(∑\+\(k = 1\)\%\(+∞\)\(\((\(-1\))\)\^\(k + 1\)\) \(1\/k\^s\) 
            Sin \((k\ π\/3)\) = \(∑\+\(k = 1\)\%\(+∞\)\(\((\(-1\))\)\^\(k + 1\)\) \(1\/\((3  k)\)\^s\) 
                0 + ∑\+\(k = 0\)\%\(+∞\)\(\((\(-1\))\)\^k\) \(1\/\((3  k + 1)\)\^s\) \(\((\(-1\))\)\^k\) \@3\/2 + ∑\+\(k = 1\)\%\(+∞\)\(\((\(-1\))\)\^\(k + 
                      1\)\) \(1\/\((3  k - 1)\)\^s\) \(\((\(-1\))\)\^k\) \@3\/2 = \(\@3\/2\) \((∑\+\(k = 1\)\%\(+∞\)1\/\((3  k - 2)\)\^s - ∑\+\(k = 1\)\%\(+∞\)1\/\((3  k - 1)\)\^s)\)\)\)\)

Mivel a Fourier-sorunk egyenletesen konvergál az összegfüggvényéhez a (-π, π) intervallumon, és az összegfüggvénye éppen az s = 3értékhez tartozó főpolinom, ezért kapjuk, hogy

\(∑\+\(k = 1\)\%\(+∞\)1\/\((3  k - 2)\)\^3 - ∑\+\(k = 1\)\%\(+∞\)1\/\((3  k - 1)\)\^3 = \(\(\(2 \@ 3\)\/3\) \(F\_3\) \((π\/3)\) = \(\(2 \@ 3\)\/3\ \(2\/81\) π\^3 = \(\(4 \@ 3\)\/243\) π\^3\)\)\)

Vegyük észre, hogy a fenti gondolatmenet lényegében független volt s megválasztásától. Azt használtuk csak ki, hogy létezik az (Subscript[F, 3])(x)főpolinom.
A feladatot megoldottuk, amint megmutatjuk, hogy létezik ilyen (Subscript[F, s])(x)főpolinom minden s ≥ 3páratlan egészre. Ekkor

\(∑\+\(k = 1\)\%\(+∞\)1\/\((3  k - 2)\)\^s - ∑\+\(k = 1\)\%\(+∞\)1\/\((3  k - 1)\)\^s = \(\(2 \@ 3\)\/3\) \(F\_s\) \(\((π\/3)\)\(.\)\)\)

Az eredmény:

A fejezet első eredményét alkalmazzuk s = 3-ra, adjuk hozzá, majd vonjuk ki belőle az utolsó eredményt. (1/2)-del szorozva, végül (Subscript[F, 3])((π/3))értékét beírva kapjuk, hogy:

\(∑\+\(k = 1\)\%\(+∞\)1\/\((3  k - 2)\)\^3 = \(\(13\/27\) ζ \((3)\) + \(\@3\/3\) \(F\_3\) \((π\/3)\) = \(13\/27\) ζ \((3)\) + \(\(2 \@ 3\)\/243\) π\^3\)\)
\(∑\+\(k = 1\)\%\(+∞\)1\/\((3  k - 1)\)\^3 = \(\(13\/27\) ζ \((3)\) - \(\@3\/3\) \(F\_3\) \((π\/3)\) = \(13\/27\) ζ \((3)\) - \(\(2 \@ 3\)\/243\) π\^3\)\)

Ellenőrzés

Simplify[(∑_(k = 1)^∞) (1/(((3  k - 1))^3)) - (13/27) Zeta[3] + ((2 (Sqrt[ 3]))/243) (π^3)]
Simplify[(∑_(k = 1)^∞) (1/(((3  k - 2))^3)) - (13/27) Zeta[3] - ((2 (Sqrt[ 3]))/243) (π^3)]

3. Általánosítás

Legyen s ≥ 3, páratlan egész. Az egyszerűség kedvéért adjunk értéket s-nek. Azért van szükség az értékadásra, hogy lefuthassanak az algoritmusaink.

s := 3;

Az (Subscript[F, s])(x) főpolinomok konstrukciója

Máris feltehetjük, hogy a főpolinom csupa páratlan fokú tagból áll. Ez abból következik, hogy a polinom domináns tagja páratlan fokú, és a Fourier-sorfejtésben csak a legmagasabb, s-ed fokú tagnak lesz (k^(-s))alakú az együtthatója.

f[x_] := (∑_(k = 0)^(((s - 1)/2)))(Subscript[a, 2  k + 1]) 
          (x^(2  k + 1))

MyFourier[f]

Most úgy választjuk meg a főpolinom együtthatóit, hogy annak Fourier-sora csak (1/(k^s))abszolút értékű együtthatókat tartalmazzon. Ehhez elkészítjük az X együttható listáját a fenti output számlálójának. Ehhez azonban normalizálnunk kell azt, ezért ilyen terjengős Xdefiníciója.

X = 
      CoefficientList[
        k^s/(((-1))^k)*MyFourier[
              f][[1]], k]

Természetesen azt szeretnénk, hogy a nulladfokú tag együtthatója legyen az egyetlen nemnulla együttható, így lesz a lehető legegyszerűbb a Fourier-sorunk:

S = 
      Flatten[Solve[
          Flatten[{X[[1]] == -1, Table[X[[i]] == 0, {i, 2, s}]}], 
          Table[(Subscript[a, i]), {i, 1, s, 2}]]]

És íme, a főpolinom:

(Subscript[F, s])[
        x_] := (∑_(k = 0)^(((s - 1)/2)))S[[
              k + 1]][[2]] (x^(2  k + 1))

(Subscript[F, 3])[x]

Példa

s = 11;
f[
          x_] := (∑_(k = 0)^(((s - 1)/2)))(Subscript[a, 2  k + 1]) 
            (x^(2  k + 1));
X = 
        CoefficientList[
          k^s/(((-1))^k)*MyFourier[
                f][[1]], 
          k];
S = 
        Flatten[Solve[
            Flatten[{X[[1]] == -1, Table[X[[i]] == 0, {i, 2, 
                    s}]}], Table[
              (Subscript[a, i]), {i, 1, s, 2}]]];
(Subscript[F, s])[
          x_] := (∑_(k = 0)^(((s - 1)/2)))S[[
                k + 1]][[2]] (x^(2  k + 1));
(Subscript[F, s])[x]

Implementáció

Az alábbiakban a fenti konstrukciól lépéseit összefűzzük. A MyFConstructor előállítja az inputhoz tartozó főpolinomot:

MyFConstructor[s_] := 
      Module[{}, 
        f[x_] := (∑_(k = 0)^(((s - 1)/2)))(Subscript[a, 2  k + 1]) 
              (x^(2  k + 1)); 
        X = CoefficientList[
            k^s/(((-1))^k)*MyFourier[
                  f][[1]], 
            k]; 
S = 
          Flatten[Solve[
              Flatten[{X[[1]] == -1, Table[X[[i]] == 0, {i, 2, 
                      s}]}], Table[
                (Subscript[a, i]), {i, 1, s, 2}]]]; 
(Subscript[F, s])[
            x_] := (∑_(k = 0)^(((s - 1)/2)))S[[
                  k + 1]][[2]] (x^(2  k + 1))]

Példa

MyFConstructor[3]
MyFConstructor[5]
(Subscript[F, 3])[x]
(Subscript[F, 5])[y + 2]

A játék vége. Íme az eredmény.

\(∑\+\(k = 1\)\%\(+∞\)1\/\((3  k - 2)\)\^s = \(\(3\^s - 
                1\)\/\(2*3\^s\)\) ζ \((s)\) + \(\@3\/3\) \(F\_s\) \((π\/3)\)\)
\(∑\+\(k = 1\)\%\(+∞\)1\/\((3  k - 1)\)\^s = \(\(3\^s - 
                1\)\/\(2*3\^s\)\) ζ \((s)\) - \(\@3\/3\) \(F\_s\) \((π\/3)\)\)
\(∑\+\(k = 1\)\%\(+∞\)1\/\((3  k)\)\^s = \(1\/3\^s\) ζ \((s)\)\)

All in one

Végül egy program, amely mindent elvégez helyettünk, kiszámítja megfelelő s értékekre a 3  k szeleteket. Az output egy {3  k - 2,  3  k - 1,  3  k} szeleteket tartalmazó lista.

\(MyMainResult[σ_] := 
      Module[{}, 
        MyMainResult::"hiba" = \ "Nem megfelelő argumentum a(z) `1` . A várt argumentum 1-nél nagyobb páratlan egész."; \ 
        If[TrueQ[
            And[σ > 1, σ\  ∈ \ Integers, 
              Mod[σ, 2] == 1]], 
          MyFourier[f_] := 
            Assuming[k\  ∈ \ Integers, \ 
              Simplify[
                Evaluate[{\(1\/π\) \(∫\_\(-π\)\%π f[x] 
                          Sin[k\ x] \[DifferentialD]x\), \(1\/π\) \(∫\_\(-π\)\%π f[x] 
                          Cos[k\ x] \[DifferentialD]x\), \(1\/π\) \(∫\_\(-π\)\%π\( 1\/2\) f[x] \[DifferentialD]x\)}]]]; 
          MyFConstructor[s_] := 
            Module[{}, 
              f[x_] := ∑\+\(k = 0\)\%\(\(s - 1\)\/2\)\(a\_\(2  k + 1\)\) 
                    x\^\(2  k + 1\); 
              X = CoefficientList[
                  k^s/\((\(-1\))\)\^k*\(MyFourier[
                        f]\)[[1]], 
                  k]; 
S = 
                Flatten[
                  Solve[Flatten[{X[[1]] == \(-1\), Table[X[[i]] == 
                            0, {i, 2, s}]}], 
                    Table[a\_i, {i, 1, s, 2}]]]; 
F\_s[
                  x_] := ∑\+\(k = 0\)\%\(\(s - 1\)\/2\)\(S[[k + 
                          1]]\)[[2]] x\^\(2  k + 1\)]; 
          MyFConstructor[σ]; {\(\(3\^σ - 
                      1\)\/\(2*3\^σ\)\) Zeta[σ] + \(\@3\/3\) 
                F\_σ[π\/3], \(\(3\^σ - 
                      1\)\/\(2*3\^σ\)\) Zeta[σ] - \(\@3\/3\) 
                F\_σ[π\/3], \(1\/3\^σ\) Zeta[σ]}, 
          Message[MyMainResult::"hiba", σ]]]\)

Példa

MyMainResult /@ {2, E, 3, 5, 13}

Ellenőrzés

Expand[{(∑_(k = 1)^(+∞))(1/(((3  k - 2))^3)), (∑_(k = 1)^(+∞))(1/(((3  k - 1))^3)), (∑_(k = 1)^(+∞))(1/(((3  k))^3))}]

Expand[{(∑_(k = 1)^(+∞))(1/(((3  k - 2))^5)), (∑_(k = 1)^(+∞))(1/(((3  k - 1))^5)), (∑_(k = 1)^(+∞))(1/(((3  k))^5))}]

Expand[{(∑_(k = 1)^(+∞))(1/(((3  k - 2))^13)), (∑_(k = 1)^(+∞))(1/(((3  k - 1))^13)), (∑_(k = 1)^(+∞))(1/(((3  k))^13))}]

4. Végszó

A dolgozat kizárólag saját ötletből táplálkozott.
Köszönet illeti Fritz Józsefné Tanárnőt, aki a szerzőt bevezette az alapvető Fourier-elméletbe.
Köszönet illeti továbbá Tóth János Tanár Urat, aki szemet hunyt a szerző néhány ,,hanyagsága felett'', és határidőn túl is elfogadta dolgozatát.
Végül szeretnék köszönetet mondani Menkó Zsuzsinak, aki nem hagyta, hogy teljesen elkallódjak.