@@ -20,83 +20,32 @@ x, y = first.(xy), last.(xy);
20
20
S = Z \ W # identity
21
21
22
22
23
- f = @. (cos (x * exp (y)))
24
-
25
- f[SVector (0.1 , 0.2 )]
26
- g = ((1 .- x .^ 2 .- y .^ 2 ) .* f)
27
- @time W \ g
28
-
29
- Z \ g
30
- N = 100
31
- S[Block .(1 : N), Block .(1 : N)] * (W\ g)[Block .(1 : N)]
32
-
33
-
34
- # F = factorize(Δ + k^2 * S)
35
- # c = Z \ f
36
- # F \ c
37
-
38
- # u = W * ((Δ + k^2 * S) \ (Z \ f))
39
-
40
-
41
- N = 20
42
23
k = 20
24
+ L = Δ + k^ 2 * S # discretisation of Helmholtz
43
25
f = @. (cos (x * exp (y)))
44
- c = Z \ f
45
- 𝐮 = (Δ+ k^ 2 * S)[Block .(1 : N), Block .(1 : N)] \ c[Block .(1 : N)]
46
- u = W[:, Block .(1 : N)] * 𝐮
47
- axes (u)
48
-
49
-
50
- ũ = Z / Z \ u
51
-
52
- ũ = Z / Z \ u
53
-
54
- ũ = (Z / Z) \ u
55
- ũ = inv (Z * inv (Z)) * u
56
- ũ = Z * (inv (Z) * u)
57
- ũ = Z * (Z \ u)
58
- # Z \ u means Find c s.t. Z*c == u
59
-
60
- sum (ũ .* f)
61
-
62
- W \ f
63
-
64
-
65
- sum (u .^ 2 * W \ f)
66
- norm (u)
67
26
27
+ u = W * (L \ (Z \ f))
68
28
surface (u)
69
29
70
- # Δ*u == λ*u
71
- # Z\Δ*W*𝐮 == λ*Z\W*𝐮
72
- # Δ*𝐮 == λ*S*𝐮
73
- Matrix (Δ[Block .(1 : N), Block .(1 : N)])
74
- eigvals (Matrix (Δ[Block .(1 : N), Block .(1 : N)]), Matrix (S[Block .(1 : N), Block .(1 : N)]))
75
30
76
- Z \ (x .* Z)
31
+ # One can also fix the discretisation size
77
32
33
+ N = 20
34
+ Zₙ = Z[:,Block .(1 : N)]
35
+ Wₙ = W[:,Block .(1 : N)]
36
+ Lₙ = L[Block .(1 : N),Block .(1 : N)]
78
37
38
+ u = Wₙ * (Lₙ \ (Zₙ \ f))
39
+ surface (u)
79
40
80
- # u = (1-x^2) * P^(1,1) * 𝐮 = W * 𝐮
81
- # v = (1-x^2) * P^(1,1) * 𝐯 = W * 𝐯
82
- # -<D*v,D*u>
83
- # -(D*v)'(D*u) == -𝐯'*(D*W)'D*W*𝐮
84
- # <v,u> == 𝐯'*W'W*𝐮
85
41
86
- P¹ = Jacobi (1 , 1 )
87
- W = Weighted (P¹)
88
- x = axes (W, 1 )
89
- D = Derivative (x)
90
- - (D * W)' * (D * W)
91
- W' W
42
+ # We can also do eigenvalues of the Laplacian
92
43
93
- # p-FEM
44
+ Δₙ = Δ[Block .(1 : N),Block .(1 : N)]
45
+ Sₙ = S[Block .(1 : N),Block .(1 : N)]
94
46
95
- P = Legendre ()
96
- u = P * [randn (5 ); zeros (∞)]
97
- u' * u
47
+ BandedMatrix (Δₙ)
98
48
99
- T[0.1 , 1 : 10 ]
100
- T' [1 : 10 , 0.1 ]
101
- axes (T' )
49
+ λ,Q = eigen (Symmetric (Matrix (Δₙ)), Symmetric (Matrix (Sₙ)))
102
50
51
+ surface (Wₙ * Q[:,end ])
0 commit comments