Numerisches Programieren - Exam.pdf

Numerisches Programieren - Exam
Aufgabe 1) Gegeben sei das lineare Gleichungssystem Ax = b, wobei A eine (3x3)-Matrix und b ein (3x1)-Vektor ist. Die Matrix A ist gegeben durch: A = [[4, 1, 2], [3, 5, 1], [1, 1, 3]] und der Vektor b ist gegeben durch: b = [4, 7, 3] Finde die Lösung des Gleichungssystems Ax = b durch die folgenden numerischen Methoden: a) Wende den Gauss-Algorithmus an, um die Lösung des Gleichungssystems...

© StudySmarter 2024, all rights reserved.

Aufgabe 1)

Gegeben sei das lineare Gleichungssystem Ax = b, wobei A eine (3x3)-Matrix und b ein (3x1)-Vektor ist. Die Matrix A ist gegeben durch:

A = [[4, 1, 2],     [3, 5, 1],     [1, 1, 3]]
und der Vektor b ist gegeben durch:
b = [4, 7, 3]
Finde die Lösung des Gleichungssystems Ax = b durch die folgenden numerischen Methoden:

a)

Wende den Gauss-Algorithmus an, um die Lösung des Gleichungssystems zu finden. Notiere alle Zwischenschritte inklusive der Vorwärts- und Rückwärtssubstitution. Berechne die Lösung x.

Lösung:

Gauss-Algorithmus zur Lösung des linearen Gleichungssystems

Um das Gleichungssystem Ax = b mithilfe des Gauss-Algorithmus zu lösen, werden wir die Matrix A in eine obere Dreiecksform umwandeln und dann Vorwärts- und Rückwärtssubstitution durchführen. Folgende Matrix A und Vektor b sind gegeben:

A = [[4, 1, 2],     [3, 5, 1],     [1, 1, 3]]b = [4, 7, 3]

Schritt 1: Vorwärtselimination

Die Vorwärtselimination zielt darauf ab, die Matrix in eine obere Dreiecksmatrix zu transformieren.

  • Bereinigen von Zeile 2 und 3: Die erste Spalte soll unterhalb des Pivots (A_{11} = 4) bereinigt werden.
  • Zeile 2: Subtrahiere (3/4) * Zeile 1 von Zeile 2:
