Numerical Methods Contents - SAM
Numerical Methods Contents - SAM
Numerical Methods Contents - SAM
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Local quadrature error (for f ∈ C 2 ([a,b])):<br />
10000<br />
9000<br />
❸<br />
(local mesh refinement)<br />
∫ x k<br />
f(t) dt − 1 2 (f(x k−1) + f(x k ))<br />
x k−1<br />
≤ (x k − x k−1 ) 3 ∥ ∥f ′′∥ ∥ L ∞ ([x k−1 ,x k ]) .<br />
➣ Do not use equidistant mesh !<br />
Refine M, where |f ′′ | large !<br />
f(t)<br />
8000<br />
7000<br />
6000<br />
5000<br />
4000<br />
3000<br />
2000<br />
1000<br />
f(t) = 1<br />
10 −4 +t 2<br />
S := {k ∈ {1,...,m}: EST k ≥ η · 1 m∑<br />
EST<br />
m j } , η ≈ 0.9 . (10.6.3)<br />
j=1<br />
new mesh: M ∗ := M ∪ {p k : k ∈ S} .<br />
Then continue with step ❶ and mesh M ← M ∗ .<br />
Makes sense, e.g., for “spike function” ✄ 0<br />
−1 −0.5 0 0.5 1<br />
✬<br />
Goal:<br />
Tool:<br />
Policy:<br />
✫<br />
Equilibrate error contributions of all mesh intervals<br />
Local a posteriori error estimation<br />
(Estimate contributions of mesh intervals from intermediate results)<br />
Local mesh refinement<br />
t<br />
Fig. 117<br />
✸<br />
✩<br />
Ôº½¿<br />
Ôº½ ½¼º<br />
Adaptive multigrid quadrature → [13, Sect. 9.7]<br />
11 i f ( ( e r r _ t o t > r t o l ∗abs ( I ) ) and ( e r r _ t o t > a b s t o l ) )<br />
½¼º<br />
✪<br />
10 %<br />
Non-optimal recursive MATLAB implementation:<br />
Code 10.6.2: h-adaptive numerical quadrature<br />
1 function I = adaptquad ( f ,M, r t o l , a b s t o l )<br />
2 h = d i f f (M) ; %<br />
3 mp = 0.5∗(M( 1 : end−1)+M( 2 : end ) ) ; %<br />
4 f x = f (M) ; fm = f (mp) ; %<br />
5 t r p _ l o c = h . ∗ ( f x ( 1 : end−1)+2∗fm+ f x ( 2 : end ) ) / 4 ; %<br />
6 simp_loc = h . ∗ ( f x ( 1 : end−1)+4∗fm+ f x ( 2 : end ) ) / 6 ; %<br />
7 I = sum( simp_loc ) ; %<br />
8 e s t _ l o c = abs ( simp_loc −t r p _ l o c ) ; %<br />
9 e r r _ t o t = sum( e s t _ l o c ) ; %<br />
Idea: local error estimation by comparing local results of two quadrature formulas<br />
Q 1 , Q 2 of different order → local error estimates<br />
heuristics: error(Q 2 ) ≪ error(Q 1 ) ⇒ error(Q 1 ) ≈ Q 2 (f) − Q 1 (f) .<br />
Now: Q 1 = trapezoidal rule (order 2) ↔ Q 2 = Simpson rule (order 4)<br />
12 r e f c e l l s = find ( e s t _ l o c > 0.9∗sum( e s t _ l o c ) / length ( h ) ) ;<br />
13 I = adaptquad ( f , sort ( [M,mp( r e f c e l l s ) ] ) , r t o l , a b s t o l ) ; %<br />
14 end<br />
Comments on Code 10.6.1:<br />
Given: mesh M := {a = x 0 < x 1 < · · · < x m = b}<br />
❶<br />
❷<br />
(error estimation)<br />
For I k = [x k−1 ,x k ], k = 1,...,m (midpoints p k := 2 1(x k−1 + x k ) )<br />
EST k := ∣ h k<br />
6 (f(x k−1) + 4f(p k ) + f(x k )) − h k<br />
} {{ } 4 (f(x k−1) + 2f(p k ) + f(x k )) ∣ . (10.6.1)<br />
} {{ }<br />
Simpson rule<br />
trapezoidal rule on split mesh interval<br />
(Termination)<br />
Simpson rule on M ⇒ preliminary result I<br />
m∑<br />
If<br />
k=1<br />
Ôº½ ½¼º<br />
EST k ≤ RTOL · I (RTOL := prescribed tolerance) ⇒ STOP (10.6.2)<br />
• Arguments: f ˆ= handle to function f, M ˆ= initial mesh, rtol ˆ= relative tolerance for termination,<br />
abstol ˆ= absolute tolerance for termination, necessary in case the exact integral value = 0,<br />
which renders a relative tolerance meaningless.<br />
• line 2: compute lengths of mesh-intervals [x j−1 ,x j ],<br />
• line 3: store positions of midpoints p j ,<br />
• line 4: evaluate function (vector arguments!),<br />
• line 5: local composite trapezoidal rule (10.3.2),<br />
• line 6: local simpson rule (10.2.4),<br />
• line 7: value obtained from composite simpson rule is used as intermediate approximation for<br />
integral value,<br />
• line 8: difference of values obtained from local composite trapezoidal rule (∼ Q 1 ) and ocal<br />
simpson rule (∼ Q 2 ) is used as an estimate for the local quadrature error.<br />
Ôº½ ½¼º