Numerisches Beispiel zur Konvergenzordnung

[1]:
import numpy as np
import matplotlib.pyplot as plt

Eine konvergente Folge \(\{x_k\}_{k\in\mathbb{N}} \subset \mathbb{R}^n\) mit Grenzwert \(x^*\) hat die Konvergenzordnung \(p\), falls für ein \(k_0\in\mathbb{N}\)

\[\|x_{k+1}-x^*\| \le c \| x_k - x^*\|^p\]

für alle \(k\ge k_0\) gilt, wobei

\[0 < c < 1 \quad\text{falls}\quad p=1.\]

Wir betrachten das numerische Beispiel mit

[2]:
c = 0.1

und

\[\epsilon_k = \|x_k - x^*\|\]

mit

[3]:
epsilon0 = 1

Ausgehend vom initialen Fehler \(\varepsilon_0\) berechnen wir die Konvergenz unter der Annahme, dass für die Ungleichung die Gleichheit gilt

\[\varepsilon_{k+1} = c\, \varepsilon_k.\]
[4]:
eps1 = [epsilon0]
eps2 = [epsilon0]
for k in range(5):
    # lineare Ordnung
    nextepsilon1 = c*eps1[-1]**1
    eps1.append(nextepsilon1)
    # quadratische Ordnung
    nextepsilon2 = c*eps2[-1]**2
    eps2.append(nextepsilon2)
[5]:
plt.semilogy(eps1,'o',label='lineare Ordnung')
plt.plot(eps2,'o',label='quadratische Ordnung')
plt.grid()
plt.ylim(5e-8,1.5)
plt.legend()
plt.xlabel('Step $k$')
plt.ylabel(r'$\|x_k-x\|$')
plt.tight_layout()
#plt.gca().set_aspect(.75)
plt.savefig('VergleichKonvergenzOrdnung.pdf')
plt.show()
../_images/Gleichungen_BeispielKonvergenzOrdnung_9_0.png
[ ]: