Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Prüfungen im Bachelor-Studium (1. - 5. Semester) » algoks » Forendiskussionen   (Übersicht)

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Nächste Überarbeitung
Vorherige Überarbeitung
pruefungen:bachelor:algoks:loesungws10 [31.01.2014 17:57] – angelegt Dawodopruefungen:bachelor:algoks:loesungws10 [22.07.2015 12:44] (aktuell) ellyria
Zeile 7: Zeile 7:
 ==== Aufgabe 1 - Komplexität ==== ==== Aufgabe 1 - Komplexität ====
 **a)** O(n) **a)** O(n)
 +
 **b)** O(n²) **b)** O(n²)
 +
 **c)** O(n) **c)** O(n)
 +
 **d)** O(n) **d)** O(n)
 +
 **e)** O(n²) **e)** O(n²)
 +
 **f)** O(n²) **f)** O(n²)
 +
 **g)** O(n³) **g)** O(n³)
 +
 **h)** O(n²) **h)** O(n²)
  
Zeile 20: Zeile 27:
  
 <code> <code>
-l(x) = { 0 für 0 <= x < 1 +l(x) = { 0            für 0 <= x < 1 
- { 12x - 12 für 1 <= x < 2 +        { 12x - 12     für 1 <= x < 2 
- { 60x - 108 für 2 <= x < 3+        { 60x - 108    für 2 <= x < 3
 </code> </code>
  
 **b)** **b)**
  
-Koeffizienten+Koeffizienten \\
 c0 = 0, c1 = 0, c2 = 6, c3 = 6 c0 = 0, c1 = 0, c2 = 6, c3 = 6
  
-Polynom:+Polynom: \\
 a(x) = 6x³ - 12x² + 6x a(x) = 6x³ - 12x² + 6x
  
 **c)** **c)**
 +
 <code> <code>
 |1  0  0  0 | |1  0  0  0 |
Zeile 42: Zeile 50:
  
 **d)** **d)**
 +
 Die Systemmatrix A ist eine untere Dreiecksmatrix und lässt sich einfach durch Vorwärtseinsetzen lösen. Die Systemmatrix A ist eine untere Dreiecksmatrix und lässt sich einfach durch Vorwärtseinsetzen lösen.
  
Zeile 47: Zeile 56:
  
 **a)** **a)**
 +
 <code> <code>
- |1 0 0 0|+    |1 0 0 0|
 L = |2 1 0 0| L = |2 1 0 0|
- |0 3 1 0| +    |0 3 1 0| 
- |0 0 2 1|+    |0 0 2 1|
   
- |2 1 4 1|+    |2 1 4 1|
 U = |0 1 1 1| U = |0 1 1 1|
- |0 0 2 1| +    |0 0 2 1| 
- |0 0 0 3|+    |0 0 0 3|
 </code> </code>
  
Zeile 66: Zeile 76:
  
 **a)** **a)**
 +
   * Affine Invarianz   * Affine Invarianz
   * Bézier-Kurven liegt in der konvexen Hülle   * Bézier-Kurven liegt in der konvexen Hülle
Zeile 80: Zeile 91:
  
 **a)** **a)**
 +
 Fläche im spitzen Winkel bei T Fläche im spitzen Winkel bei T
  
 **b)** **b)**
 +
 Halbgerade RS links von R (exklusiv) Halbgerade RS links von R (exklusiv)
  
 **c)** **c)**
 +
 Punkt T Punkt T
  
 **d)** **d)**
-...+ 
 +P0: Auf 2/3 der Strecke von R nach S \\ 
 +P1: Relativ mittig im Dreieck, leicht in Richtung T bzwder Strecke TS versetzt \\ 
 +P2: Existiert nicht (Summe ergibt 0 statt 1)
  
 **e)** **e)**
-ρ = -2 + 
-σ = 1 +ρ = -2 \\ 
-τ = 2+σ = 1 \\ 
 +τ = 2 
  
 ==== Aufgabe 6 - Singulärwertzerlegung ==== ==== Aufgabe 6 - Singulärwertzerlegung ====
  
 **a)** **a)**
-Singulärwerte: 3/2, 3/4, 1/2 + 
-Rang: r = 3 +Singulärwerte: 3/2, 3/4, 1/2 \\ 
-Bild: span{(-1/3 -2/3 -2/3)^T, (-2/3 2/3 -1/3)^T, (-2/3 -1/3 2/3)^T} +Rang: r = 3 \\ 
-Kern: span{(1/2 -1/2 -1/2 1/2)^T}+Bild: span{(-1/3 -2/3 -2/3)^T, (-2/3 2/3 -1/3)^T, (-2/3 -1/3 2/3)^T} \\ 
 +Kern: span{(1/2 -1/2 -1/2 1/2)^T} \\
 Konditionszahl: 6/4 * 4/2 = 3 Konditionszahl: 6/4 * 4/2 = 3
  
 **b)** **b)**
 +
 (-14 -4 4 14)^T (-14 -4 4 14)^T
  
 **c)** **c)**
 +
 <code> <code>
