Mátrixhatvány-vektor szorzatok hatékony számítása Izsák Ferenc ELTE TTK, Alkalmazott Analízis és Számításmatematikai Tanszék & ELTE-MTA NumNet Kutatócsoport munkatárs: Szekeres Béla János Alkalmazott Analízis és Számításmatematikai Tanszék Szemináriuma Budapest, 2018. március 5.
A törtrendű diffúzió egyenlete A vizsgált feladat { t u(t, x) = ( D ) α u(t, x) x Ω, t (0, T ) u(0, x) = u 0 x Ω, (1) ahol
A törtrendű diffúzió egyenlete A vizsgált feladat { t u(t, x) = ( D ) α u(t, x) x Ω, t (0, T ) u(0, x) = u 0 x Ω, (1) ahol Ω R d, u 0 L 2 (Ω), α > 0 adottak,
A törtrendű diffúzió egyenlete A vizsgált feladat { t u(t, x) = ( D ) α u(t, x) x Ω, t (0, T ) u(0, x) = u 0 x Ω, (1) ahol Ω R d, u 0 L 2 (Ω), α > 0 adottak, D az Ω-n értelmezett Dirichlet-Laplace operátor.
A törtrendű diffúzió egyenlete A vizsgált feladat { t u(t, x) = ( D ) α u(t, x) x Ω, t (0, T ) u(0, x) = u 0 x Ω, (1) ahol Ω R d, u 0 L 2 (Ω), α > 0 adottak, D az Ω-n értelmezett Dirichlet-Laplace operátor. ( D ) α értelmes.
A törtrendű diffúzió egyenlete A vizsgált feladat { t u(t, x) = ( D ) α u(t, x) x Ω, t (0, T ) u(0, x) = u 0 x Ω, (1) ahol Ω R d, u 0 L 2 (Ω), α > 0 adottak, D az Ω-n értelmezett Dirichlet-Laplace operátor. ( D ) α értelmes. Ez egy lehetséges "jó" modell (SZB, IF; AML 17).
Numerikus megoldás: egy ötlet Mártixtranszformációs módszer (MTM):
Numerikus megoldás: egy ötlet Mártixtranszformációs módszer (MTM): Ha D A, akkor ( D ) α A α.
Numerikus megoldás: egy ötlet Mártixtranszformációs módszer (MTM): Ha D A, akkor ( D ) α A α. Ez jónak látszik (VD és VE disztkretizációra is). [Ilić,.. 05, 06]
Numerikus megoldás: egy ötlet Mártixtranszformációs módszer (MTM): Ha D A, akkor ( D ) α A α. Ez jónak látszik (VD és VE disztkretizációra is). [Ilić,.. 05, 06] VD eset: Ez valóban h szerint másodrendű konzisztenciát biztosít, időben implicit Euler módszerrel pedig O(δ) + O(h 2 ) konvergenciát L 2 -normában minden α R + és max-normában minden α 1 esetén (Sz.B., I.F., CAMWA 16).
Numerikus megoldás: egy ötlet Mártixtranszformációs módszer (MTM): Ha D A, akkor ( D ) α A α. Ez jónak látszik (VD és VE disztkretizációra is). [Ilić,.. 05, 06] VD eset: Ez valóban h szerint másodrendű konzisztenciát biztosít, időben implicit Euler módszerrel pedig O(δ) + O(h 2 ) konvergenciát L 2 -normában minden α R + és max-normában minden α 1 esetén (Sz.B., I.F., CAMWA 16). VE eset: Az f = ( D ) α elliptikus peremérték feladatra L 2 -normában optimális rendben (szuper) konvergál (Sz.B., I.F., JCAM 16).
Numerikus megoldás formulákkal - példa Az eredeti (1) feladatra térben MTM, időben explicit Euler:
Numerikus megoldás formulákkal - példa Az eredeti (1) feladatra térben MTM, időben explicit Euler: un+1 u n δ A α u n u n+1 = u n δa α u n, ahol
Numerikus megoldás formulákkal - példa Az eredeti (1) feladatra térben MTM, időben explicit Euler: un+1 u n δ A α u n u n+1 = u n δa α u n, ahol δ - időlépés, u n - numerikus közelítés nδ-ban.
Numerikus megoldás formulákkal - példa Az eredeti (1) feladatra térben MTM, időben explicit Euler: un+1 u n δ A α u n u n+1 = u n δa α u n, ahol δ - időlépés, u n - numerikus közelítés nδ-ban. Bírálat: nagyon lassú A α nehezen kiszámítható.
Numerikus megoldás formulákkal - példa Az eredeti (1) feladatra térben MTM, időben explicit Euler: un+1 u n δ A α u n u n+1 = u n δa α u n, ahol δ - időlépés, u n - numerikus közelítés nδ-ban. Bírálat: nagyon lassú A α nehezen kiszámítható. Igen: A ritka, A α telt mátrix.
Numerikus megoldás formulákkal - példa Az eredeti (1) feladatra térben MTM, időben explicit Euler: un+1 u n δ A α u n u n+1 = u n δa α u n, ahol δ - időlépés, u n - numerikus közelítés nδ-ban. Bírálat: nagyon lassú A α nehezen kiszámítható. Igen: A ritka, A α telt mátrix. Ötlet: de a fentihez A α nem is kell, számoljunk A α w szorzatokat közvetlenül.
Első próbálkozások Írjuk fel A α értékét Taylor sorral:
Első próbálkozások Írjuk fel A α értékét Taylor sorral: ( ) σ(a) α ( ) 2A α ( ) σ(a) α ( ) ( ) α 2A j A α = = 2 σ(a) 2 j σ(a) I. j=0
Első próbálkozások Írjuk fel A α értékét Taylor sorral: ( ) σ(a) α ( ) 2A α ( ) σ(a) α ( ) ( ) α 2A j A α = = 2 σ(a) 2 j σ(a) I. j=0 Közelítsünk, írjuk be tagonként w-t: ( ) σ(a) α K ( ) ( ) α 2A j A α w 2 j σ(a) I w. j=0
Első próbálkozások Írjuk fel A α értékét Taylor sorral: ( ) σ(a) α ( ) 2A α ( ) σ(a) α ( ) ( ) α 2A j A α = = 2 σ(a) 2 j σ(a) I. j=0 Közelítsünk, írjuk be tagonként w-t: ( ) σ(a) α K ( ) ( ) α 2A j A α w 2 j σ(a) I w. j=0
Első próbálkozások Írjuk fel A α értékét Taylor sorral: ( ) σ(a) α ( ) 2A α ( ) σ(a) α ( ) ( ) α 2A j A α = = 2 σ(a) 2 j σ(a) I. j=0 Közelítsünk, írjuk be tagonként w-t: ( ) σ(a) α K ( ) ( ) α 2A j A α w 2 j σ(a) I w. j=0 Az egyes tagok gyorsan számíthatók: ( ) ( ) α 2A j+1 j + 1 σ(a) I w = α j j + 1 ( 2A σ(a) I )( ) ( ) α 2A j j σ(a) I
Első próbálkozások Írjuk fel A α értékét Taylor sorral: ( ) σ(a) α ( ) 2A α ( ) σ(a) α ( ) ( ) α 2A j A α = = 2 σ(a) 2 j σ(a) I. j=0 Közelítsünk, írjuk be tagonként w-t: ( ) σ(a) α K ( ) ( ) α 2A j A α w 2 j σ(a) I w. j=0 Az egyes tagok gyorsan számíthatók: ( ) ( ) α 2A j+1 j + 1 σ(a) I w = α j j + 1 ( 2A σ(a) I azaz új tag az összegben: egy ritka mátrix-vektor szorzás. )( ) ( ) α 2A j j σ(a) I
Első próbálkozások Írjuk fel A α értékét Taylor sorral: ( ) σ(a) α ( ) 2A α ( ) σ(a) α ( ) ( ) α 2A j A α = = 2 σ(a) 2 j σ(a) I. j=0 Közelítsünk, írjuk be tagonként w-t: ( ) σ(a) α K ( ) ( ) α 2A j A α w 2 j σ(a) I w. j=0 Az egyes tagok gyorsan számíthatók: ( ) ( ) α 2A j+1 j + 1 σ(a) I w = α j j + 1 ( 2A σ(a) I azaz új tag az összegben: egy ritka mátrix-vektor szorzás. )( ) ( ) α 2A j j σ(a) I Izsák Ferenc ELTE De sok TTK, tag kell. Alkalmazott Analízis Mátrixhatvány-vektor és Számításmatematikai szorzatok hatékony számítása Tanszék &
A hiba, javítandó részletek A hiba mérése minden esetben err = Aw A 0.7 A 0.3 w max.
A hiba, javítandó részletek A hiba mérése minden esetben err = Aw A 0.7 A 0.3 w max. A: másodrendű közelítése
A hiba, javítandó részletek A hiba mérése minden esetben err = Aw A 0.7 A 0.3 w max. A: másodrendű közelítése (0, π) 2 100 100-as felosztásán
A hiba, javítandó részletek A hiba mérése minden esetben err = Aw A 0.7 A 0.3 w max. A: másodrendű közelítése (0, π) 2 100 100-as felosztásán homogén Dirichlet- (D) és Neumann-peremfeltétellel (N )
A hiba, javítandó részletek A hiba mérése minden esetben err = Aw A 0.7 A 0.3 w max. A: másodrendű közelítése (0, π) 2 100 100-as felosztásán homogén Dirichlet- (D) és Neumann-peremfeltétellel (N ) K 10 100 1000 10000 100000 err, N 648 56 5, 28 0, 51 0, 0515 err, D 630 54 4, 57 0, 46 7 10 9 idő[s] 0, 005 0, 0167 0, 1255 0, 99 9, 87
A hiba, javítandó részletek A hiba mérése minden esetben err = Aw A 0.7 A 0.3 w max. A: másodrendű közelítése (0, π) 2 100 100-as felosztásán homogén Dirichlet- (D) és Neumann-peremfeltétellel (N ) K 10 100 1000 10000 100000 err, N 648 56 5, 28 0, 51 0, 0515 err, D 630 54 4, 57 0, 46 7 10 9 idő[s] 0, 005 0, 0167 0, 1255 0, 99 9, 87 Nagy és kicsi sajátértékek okozzák: sp A [ 1, 1]
A hiba, javítandó részletek A hiba mérése minden esetben err = Aw A 0.7 A 0.3 w max. A: másodrendű közelítése (0, π) 2 100 100-as felosztásán homogén Dirichlet- (D) és Neumann-peremfeltétellel (N ) K 10 100 1000 10000 100000 err, N 648 56 5, 28 0, 51 0, 0515 err, D 630 54 4, 57 0, 46 7 10 9 idő[s] 0, 005 0, 0167 0, 1255 0, 99 9, 87 Nagy és kicsi sajátértékek okozzák: sp A [ 1, 1] Neumann-peremfeltétel:
Ötlet javításra Válasszuk le a nagy és kicsi sajátértékeket, -vektorokat:
Ötlet javításra Válasszuk le a nagy és kicsi sajátértékeket, -vektorokat: Az általuk kifeszített altérben közvetlen hatványozás.
Ötlet javításra Válasszuk le a nagy és kicsi sajátértékeket, -vektorokat: Az általuk kifeszített altérben közvetlen hatványozás. A kiegészítő altérben a Taylor-közelítés hatékonyabb lesz.
Ötlet javításra Válasszuk le a nagy és kicsi sajátértékeket, -vektorokat: Az általuk kifeszített altérben közvetlen hatványozás. A kiegészítő altérben a Taylor-közelítés hatékonyabb lesz. Formálisan a Q k : R N span { } v 1,..., v j, v N k j+1,..., v N vetítéssel: ( ) σ(a) α (( ) 2A α ( ) 2A α A α w = Q k w + (w Q k w)). 2 σ(a) σ(a)
Az algoritmus A-hoz a legkisebb j db és legnagyobb k j db sajátérték, sajátvektor kiszámítása.
Az algoritmus A-hoz a legkisebb j db és legnagyobb k j db sajátérték, sajátvektor kiszámítása. Q k meghatározása (egy mátrix-összeállítás).
Az algoritmus A-hoz a legkisebb j db és legnagyobb k j db sajátérték, sajátvektor kiszámítása. Q k meghatározása (egy mátrix-összeállítás). A α Q k w meghatározása: Q k w = a 1 v 1 +... a N v N A α Q k w = a 1 λ α 1 v 1 + + a N λ α N v N.
Az algoritmus A-hoz a legkisebb j db és legnagyobb k j db sajátérték, sajátvektor kiszámítása. Q k meghatározása (egy mátrix-összeállítás). A α Q k w meghatározása: Q k w = a 1 v 1 +... a N v N A α Q k w = a 1 λ α 1 v 1 + + a N λ α N v N. A α (w Q k w) közelítése: ( ) σ(a) α K ( ) ( ) α 2A j A α (w Q k w) 2 j σ(a) I (w Q k w). j=0
Az algoritmus A-hoz a legkisebb j db és legnagyobb k j db sajátérték, sajátvektor kiszámítása. Q k meghatározása (egy mátrix-összeállítás). A α Q k w meghatározása: Q k w = a 1 v 1 +... a N v N A α Q k w = a 1 λ α 1 v 1 + + a N λ α N v N. A α (w Q k w) közelítése: ( ) σ(a) α K ( ) ( ) α 2A j A α (w Q k w) 2 j σ(a) I (w Q k w). j=0 A α w = A α Q k w + A α (w Q k w)
Numerikus kísérletek I. Mi legyen K, k, j értéke adott pontossághoz?
Numerikus kísérletek I. Mi legyen K, k, j értéke adott pontossághoz? Milyen pontosság kell? Milyen A struktúrája?
Numerikus kísérletek I. Mi legyen K, k, j értéke adott pontossághoz? Milyen pontosság kell? Milyen A struktúrája? Az analitikus becslés nagyon pesszimista.
Numerikus kísérletek I. Mi legyen K, k, j értéke adott pontossághoz? Milyen pontosság kell? Milyen A struktúrája? Az analitikus becslés nagyon pesszimista. j = k/2 javasolható.
Numerikus kísérletek I. Mi legyen K, k, j értéke adott pontossághoz? Milyen pontosság kell? Milyen A struktúrája? Az analitikus becslés nagyon pesszimista. j = k/2 javasolható. Sajátrendszer legyen pontos!
Numerikus kísérletek I. Mi legyen K, k, j értéke adott pontossághoz? Milyen pontosság kell? Milyen A struktúrája? Az analitikus becslés nagyon pesszimista. j = k/2 javasolható. Sajátrendszer legyen pontos! eigs.m - beépített MATLAB-szubrutin: gyenge.
Numerikus kísérletek I. Mi legyen K, k, j értéke adott pontossághoz? Milyen pontosság kell? Milyen A struktúrája? Az analitikus becslés nagyon pesszimista. j = k/2 javasolható. Sajátrendszer legyen pontos! eigs.m - beépített MATLAB-szubrutin: gyenge. jdcg.m - ez egész jó - 2001.
Numerikus kísérletek I. Mi legyen K, k, j értéke adott pontossághoz? Milyen pontosság kell? Milyen A struktúrája? Az analitikus becslés nagyon pesszimista. j = k/2 javasolható. Sajátrendszer legyen pontos! eigs.m - beépített MATLAB-szubrutin: gyenge. jdcg.m - ez egész jó - 2001. chdav.m - ez a nyerő (jó paraméterrel) -2005.
Numerikus kísérletek II. táblázat: Kísérleti eredmények: d = 2, N, N = 60 α = 0.3. k K számítási idő [s] err r 20 2000 0.568 1.88 10 4 20 20 0.544 13.3 20 200 0.526 9.75 10 3 20 20000 1.23 2.00 10 4 20 200000 8.88 1.96 10 4 40 2000 1.21 1.88 10 4 40 20000 1.78 2.36 10 4 16 2000 0.44 1.72 10 5 12 2000 0.36 2.05 10 5 16 20000 1.16 1.91 10 10
Numerikus kísérletek III. - a lényeg táblázat: A α w kiszámítása a régi és az új módszerrel: d = 3, N, j = 8, α = 0.3; mértékegységek: idő[s], mem[mb]. mpower(a, α)w új módszer N idő:a α idő: w mem err idő:a α w mem err 10 0.28 0.002 16 2 10 11 0.132 0.12 5 10 12 20 145.9 0.80 10 3 5 10 10 0.84 0.99 3 10 11 25 1251 128 2 10 3 4 10 11 3.14 5 7.9 10 12 30 >36h?? > 10 4?? 13.5 16 8.2 10 12
Megfigyelések - MATLAB Ritka mátrix számmal való szorzása lassú.
Megfigyelések - MATLAB Ritka mátrix számmal való szorzása lassú. Volna mit finomítani a sajátrendszerek közelítésén.
Megfigyelések - MATLAB Ritka mátrix számmal való szorzása lassú. Volna mit finomítani a sajátrendszerek közelítésén. Nem érdemes 8-10-nél több sajátértéket meghatározni.
Megfigyelések - MATLAB Ritka mátrix számmal való szorzása lassú. Volna mit finomítani a sajátrendszerek közelítésén. Nem érdemes 8-10-nél több sajátértéket meghatározni. 3 dimenzióban pontosabb a közelítés, mint 2-ben.
Köszönöm a figyelmet!