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.
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.