- |1  1  1  1| +        |1  1  1  1| 
--1/4 x |2  2  2  2| +-1/4 x  |2  2  2  2| 
- |2  2  2  2|+        |2  2  2  2|
 </code> </code>
  
 ==== Aufgabe 7 - Programmierung ==== ==== Aufgabe 7 - Programmierung ====
-... 
- 
-==== Aufgabe 8 - Numerische Integration ==== 
  
 **a)** **a)**
-20+ 
 +<code cpp> 
 +BezierCurve::BezierCurve(const Point* CPs, int numCPs) { 
 + this-numCPs = numCPs; 
 + this->CPs = new Point[numCPs]; 
 +  
 + for(int i = 0; i < numCPs; i++) { 
 + this->CPs[i] = CPs[i]; 
 +
 +
 + 
 +BezierCurve::~BezierCurve() { 
 + delete[] CPs; 
 +
 +</code>
  
 **b)** **b)**
-17+ 
 +<code cpp> 
 +void BezierCurve::removeControlPoint(int idx) { 
 + Points* newCPs = new Point[numCPs - 1]; 
 +  
 + for(int i = 0; i < numCPs; i++) { 
 + if(i < idx) 
 + newCPs[i] = CPs[i]; 
 +  
 + if(i > idx) { 
 + newCP[i - 1] = CPs[i]; 
 +
 +  
 + delete[] CPs; 
 + CPs = newCPs; 
 +  
 + this-numCPs = numCPs - 1; 
 +
 +</code>
  
 **c)** **c)**
-16+ 
 +<code cpp> 
 +Point BezierCurve::desCastlejau(float t) const { 
 + Point tmpCPs[numCPs]; 
 +  
 + for(int i = 0; i < numCPs; i++) 
 + tmpCPs[i] = CPs[i]; 
 +  
 + for(int c = 1; c < numCPs; c++) { 
 + for(int r = 0; r < numCPs, numCPs - c; r++) { 
 + tmpCPs[r] = (1-t) * tmpCPs[r] + t * tmpCPs[r + 1]; 
 +
 +
 +  
 + return tmpCPs[0]; 
 +
 +</code>
  
 **d)** **d)**
-16+ 
 +<code cpp> 
 +void BezierCurve::degreeElevation() { 
 + Point* newCPs = new Point[numCPs + 1]; 
 + newArr[0] = CPs[0]; 
 + newArr[numCPs] = CPs[numCPs - 1]; 
 +  
 + for(int i = 1; i < numCPs; i++) { 
 + float t = i / (numCPs + 1); 
 + float z = (numCPs + 1 - i) / (numCPs + 1); 
 + newArr[i] = t * CPs[i - 1] + z * CPs[i]; 
 +
 +  
 + delete[] CPs; 
 + CPs = newArr; 
 + numCPs++; 
 +
 +</code>
  
 **e)** **e)**
-16 
  
-**f)** +<code cpp> 
-O()+void BezierCurve::reflectCurve(const Point& p{ 
 + for(int i = 0; i < numCPs; i++) 
 + CPs[i] = 2 * p - CPs[i]; 
 +
 +</code>
  
-**g)** + 
-O(h^4)+**c)** 
 + 
 +==== Aufgabe 8 - Numerische Integration ==== 
 + 
 +**a)** 20 
 + 
 +**b)** 17 
 + 
 +**c)** 16 
 + 
 +**d)** 16 
 + 
 +**e)** 16 
 + 
 +**f)** O(h²) 
 + 
 +**g)** O(h^4)
  
 ==== Aufgabe 9 - Matrix-Norm und Kondition ==== ==== Aufgabe 9 - Matrix-Norm und Kondition ====
  
 **a)** **a)**
-Das Problem ist für Funktion g(x) besser konditioniert, da die Tangente bei x = 1 eine geringere Steigung aufweist: + 
-K(f) = π +Das Problem ist für Funktion g(x) besser konditioniert, da die Tangente bei x = 1 eine geringere Steigung aufweist: \\ 
-K(g) = 1/π+K(f) = π \\ 
 +K(g) = 1/π \\
 g hat die kleinere Konditionszahl. g hat die kleinere Konditionszahl.
  
 **b)** **b)**
 +
 7, 5, 19, 24, 6, 6 7, 5, 19, 24, 6, 6
  
 **c)** **c)**
-mit 1-Norm: + 
-K(A_1) = 49/25+mit 1-Norm: \\ 
 +K(A_1) = 49/25 \\
 K(A_3) = 24 K(A_3) = 24
  
 **d)** **d)**
-Die Geraden von SP_1 stehen fast senkrecht aufeinander. + 
-Die Geraden von SP_2 verlaufen relativ parallel.+Die Geraden von SP_1 stehen fast senkrecht aufeinander. \\ 
 +Die Geraden von SP_2 verlaufen relativ parallel. \\
 Damit ist SP_1 besser konditioniert. Damit ist SP_1 besser konditioniert.
  
Zeile 165: Zeile 271:
  
 **a)** **a)**
 +
 ... ...
  
 **b)** **b)**
-x_2 = 1/2+ 
 +x_2 = 1/2 \\
 x_3 = -7 x_3 = -7
  
 **c)** **c)**
 +
 (-4, 3)^T (-4, 3)^T