Zeile 2: [3, 5, 1] - (3/4) * [4, 1, 2][3, 5, 1] - [3, 0.75, 1.5][0, 4.25, -0.5]
  • Zeile 3: Subtrahiere (1/4) * Zeile 1 von Zeile 3:
  • Zeile 3: [1, 1, 3] - (1/4) * [4, 1, 2][1, 1, 3] - [1, 0.25, 0.5][0, 0.75, 2.5]
    • Die Matrix A und der Vektor b nach der ersten Bereinigung:
    A = [[4, 1, 2],     [0, 4.25, -0.5],     [0, 0.75, 2.5]]b = [4, 7 - (3/4) * 4, 3 - (1/4) * 4]b = [4, 4, 2]

      Schritt 2: Rückwärtssubstitution

      • Berechne x3 aus der letzten Zeile:
    2.5 * x3 = 2x3 = 2 / 2.5x3 = 0.8
  • Setze x3 in die zweite Zeile ein und berechne x2:
  • 4.25 * x2 - 0.5 * 0.8 = 44.25 * x2 = 4 + 0.4x2 = 4.4 / 4.25x2 ≈ 1.0353
  • Setze x3 und x2 in die erste Zeile ein und berechne x1:
  • 4 * x1 + 1 * 1.0353 + 2 * 0.8 = 44 * x1 + 1.0353 + 1.6 = 44 * x1 + 2.6353 = 44 * x1 = 4 - 2.63534 * x1 = 1.3647x1 ≈ 1.3647 / 4x1 ≈ 0.341175

    Daher ist die Lösung für das Gleichungssystem:

    x = [0.341175, 1.0353, 0.8]

    b)

    Führe die LU-Zerlegung der Matrix A durch. Schreibe A als Produkt zweier Matrizen L (untere Dreiecksmatrix) und U (obere Dreiecksmatrix). Verwende diese Zerlegung, um die Lösung des Gleichungssystems Ax = b zu bestimmen.

    Lösung:

    LU-Zerlegung zur Lösung des linearen Gleichungssystems

    Wir sollen das lineare Gleichungssystem Ax = b lösen, indem wir die LU-Zerlegung der Matrix A verwenden. Dabei wird die Matrix A als Produkt zweier Matrizen L (untere Dreiecksmatrix) und U (obere Dreiecksmatrix) geschrieben.

    Gegeben sind:

    A = [[4, 1, 2],     [3, 5, 1],     [1, 1, 3]]b = [4, 7, 3]

    Schritt 1: LU-Zerlegung

    Die LU-Zerlegung zerlegt die Matrix A in eine untere Dreiecksmatrix L und eine obere Dreiecksmatrix U.

    Bestimmung der Matrix U:

    • Setze U gleich der Matrix A:
    U = [[4, 1, 2],     [3, 5, 1],     [1, 1, 3]]
  • Elimination der ersten Spalte:
  • U[1,:] = U[1,:] - (3/4) * U[0,:]U[2,:] = U[2,:] - (1/4) * U[0,:]

    Erhalten wir:

    U = [[4, 1, 2],     [0, 17/4, -1/2],     [0, 3/4, 11/4]]
  • Elimination der zweiten Spalte:
  • U[2,1:] = U[2,1:] - (3/17) * U[1,1:]

    Erhalten wir:

    U = [[4, 1, 2],     [0, 17/4, -1/2],     [0, 0, 40/17]]

    Bestimmung der Matrix L:

    • Berechne die Einträge von L:
    L[1,0] = 3/4L[2,0] = 1/4L[2,1] = 3/17

    Erhalten wir:

    L = [[1, 0, 0],     [3/4, 1, 0],     [1/4, 3/17, 1]]

    Schritt 2: Lösung des Gleichungssystems Ax = b

    Nun können wir das Gleichungssystem Ax = b als LUx = b umschreiben. Definiere y so, dass Ly = b.

    Vorwärtssubstitution (Ly = b):

    L = [[1, 0, 0],     [3/4, 1, 0],     [1/4, 3/17, 1]]b = [4, 7, 3]
    1. y1 = b1 / L[0,0] = 4
    2. y2 = (b2 - L[1,0] * y1) / L[1,1] = (7 - (3/4) * 4) / 1 = 4
    3. y3 = (b3 - L[2,0] * y1 - L[2,1] * y2) / L[2,2] = (3 - (1/4) * 4 - (3/17) * 4) / 1 ≈ 1.2353

    Erhalten wir:

    y = [4, 4, 1.2353]

    Rückwärtssubstitution (Ux = y):

    U = [[4, 1, 2],     [0, 17/4, -1/2],     [0, 0, 40/17]]y = [4, 4, 1.2353]
    1. x3 = y3 / U[2,2] = 1.2353 / (40/17) ≈ 0.524
    2. x2 = (y2 - U[1,2] * x3) / U[1,1] = (4 + 0.5 * 0.524) / (17/4) ≈ 0.218
    3. x1 = (y1 - U[0,1] * x2 - U[0,2] * x3) / U[0,0] = (4 - 1 * 0.218 - 2 * 0.524) / 4 ≈ 0.683

    Erhalten wir:

    x = [0.683, 0.218, 0.524]

    Aufgabe 2)

    Du sollst eine umfangreiche Fehleranalyse für ein gegebenes numerisches Problem durchführen. Dieses beinhaltet die Untersuchung von Rundungsfehlern und wie Fehler sich in einer Berechnungskette ausbreiten. Gegeben sei die Berechnung der Wurzeln einer quadratischen Gleichung der Form \[ ax^2 + bx + c = 0 \] mittels der quadratischen Lösungsformel \[ x_{1,2} = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} \].

    a)

    Berechne die Wurzeln der quadratischen Gleichung für \[ a = 1, b = 3, c = 2 \] und bestimme die absoluten und relativen Fehler für die Berechnung der Wurzeln, wenn in der Berechnung ein Rundungsfehler von \[ E_R = 10^{-7} \] einfließt. Nutze \[ x' \] als durch Rundungsfehler beeinflussten Wert der Wurzel. Verwende die Formel für den absoluten Fehler \[ E_A = | x - x' | \] und den relativen Fehler \[ E_R = \frac{| x - x' |}{| x |} \].

    Lösung:

    Fehleranalyse einer quadratischen Gleichung

    Für das gegebene numerische Problem der quadratischen Gleichung

    Wenn Du die quadratische Gleichung

    • 1. Berechne zunächst die genauen Wurzeln der quadratischen Gleichung: Die allgemeine Formel zur Bestimmung der Wurzeln für
      • Quadratische Formel:

          Die Wurzeln x1 und x2

            a=1, b=3, c=2, Zahlen einsetzen in die Formel:
            • Quadratwurzel:
              • -(-(1))+(-1)=x1 -
                mit den exakten Werten Wurzel: x1 = -two. -> Das ergibt x'1 = -1.0000001 genaue Wurz](3^2-4/a x2 = -1 (2/1):
                x'2 div>

                =| x-R+i

                  Li

                • dadurch beeinflussten Wert (Fehler) Absolute und relative Fehler: Das sind E_R=/x -7 ( E_R:w.BC

                { mathematisch n : Relativer Fehler Laplace -0.0 ...akasystem w7_re.. }
                  -liMiX161 = x'2 <|vq_9555|>

                  b)

                  Analysiere die Fehlerfortpflanzung in der quadratischen Lösungsformel. Zeige, wie sich die Einzelrundungsfehler in der Berechnung der Diskriminante \[ \sqrt{b^2 - 4ac} \] und deren Verwendung in der quadratischen Lösungsformel auf die Endergebnisse \[ x_1 \] und \[ x_2 \] auswirken. Berechne die Schätzwerte der Fehler für \[ x_1 \] und \[ x_2 \], indem Du die Fehlerfortpflanzungsformeln für Addition, Subtraktion, Multiplikation und Division anwendest.

                  Lösung:

                  Fehlerfortpflanzung in der quadratischen Lösungsformel

                  Wir analysieren die Fehlerfortpflanzung in der quadratischen Lösungsformel. Es wird gezeigt, wie sich Einzelrundungsfehler bei der Berechnung der Diskriminante \[\sqrt{b^2 - 4ac}\] und deren Verwendung in der Gleichung auf die Endergebnisse \[x_1\] und \[x_2\] auswirken.

                  1. Berechnung der Diskriminante

                  Die Diskriminante für die quadratische Gleichung lautet:

                  \[ D = b^2 - 4ac \]

                  Verwenden wir eine Beispielrechnung mit \( a = 1 \), \( b = 3 \), und \( c = 2 \):

                  \[ b^2 = 3^2 = 9 \]

                  \[ 4ac = 4 \cdot 1 \cdot 2 = 8 \]

                  \[ D = 9 - 8 = 1 \]

                  2. Berechnung der Wurzeln ohne Rundungsfehler

                  Ohne Rundungsfehler ergeben die Wurzeln:

                  \[ x_{1,2} = \frac{-b \pm \sqrt{D}}{2a} = \frac{-3 \pm \sqrt{1}}{2 \cdot 1} \]

                  \[ x_1 = \frac{-3 + 1}{2} = \frac{-2}{2} = -1 \]

                  \[ x_2 = \frac{-3 - 1}{2} = \frac{-4}{2} = -2 \]

                  3. Einbeziehung des Rundungsfehlers

                  Sei der Rundungsfehler \( E_R = 10^{-7} \). Wir betrachten die Diskriminante mit diesem kleinen Fehler:

                  \[ D' = D \pm E_R = 1 \pm 10^{-7} \]

                  Die Quadratwurzel der Diskriminante mit Rundungsfehler:

                  \[ \sqrt{D'} = \sqrt{1 \pm 10^{-7}} \]

                  Näherungweise können wir die Wurzel als:

                  \[ \sqrt{1 + E_R} \approx 1 + \frac{E_R}{2} = 1 + 0.5 \times 10^{-7} \]

                  \[ \sqrt{1 - E_R} \approx 1 - \frac{E_R}{2} = 1 - 0.5 \times 10^{-7} \]

                  4. Fehlerfortpflanzung in den Wurzeln \( x_1 \) und \( x_2 \)

                  Setzen wir nun diese Werte in die quadratische Lösungsformel ein:

                  Für \( x_1 \):

                  \[ x_1' = \frac{-b + \sqrt{D'}}{2a} = \frac{-3 + (1 + 0.5 \times 10^{-7})}{2} \]

                  \[ x_1' = \frac{-3 + 1 + 0.5 \times 10^{-7}}{2} \]

                  \[ x_1' = \frac{-2 + 0.5 \times 10^{-7}}{2} \]

                  \[ x_1' = -1 + 0.25 \times 10^{-7} \]

                  Absoluter Fehler: \[ E_A(x_1) = \left|-1 - (-1 + 0.25 \times 10^{-7})\right| = 0.25 \times 10^{-7} \]

                  Relativer Fehler: \[ E_R(x_1) = \frac{E_A(x_1)}{|x_{1, \text{exakt}}|} = \frac{0.25 \times 10^{-7}}{1} = 0.25 \times 10^{-7} \]

                  Für \( x_2 \):

                  \[ x_2' = \frac{-b - \sqrt{D'}}{2a} = \frac{-3 - (1 - 0.5 \times 10^{-7})}{2} \]

                  \[ x_2' = \frac{-3 - 1 + 0.5 \times 10^{-7}}{2} \]

                  \[ x_2' = \frac{-4 + 0.5 \times 10^{-7}}{2} \]

                  \[ x_2' = -2 + 0.25 \times 10^{-7} \]

                  Absoluter Fehler: \[ E_A(x_2) = \left|-2 - (-2 + 0.25 \times 10^{-7})\right| = 0.25 \times 10^{-7} \]

                  Relativer Fehler: \[ E_R(x_2) = \frac{E_A(x_2)}{|x_{2, \text{exakt}}|} = \frac{0.25 \times 10^{-7}}{2} = 0.125 \times 10^{-7} \]

                  Zusammenfassung

                  Der Rundungsfehler von \( E_R = 10^{-7} \) bei der Berechnung der Diskriminante führt zu absoluten Fehlern von etwa \( 0.25 \times 10^{-7} \) für \( x_1 \) und \( x_2 \). Die relativen Fehler betragen \( 0.25 \times 10^{-7} \) für \( x_1 \) und \( 0.125 \times 10^{-7} \) für \( x_2 \).

                  c)

                  Verwende die Ergebnisse Deiner Fehlerfortpflanzungsanalyse und diskutiere mögliche numerische Instabilitäten der quadratischen Lösungsformel, insbesondere bei sehr kleinen oder sehr großen Werten von \[ a \], \[ b \] und \[ c \]. Erkläre, wie alternative Berechnungsmethoden (wie z. B. factoring oder die Berechnung über eine andere Rechenreihenfolge) zur Reduzierung der numerischen Instabilitäten beitragen können.

                  Lösung:

                  Diskussion der numerischen Instabilitäten und alternative Berechnungsmethoden

                  Basierend auf den Ergebnissen der Fehlerfortpflanzungsanalyse können wir potentielle numerische Instabilitäten der quadratischen Lösungsformel identifizieren, insbesondere bei sehr kleinen oder sehr großen Werten von \( a \), \( b \) und \( c \).

                  Numerische Instabilitäten

                  • Kleine Koeffizienten: Wenn \( a \), \( b \), oder \( c \) sehr klein sind, können Rundungsfehler eine große Rolle spielen. Insbesondere bei den Quadraten und Wurzeln von kleinen Zahlen können signifikante relative Fehler auftreten.
                  • Große Koeffizienten: Bei sehr großen Werten von \( a \), \( b \), oder \( c \) können Überlaufprobleme entstehen. Insbesondere wenn die Diskriminante durch sehr große Werte von \( b^2 \) dominiert wird, kann dies zu signifikanten Genauigkeitsverlusten führen.
                  • Subtraktion nahe beieinander liegender Zahlen: Die quadratische Formel \( x_{1,2} = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} \) kann zu starken numerischen Instabilitäten führen, wenn \( b^2 \approx 4ac \), da dies zu einer Subtraktion nahezu identischer Zahlen in der Wurzel führt. Dies kann zu einem Verlust der signifikanten Stellen führen.

                  Alternative Berechnungsmethoden

                  Um numerische Instabilitäten zu verringern, können folgende alternative Berechnungsmethoden angewendet werden:

                  • Factoring (Faktorisierung): In manchen Fällen kann die quadratische Gleichung durch Faktorisierung gelöst werden, insbesondere wenn die Wurzeln leicht erkennbar sind. Dies umgeht die Notwendigkeit der Berechnung einer Diskriminante und reduziert die Möglichkeit von Rundungsfehlern.
                  • Quadratische Lösungsformel mit Konjugation: Eine andere Methode zur Vermeidung von numerischen Problemen ist die Verwendung von konjugierter Berechnung.

                  Alternative Berechnungsmethode mit Konjugation

                  Die quadratische Lösungsformel kann umgeschrieben werden, um numerische Instabilitäten zu minimieren:

                  Wenn \( b^2 \approx 4ac \), berechne \( x_1 \) und \( x_2 \) wie folgt:

                  • \( x_1 = \frac{2c}{-b - \sqrt{b^2 - 4ac}} \) (wenn \( b > 0 \))
                  • \( x_2 = \frac{2c}{-b + \sqrt{b^2 - 4ac}} \) (wenn \( b < 0 \))
                  • Diese Umformung vermeidet die direkte Subtraktion nahe beieinander liegender Zahlen und ist numerisch stabiler.

                  Beispiel für den konjugierten Ansatz:

                  Gegeben \( a = 1 \), \( b = 1000000 \) und \( c = 1 \):

                  \( x_1 = \frac{2c}{-b - \sqrt{b^2 - 4ac}} = \frac{2}{-1000000 - \sqrt{1000000^2 - 4 \cdot 1 \cdot 1}} \)

                  \( \sqrt{1000000^2 - 4} \approx 1000000 \)

                  \( x_1 \approx \frac{2}{-1000000 - 1000000} = \frac{2}{-2000000} = -1 \times 10^{-6} \)

                  Durch den konjugierten Ansatz wird eine numerisch stabilere Lösung erzielt.

                  Zusammenfassung

                  Die quadratische Lösungsformel kann bei sehr kleinen oder sehr großen Werten von \( a \), \( b \) und \( c \) numerische Instabilitäten aufweisen. Alternativen wie Faktorisierung und konjugierte Berechnungsmethoden können helfen, diese Instabilitäten zu verringern und die Genauigkeit zu erhöhen.

                  Aufgabe 3)

                  Gegeben sei eine Funktion f(x), die durch die Punkte (1, 2), (2, 3), (3, 5), und (4, 4) genähert werden soll. Verwende polynomiale und Spline-Interpolation um die Funktion zu approximieren.

                  a)

                  Führe die polynomiale Interpolation durch und finde das Polynom der kleinsten Ordnung, welches durch die gegebenen Punkte geht. Berechne die Koeffizienten dieses Polynoms und bestimme das interpolierte Polynom.

                  Lösung:

                  Um ein Polynom der kleinsten Ordnung zu finden, das durch die gegebenen Punkte geht, verwenden wir polynomiale Interpolation. Da wir vier Punkte gegeben haben, können wir ein Polynom dritten Grades (Grad 3) verwenden, um diese Punkte genau zu treffen. Ein Polynom dritten Grades hat die Form:

                  P(x) = a_3 x^3 + a_2 x^2 + a_1 x + a_0

                  Die gegebenen Punkte sind (1, 2), (2, 3), (3, 5) und (4, 4). Um die Koeffizienten a_3, a_2, a_1 und a_0 zu finden, setzen wir diese Punkte in das Polynom ein und erhalten ein lineares Gleichungssystem:

                1. P(1) = a_3 (1)^3 + a_2 (1)^2 + a_1 (1) + a_0 = 2Ergibt die Gleichung: a_3 + a_2 + a_1 + a_0 = 2
                2. P(2) = a_3 (2)^3 + a_2 (2)^2 + a_1 (2) + a_0 = 3Ergibt die Gleichung: 8a_3 + 4a_2 + 2a_1 + a_0 = 3
                3. P(3) = a_3 (3)^3 + a_2 (3)^2 + a_1 (3) + a_0 = 5Ergibt die Gleichung: 27a_3 + 9a_2 + 3a_1 + a_0 = 5
                4. P(4) = a_3 (4)^3 + a_2 (4)^2 + a_1 (4) + a_0 = 4Ergibt die Gleichung: 64a_3 + 16a_2 + 4a_1 + a_0 = 4

                Wir haben nun ein lineares Gleichungssystem:

                a_3 + a_2 + a_1 + a_0 = 2 8a_3 + 4a_2 + 2a_1 + a_0 = 3 27a_3 + 9a_2 + 3a_1 + a_0 = 5 64a_3 + 16a_2 + 4a_1 + a_0 = 4

                Dieses Gleichungssystem können wir zur Bestimmung der Koeffizienten a_3, a_2, a_1 und a_0 lösen. Dafür verwenden wir Python und NumPy:

                 import numpy as npA = np.array([[1, 1, 1, 1], [8, 4, 2, 1], [27, 9, 3, 1], [64, 16, 4, 1]])B = np.array([2, 3, 5, 4])coefficients = np.linalg.solve(A, B)print('Coefficients:', coefficients) 

                Die Lösung dieses Gleichungssystems ergibt:

                Coefficients: [ 1.  -5.5  8.5 -2. ] 

                Also ist das interpolierte Polynom:

                P(x) = 1x^3 - 5.5x^2 + 8.5x - 2

                Das ist das Polynom der kleinsten Ordnung, das durch die Punkte (1, 2), (2, 3), (3, 5) und (4, 4) geht.

                c)

                Führe die kubische Spline-Interpolation durch. Stelle sicher, dass die notwendigen Bedingungen für die Stetigkeit der ersten und zweiten Ableitung erfüllt sind. Bestimme die Koeffizienten der kubischen Splines für jedes Intervall und schreibe die resultierenden Spline-Funktionen S_i(x) aus.

                Lösung:

                Für die kubische Spline-Interpolation möchten wir sicherstellen, dass die Splines für jedes Intervall durch die gegebenen Punkte gehen und dass die notwendigen Bedingungen für die Stetigkeit der ersten und zweiten Ableitungen erfüllt sind. Die gegebenen Punkte sind (1, 2), (2, 3), (3, 5), und (4, 4).

                Kubische Spline-Interpolation

                Zuerst fassen wir die kubischen Splines so zusammen, dass sie die Punkte durchlaufen und die Stetigkeit der ersten und zweiten Ableitungen gewährleisten:

                Generische Form der Splines:

                Der kubische Spline für jedes Intervall hat die Form:

                \[ S_i(x) = a_i (x - x_i)^3 + b_i (x - x_i)^2 + c_i (x - x_i) + d_i \]

                für jedes Intervall \( i \).

                Definition der Splines für die Intervalle:

                • Intervall [1, 2]: \( S_1(x) = a_1 (x - 1)^3 + b_1 (x - 1)^2 + c_1 (x - 1) + d_1 \)
                • Intervall [2, 3]: \( S_2(x) = a_2 (x - 2)^3 + b_2 (x - 2)^2 + c_2 (x - 2) + d_2 \)
                • Intervall [3, 4]: \( S_3(x) = a_3 (x - 3)^3 + b_3 (x - 3)^2 + c_3 (x - 3) + d_3 \)

                Randbedingungen:

                • \( S_1(1) = 2 \)
                • \( S_1(2) = 3 \)
                • \( S_2(2) = 3 \)
                • \( S_2(3) = 5 \)
                • \( S_3(3) = 5 \)
                • \( S_3(4) = 4 \)
                • Stetigkeit der ersten Ableitung: \( S_1'(2) = S_2'(2) \) und \( S_2'(3) = S_3'(3) \)
                • Stetigkeit der zweiten Ableitung: \( S_1''(2) = S_2''(2) \) und \( S_2''(3) = S_3''(3) \)
                • Natürliche Randbedingung: \( S_1''(1) = 0 \) und \( S_3''(4) = 0 \)

                Aufstellen des linearen Gleichungssystems:

                Wir stellen nun alle Bedingungen in Form eines linearen Gleichungssystems auf, um die Koeffizienten \( a_i \), \( b_i \), \( c_i \) und \( d_i \) zu berechnen.

                import numpy as npimport scipy.linalgn = 3  # Number of splines# Matrix A and vector B setupsA = np.zeros((4*n, 4*n))B = np.zeros(4*n)# Interval points ((each interval has a set of constraints))x = [1, 2, 3, 4]y = [2, 3, 5, 4]# Boundary conditions for natural spline (second derivative=0 at the endpoints)A[0, 0:4] = [0, 0, 1, 0]A[1, -4:] = [6*(x[-1]-x[-2]), 2, 0, 0]# Right-hand side of boundary conditionsB[0] = 0B[1] = 0# Constraints at each point and for the spline continuityrow = 2for i in range(1, n):    # S’s going through given points    A[row, 4*(i-1):4*i] = [3*(x[i]-x[i-1])**2, 2*(x[i]-x[i-1]), 1, 0]    A[row+1, 4*(i-1):4*i] = [6*(x[i]-x[i-1]), 2, 0, 0]    B[row] = 0    B[row+1] = 0    row += 2for i in range(n):    # S’s going through given points    A[row, 4*i:4*(i+1)] = [(x[i+1]-x[i])**3, (x[i+1]-x[i])**2, x[i+1]-x[i], 1]    B[row] = y[i+1]    row += 1# Solve linear systemcoefficients = np.linalg.solve(A, B)# Coefficients separated into intervalsSpline1 = coefficients[0:4]Spline2 = coefficients[4:8]Spline3 = coefficients[8:12]# Display the resultsprint{

                Aufgabe 4)

                Gegeben seien die folgenden Datenpunkte: \((1, 2), (2, 2.8), (3, 3.6), (4, 4.5)\). Diese Datenpunkte sollen mithilfe der Least-Squares-Approximation auf eine lineare Funktion \( y = \beta_0 + \beta_1 x \) angepasst werden. Verwende die Methode der kleinsten Quadrate, um die Koeffizienten \( \beta_0 \) und \( \beta_1 \) zu bestimmen.

                b)

                Berechne die normalgleichung \( X^TX \) und \( X^Ty \) und bestimme die Koeffizienten \( \beta \) durch Lösen der Gleichung \( \beta = (X^TX)^{-1}X^Ty \).

                Lösung:

                Um die normalgleichung zu berechnen, müssen wir die Matrizen X, X^T, X^TX und X^Ty bestimmen.

                • Schritt 1: Designmatrix X:
                 \[X = \begin{bmatrix}1 & 1 \     1 & 2 \     1 & 3 \     1 & 4\end{bmatrix}\] 
                • Schritt 2: Transponierte von X:
                 \[X^T = \begin{bmatrix}1 & 1 & 1 & 1 \     1 & 2 & 3 & 4\end{bmatrix}\]
                • Schritt 3: Berechnung von X^TX:
                 \[X^TX = \begin{bmatrix}1 & 1 & 1 & 1\     1 & 2 & 3 & 4\end{bmatrix} \cdot \begin{bmatrix}1 & 1 \     1 & 2 \     1 & 3 \     1 & 4\end{bmatrix} = \ \begin{bmatrix}4 & 10 \     10 & 30\end{bmatrix}\]
                • Schritt 4: Berechnung von X^Ty:
                 \[X^Ty = \begin{bmatrix}1 & 1 & 1 & 1 \     1 & 2 & 3 & 4\end{bmatrix} \cdot \begin{bmatrix}2 \     2.8 \     3.6 \     4.5\end{bmatrix} = \ \begin{bmatrix}2 + 2.8 + 3.6 + 4.5 \     2 \cdot 1 + 2.8 \cdot 2 + 3.6 \cdot 3 + 4.5 \cdot 4\end{bmatrix} = \ \begin{bmatrix}12.9 \     37.1\end{bmatrix}\]
                • Schritt 5: Bestimmung der Koeffizienten \( \beta \):
                 \[\beta = (X^TX)^{-1}X^Ty\] 

                Wir müssen zuerst die Inverse von X^TX berechnen:

                 \[(X^TX)^{-1} = \begin{bmatrix}4 & 10 \ 10 & 30\end{bmatrix}^{-1}\] 

                Mit der Formel für die Inverse einer 2x2-Matrix erhalten wir:

                 \[\begin{bmatrix}a & b \ c & d\end{bmatrix}^{-1} = \frac{1}{ad - bc} \begin{bmatrix}d & -b \ -c & a\end{bmatrix}\] 

                Indem wir dies auf unsere Matrix X^TX anwenden, erhalten wir:

                 \[(X^TX)^{-1} = \frac{1}{4 \cdot 30 - 10 \cdot 10} \begin{bmatrix}30 & -10 \ -10 & 4\end{bmatrix} = \frac{1}{40} \begin{bmatrix}30 & -10 \ -10 & 4\end{bmatrix} = \begin{bmatrix}0.75 & -0.25 \ -0.25 & 0.1\end{bmatrix}\]

                Nun können wir die Koeffizienten \( \beta \) berechnen:

                 \[\beta = \begin{bmatrix}0.75 & -0.25 \ -0.25 & 0.1\end{bmatrix} \cdot \begin{bmatrix}12.9 \ 37.1\end{bmatrix} = \begin{bmatrix}0.75 \cdot 12.9 + (-0.25) \cdot 37.1 \ -0.25 \cdot 12.9 + 0.1 \cdot 37.1\end{bmatrix} = \begin{bmatrix}9.675 - 9.275 \ -3.225 + 3.71\end{bmatrix} = \begin{bmatrix}0.40 \ 0.485\end{bmatrix}\] 

                Die Koeffizienten sind also:

                • \( \beta_0 = 0.40 \)
                • \( \beta_1 = 0.485 \)

                c)

                Verifiziere Deine berechneten Koeffizienten \( \beta \) durch Einsetzen in die Anpassungsgleichung und berechne die vorhergesagten Werte \( \tilde{y} \) für die gegebenen \( x \)-Werte.

                Lösung:

                Wir haben die Koeffizienten \( \beta_0 \) und \( \beta_1 \) berechnet, und sie sind:

                • \( \beta_0 = 0.40 \)
                • \( \beta_1 = 0.485 \)

                Nun verifizieren wir diese Koeffizienten, indem wir sie in die Anpassungsgleichung einsetzen und die vorhergesagten Werte \( \tilde{y} \) für die gegebenen \( x \)-Werte berechnen.

                Die Anpassungsgleichung lautet:

                 \[\tilde{y} = \beta_0 + \beta_1 x \]

                Für die gegebenen \( x \)-Werte berechnen wir die vorhergesagten \( y \)-Werte wie folgt:

                • Für \( x = 1 \):
                 \[\tilde{y}_1 = 0.40 + 0.485 \cdot 1 = 0.885\]
              • Für \( x = 2 \):
              •  \[\tilde{y}_2 = 0.40 + 0.485 \cdot 2 = 1.37\]
              • Für \( x = 3 \):
              •  \[\tilde{y}_3 = 0.40 + 0.485 \cdot 3 = 1.855\]
              • Für \( x = 4 \):
              •  \[\tilde{y}_4 = 0.40 + 0.485 \cdot 4 = 2.34\]

              Die vorhergesagten Werte sind somit:

              • Für \( x = 1 \): \( \tilde{y}_1 = 0.885 \)
              • Für \( x = 2 \): \( \tilde{y}_2 = 1.37 \)
              • Für \( x = 3 \): \( \tilde{y}_3 = 1.855 \)
              • Für \( x = 4 \): \( \tilde{y}_4 = 2.34 \)

              d)

              Berechne die Residuenquadratsumme (RSS) für das Modell und interpretiere den Wert im Kontext der Modellanpassung.

              Lösung:

              Um die Residuenquadratsumme (RSS) für das Modell zu berechnen und deren Wert im Kontext der Modellanpassung zu interpretieren, folgen diese Schritte:

              • Berechnung der vorhergesagten Werte \( \tilde{y} \) basierend auf den berechneten Koeffizienten \( \beta_0 = 0.40 \) und \( \beta_1 = 0.485 \).
              • Berechnung der Residuen.
              • Berechnung der RSS.

              ### Berechnung der vorhergesagten Werte \( \tilde{y} \)

              • Für \( x = 1 \):
              \[ \tilde{y}_1 = 0.40 + 0.485 \times 1 = 0.885 \]
              • Für \( x = 2 \):
              \[ \tilde{y}_2 = 0.40 + 0.485 \times 2 = 1.37 \]
              • Für \( x = 3 \):
              \[ \tilde{y}_3 = 0.40 + 0.485 \times 3 = 1.855 \]
              • Für \( x = 4 \):
              \[ \tilde{y}_4 = 0.40 + 0.485 \times 4 = 2.34 \]

              Diese vorhergesagten Werte \( \tilde{y} \) sind: \( \tilde{y}_1 = 0.885 \), \( \tilde{y}_2 = 1.37 \), \( \tilde{y}_3 = 1.855 \) und \( \tilde{y}_4 = 2.34 \).

              ### Berechnung der Residuen

              Die Residuen sind die Differenzen zwischen den beobachteten Werten \( y \) und den vorhergesagten Werten \( \tilde{y} \).

              • Für \( y_1 = 2 \):
              \[ \text{Residuum}_1 = y_1 - \tilde{y}_1 = 2 - 0.885 = 1.115 \]
              • Für \( y_2 = 2.8 \):
              \[ \text{Residuum}_2 = y_2 - \tilde{y}_2 = 2.8 - 1.37 = 1.43 \]
              • Für \( y_3 = 3.6 \):
              \[ \text{Residuum}_3 = y_3 - \tilde{y}_3 = 3.6 - 1.855 = 1.745 \]
              • Für \( y_4 = 4.5 \):
              \[ \text{Residuum}_4 = y_4 - \tilde{y}_4 = 4.5 - 2.34 = 2.16 \]

              ### Berechnung der RSS

              Die RSS ist die Summe der Quadrate dieser Residuen:

              \[ \text{RSS} = (\text{Residuum}_1)^2 + (\text{Residuum}_2)^2 + (\text{Residuum}_3)^2 + (\text{Residuum}_4)^2 \]
              \[ \text{RSS} = (1.115)^2 + (1.43)^2 + (1.745)^2 + (2.16)^2 \]

              Rechnen wir die einzelnen Quadrate aus:

              • \( (1.115)^2 = 1.243225 \)
              • \( (1.43)^2 = 2.0449 \)
              • \( (1.745)^2 = 3.045025 \)
              • \( (2.16)^2 = 4.6656 \)

              Berechnen der Summe dieser Quadrate:

              \[ \text{RSS} = 1.243225 + 2.0449 + 3.045025 + 4.6656 = 10.99875 \]

              ### Interpretation der RSS

              Die Residuenquadratsumme (RSS) gibt an, wie gut das Modell die Datenpunkte anpasst. Ein kleinerer RSS-Wert bedeutet eine bessere Anpassung des Modells an die Daten. Hier haben wir einen RSS-Wert von 10.99875. Dies zeigt, dass unser lineares Modell eine gewisse Diskrepanz zwischen den beobachteten und vorhergesagten Werten aufweist. Je kleiner dieser Wert, desto besser ist die Annäherung. Dieser Wert gibt uns eine numerische Möglichkeit zu bewerten, wie gut unser Modell die gegebenen Daten anpasst.

    Sign Up

    Melde dich kostenlos an, um Zugriff auf das vollständige Dokument zu erhalten

    Mit unserer kostenlosen Lernplattform erhältst du Zugang zu Millionen von Dokumenten, Karteikarten und Unterlagen.

    Kostenloses Konto erstellen

    Du hast bereits ein Konto? Anmelden