©2005-2018 Ulm University, Othmar Marti, pict
[Vorherige Seite] [vorheriges Seitenende] [Seitenende] [Ebene nach oben] [PDF-Datei][Epub-Datei][Andere Skripte]

I.2  Integrale

Analog zum Vorgehen bei Ableitungen gehen wir auch bei Integralen vor. Wir verwenden die Definition

x∫1               n             (            x1−x0)     (      x1−x0)
                 ∑  x1-−-x0- f--x0-+-(j-−-1)--n----+-f--x0 +-j--n---
  f (x )dx = nli→m∞       n   ·                    2
x0                j=1
(I.1)

In Gleichung (I.1) ist die Trapezregel dargestellt. Alternativ könnte auch mit der Mittelwertregel gearbeitet werden:

 x
∫ 1              ∑n  x1 − x0   (      (    1 ) x1 − x0)
   f(x)dx =  lnim→∞     ---n---·f   x0 +  j − 2-  ---n----
x0               j=1
(I.2)

Wir können also die beiden Approximationen für das Integral x0x1f(x)dx angeben:

pict

Wenn man die beiden Approximationen in den Gleichungen (I.3) analysiert, kann die folgende Beziehung abgeleitet werden:

               1
It(x0, x1,2n) = --(It(x0, x1,n) + Im (x0,x1,n)
               2
(I.4)

Weiter kann man die Grösse

ΔI (x0,x1,n) = |It(x0,x1, n) − Im(x0,x1,n )|
(I.5)

als Schätzwert für die Genauigkeit der Approximation verwenden.

Liegt die zu integrierende Funktion nicht als Funktion, sondern als Tabelle von x-Werten und f(x)-Werten an den Stellen xj, j {0, ...,n}, vor, dann ist das Vorgehen für einen Schätzwert so:

    ∑n
It =    (xj −-xj−1)(f(xj− 1) + f(xj))
    j=1      2
(I.6)

Mit den Daten aus Abbildung I.1 und dem Verfahren aus Gleichung I.6 ergibt sich die Tabelle

___________________________________________________________________________

Originale Integral
x f(x) x Int(f(x),0.058,x)
0.058 2.5676 0.058 0
0.2456 2.8111 0.2456 1.009044
0.4332 3.0546 0.4332 2.109449
0.5693 3.348 0.5693 2.980843
... ... ... ...
7.6052 6.3168 7.6052 68.15365
7.8576 6.4726 7.8576 71.38169
8.1489 6.5783 8.1489 75.18342
... ... ... ...
17.2552 6.0696 17.2552 184.8648
17.5477 6.0867 17.5477 188.4206
Nummerische Integration der Daten aus Abbildung I.1(Auszug)

_____________________________________________________________________

In der ersten Zeile der Bezeichnung „Int(f(x),0.058,x)“ steht „0“, in der zweiten Zeile „=(B4+B3)*(A4-A3)+K3“.

__________________________________________________________________________

pict

Darstellung der berechneten Integration der Funktion aus Abbildung I.1.

_____________________________________________________________________

In Abbildung I.2 ist die grafische Darstellung der Integration der Funktion aus Abbildung I.1 gezeigt.

I.2.1  Mathematica-Beispiel

Wir wenden hier das Vorgehen aus den Gleichungen (I.3) und (I.4) an.

Die Schätzwerte für das Integral nach der Trapezregel und der Mittenregel können in Mathematica wie folgt definiert werden:

trapez[xx0_, xx1_, NNN_] :=  
 Module[{jj}, (f[xx0]/2 + f[xx1]/2 +  
     Total[Table[  
       f[xx0 + jj*(xx1 - xx0)/NNN], {jj, 1, NNN - 1}]])*(xx1 - xx0)/  
    NNN]  
mitte[xx0_, xx1_, NNN_] :=  
 Module[{jj}, (  
    Total[Table[  
      f[xx0 + (jj - 1/2)*(xx1 - xx0)/NNN], {jj, 1, NNN}]])*(xx1 -  
      xx0)/NNN]

Die Funktion Total summiert über eine Tabelle. Die Funktionen entsprechen den Gleichungen (I.3).

Wir interessieren uns hier für den Verlauf des Fehlers. Dazu werden die Interwalle sukzessive halbiert.

i0 = N[Integrate[f[x], {x, x0, x1}]]  
ListPlot[{Table[{kk, trapez[x0, x1, 2^kk]}, {kk, 3, 10}],  
  Table[{kk, mitte[x0, x1, 2^kk]}, {kk, 3, 10}]},  
 FrameLabel -> {"x", "Int f(x) dx"}, PlotRange -> All,  
 PlotStyle -> {Green, Blue}, mylistopts,  
 PlotLegends -> Placed[{"Trapezregel", "Mittenregel"}, {Right, Right}]]  
ListLogPlot[{Table[{kk, Abs[trapez[x0, x1, 2^kk] - i0]}, {kk, 3, 10}],  
   Table[{kk, Abs[mitte[x0, x1, 2^kk] - i0]}, {kk, 3, 10}]},  
 FrameLabel -> {"x", "Int f(x) dx"}, PlotRange -> All,  
 PlotStyle -> {Green, Blue}, mylistlogopts,  
 PlotLegends ->  
  Placed[{"Trapezregel", "Mittenregel"}, {Right, Right}]]

i0 = 0.0981748 ist der nummerische Wert des analytisch berechneten Integrals.

__________________________________________________________________________

pict

Konvergenz der Integralapproximation

_____________________________________________________________________

_____________________________________________________________________

pict

Konvergenz der Integralapproximation (logarithmisch)

_____________________________________________________________________

Die Differenz zwischen Trapezregel und Mittenregel kann als Konvergenzkriterium verwendet werden. Der dazugehörige Mathematica-Code ist:

nstart = 5;  
nlist = {nstart};  
tlist = {N[trapez[x0, x1, nstart]]};  
mlist = {N[mitte[x0, x1, nstart]]};  
dI = Abs[tlist[[1]] - mlist[[1]]];  
dImin = 0.00001;  
count = 0;  
countmax = 10;  
While[dI > dImin && count < countmax,  
  count += 1;  
  nstart *= 2;  
  AppendTo[tlist, (tlist[[-1]] + mlist[[-1]])/2];  
  AppendTo[mlist, N[mitte[x0, x1, nstart]]];  
  dI = Abs[tlist[[-1]] - mlist[[-1]]];  
  ];  
imine = (tlist[[-1]] + mlist[[-1]])/2;  
inum = NIntegrate[f[x], {x, x0, x1}];  
idir = N[Integrate[f[x], {x, x0, x1}]];  
output = {{"Handgestrickt: ", imine, "Fehlervorgabe: ", dImin,  
    "aktueller Fehler: ", Abs[imine - idir], "Iterationen: ", count},  
   {"Mathematica nummerisch: ", inum, " ", " ", "aktueller Fehler: ",  
    Abs[inum - idir], " ", " "},  
   {"Mathematica symbolisch: ", idir, " ", " ", " ", " ", " ", " "}};  
TableForm[output]

Wir starten mit 5 Intervallen. Zur Sicherheit wird die maximale Anzahl Iterationen begrenzt. Das Resultat ist

___________________________________________________________________________

Handgestrickt: 0.0981756 aktueller Fehler: 7.8853·107
Iterationen: 8 Fehlervorgabe: 0.00001
Mathematica nummerisch: 0.0981748 aktueller Fehler: 2.22045·1016
Mathematica symbolisch: 0.0981748
Genauigkeit der nummerischen Integration

_____________________________________________________________________



[Vorherige Seite] [vorheriges Seitenende] [Seitenanfang] [Ebene nach oben]
©2005-2018 Ulm University, Othmar Marti, pict  Lizenzinformationen