Testy pocatecni podminky

Obsah

Tak tady propereme vliv napocitani pocatecni podminky na vysledek. Pripominam, ze pocatecni podminku pocitame tak, ze vytvorime body inicializacni krivky na nejakem kroku, a pote podminku v kazdem bode bereme jako bodova vzdalenost od mnozniny bodu krivky. Naskyta se tedy otazka, jak ovlivnuje jemnost napocitane krivky konecny vysledek.

Test1: oblast 2x2 na kroku 0.015, kruznice pol. 0.5, cas mereni 0.11 na kroku 3e-5.
Test2: to same, ale na kroku 0.025 a casovem 8.34e-5
Test3: a to same, ale pro zmenu na 0.005 a casovem  3.33e-6

<numpoints, num-test1, num1-test2, num2-test3>
 << kruznice >>
15 - 30
20 - 35
25 - 40
30 - 45
35 - 50
presna podm.
Test2 0.025
7.02e-4
7.24e-4
7.05e-4
6.83e-4
6.93e-4
6.88e-4
Test1 0.015
3.51e-4
3.44e-4
3.44e-4
3.42e-4
3.41e-4
3.38e-4
Test3 0.005
3.34e-5
3.23e-5
3.20e-5
3.25e-5
3.20e-5
3.20e-5

Uvedene hodnoty jsou vzdalenosti od presneho reseni. Prvni radek udava max a min krok napocitane krivky v pomeru ke (krok_x+krok_y) / (hodnota z tabulky) : pro Test1 na prostorovem kroku 0.015x0.015 to znamena, ze napocitane body krivky maji od sebe vzdalenost mezi (0.03 / 30 = 0.001) a (0.03 / 15 = 0.002) na nejhrubsim kroku a 0.0006 az 0.0008 na nejlepsim kroku (posledni test). "Presna podminka" oznacuje test, kdy pocatecni podminka neni napocitana jako bodova vzdalenost, ale je napocitana explicitne. Na kroku 0.015 jiz vidime predpokladane zmensovani chyby pri zjemnovani  pocatecniho napocitavani a nejlepsiho vysledku opravdu dosahujeme na "presne podmince." Zlepseni je ovsem o rad nizsi a tudiz vicemene zanedbatelne. Krok 0.025 je jeste prilis hruby, ale take je videt tendence klesajici chyby. Vykyvy - asi mu lepe sedly body k mrizce. "Presnou podminku" lze povazovat ze nejlepsi dosazitelny vypocet a porovname-li jeho vysledek s bodove napocitanymi aproximacemi, tak lze konstatovat, ze chyba zpusobena bodovou aproximaci (na nami pouzivanem rozliseni) je zhruba o rad nizsi nez chyba a snizuje se navic s jemnosti mrizky.

A ted to same za pouziti nejakych veci, co urychli vypocet pocatecni podminky: konkretne 01 oznacujici ze podminka je nastavena jen na -1 nebo +1 podle toho, jestli je vevnitr nebo venku. Pak jsem zkusili tuto ostrou hranu vyhladit jakoby po primkach z bodu krivky v diskretnich smerech (po osach a uhlopricky).  Nejdrive na vzdalenost 0.15, 0.30 a 0.45 od krivky. O tom, ze to nefunguje svedci nasledujici tabulka.

<numpoints, num-test1, num1-test2, num2-test3, output.res>
 << kruznice >>
01
0.15
0.30
0.45
presna podm.

Test2 0.025
2.55e-3
3.77e-2
3.94e-2
3.94e-2
6.88e-4

Test1 0.015
1.76e-3
2.34e-2
2.36e-2
2.36e-2
3.38e-4

Test3 0.005
3.69e-4
7.69e-3
7.69e-3
7.69e-3
3.20e-5


Zajimavy je hlavne fakt, ze nejlepe vychazi 01 verze s ostrych prechodem. Pro kontrolu jsme jeste provedli jeden test, ktery kontroluje, jestli jsme nekd neudelali chybu - spocitali jsme L1-normu na pocatecni oblasti (0.25-1.75)x(0.25-1.75) od analytickeho reseni.

<numpoints, num-test1, num1-test2, num2-test3, output.norm>
 << kruznice >>
15 - 30
35 - 50
01
0.15
0.45
presna podm.
Test2 0.025
2.7e-4
2.6e-4
1.8
1.1e-1
5.8e-2
2.6e-4
Test1 0.015
9.2e-5
8.9e-5
1.8
1.0e-1
4.0e-2
8.8e-5
Test3 0.005
1.0e-6
0.0
1.8
9.9e-2
2.0e-2
0.0

Takze pocatecni podminky jsou dle ocekavani - nejhorsi pro 01, lepsi se s 0.15->0.45, a nejlepsi je presna podminka. Mensi potvrzeni toho, ze zalezi na presnem napocitani krivky kolem 0-hladiny a uz mene na okoli. Pro predstavu par obrazku, co to teda vlastne znamena.

presna podminka
01
0.45





Ted zkusime to same na anizotropii 3-foldu (tedy pouze pridana anizotropie). Jiz nemame presne reseni, takze chyby jsou vzhledem k nejpresnejsimu napocitanemu reseni (tedy 0.005 na "presne podmince", oznacen hvezdickou).
   
<numpoints1, num-test1, num1-test2, num2-test3>
 << aniz kruznice >>
15 - 30
20 - 35
25 - 40
30 - 45
35 - 50
presna podm.
Test2 0.025
6.01e-3
5.99e-3
5.99e-3
6.01e-3
6.01e-3
6.00e-3
Test1 0.015
1.18e-3
1.18e-3
1.19e-3
1.19e-3
1.19e-3
1.19e-3
Test3 0.005
2.50e-6
1.86e-6
1.32e-6
1.56e-6
1.41e-6
(0.00)*

Dle predpokladu se toho moc nezmenilo. Zkusime tedy zmenit pocatecni podminku z kruhu na "listecek" (N_FOLD = 3, tedy 6 ramen listku) a ponechame i anizotropii. Tentokrat uz neni nase radialni aproximace presna a je to opravdu aproximace (tomu rikam ujeta veta). Opet nemame presne reseni - tentokrat porovnavame k 0.005 na 35-50 (opet oznacen hvezdickou).

<numpoints2, num-test1, num1-test2, num2-test3>
 << aniz listecek >>
15 - 30
20 - 35
25 - 40
30 - 45
35 - 50
appr. podm.
Test2 0.025
2.55e-2
2.54e-2
2.55e-2
2.55e-2
2.55e-2
2.74e-2
Test1 0.015
3.57e-3
3.58e-3
3.58e-3
3.57e-3
3.57e-3
3.92e-3
Test3 0.005
8.34e-6
6.16e-6
1.41e-6
1.40e-6
(0.00)*
5.73e-5

Na zaver jsme se podivali, jak se vyvyji chyba v case - jestli se spise utlumuje, nebo naopak roste. Vybral jsem priklad z posledniho experimentu a porovnal jsem 35-50 s aproximaci (v tabulce hausdorf jednotlivych hladin).

Cas
0.0138
0.0275
0.0413
0.0550
0.0688
0.0825
Hausodrf 3.36e-4
2.27e-4
1.44e-4
9.00e-5
5.85e-5
5.73e-5


Chyba ma tedy spise tendenci se vyhlazovat.