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

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
Letzte ÜberarbeitungBeide Seiten, nächste Überarbeitung
pruefungen:bachelor:algoks:loesungws12 [07.02.2014 18:18] Dawodopruefungen:bachelor:algoks:loesungws12 [09.07.2015 11:10] na02zijy
Zeile 82: Zeile 82:
 **a)** **a)**
  
-x = (-1, 2, -1, 2)^T+x = (1, 2, -1, 2)^T
  
 **b)** **b)**
Zeile 116: Zeile 116:
 **c)** **c)**
  
-s_0 = (-4, 2)^T \\+s_0 = (-4, -2)^T \\
 t_0 = 1/2 \\ t_0 = 1/2 \\
 x_1 = (-1, 0)^T x_1 = (-1, 0)^T
Zeile 123: Zeile 123:
  
 <code> <code>
-|x_i+1 - x*| <= c * |x_i - x*|+|x_i+1 - x*| <= c * |x_i - x*| , wobei 0<c<1
 </code> </code>
  
Zeile 188: Zeile 188:
 n_2(x) = (x + 1) * (x - 1) n_2(x) = (x + 1) * (x - 1)
  
-a_0 = 3/2 \\ +a_0 = -1 \\ 
-a_1 = 1/6+a_1 = 3/2 \\ 
 +a_2 = 1/6
  
 ==== Aufgabe 9 - Programmierung: Coons Patches ==== ==== Aufgabe 9 - Programmierung: Coons Patches ====
Zeile 199: Zeile 200:
  float f_t = (1-s) * m_t0.f(t) + s * m_t1.f(t);  float f_t = (1-s) * m_t0.f(t) + s * m_t1.f(t);
  float f_s = (1-t) * m_s0.f(s) + t * m_s1.f(s);  float f_s = (1-t) * m_s0.f(s) + t * m_s1.f(s);
- float f_st = (1-t) * (1-s) * m_t0.f(0) + (1-s) * t * m_s1.f(0) ++ float f_st = (1-t) * (1-s) * m_t0.f(0) + (1-s) * t * m_t0.f(1) +
  (1-t) * s * m_t1.f(0) + t * s * m_t1.f(1);  (1-t) * s * m_t1.f(0) + t * s * m_t1.f(1);
   
Zeile 212: Zeile 213:
  float f_t = (-1) * m_t0.f(t) + m_t1.f(t);  float f_t = (-1) * m_t0.f(t) + m_t1.f(t);
  float f_s = (1-t) * m_s0.d(s) + t * m_s1.d(s);  float f_s = (1-t) * m_s0.d(s) + t * m_s1.d(s);
- float f_st = (1-t) * (-1) * m_t0.f(0) + (-1) * t * m_s1.f(0) ++ float f_st = (1-t) * (-1) * m_t0.f(0) + (-1) * t * m_t0.f(1) +
  (1-t) * m_t1.f(0) + t * m_t1.f(1);  (1-t) * m_t1.f(0) + t * m_t1.f(1);
   
Zeile 238: Zeile 239:
 <code cpp> <code cpp>
 float CCSMatrix::getEntry(unsigned int i, unsigned int j) { float CCSMatrix::getEntry(unsigned int i, unsigned int j) {
- for(int rowP = _colPtr[j]; rowP < _colPtr[j+1]; rowP++) { + for(int colP = _colPtr[j]; colP < _colPtr[j+1]; colP++) { 
- if(_rowIndices[rowP] == i) + if(_rowIndices[colP] == i) 
- return _values[rowP];+ return _values[colP];
  }  }
   
Zeile 247: Zeile 248:
 </code> </code>
  
-**b)**+**c)**
  
 <code cpp> <code cpp>
Zeile 256: Zeile 257:
  _values = new float[_nonZeroElements];  _values = new float[_nonZeroElements];
  _rowIndices = new int[_nonZeroElements];  _rowIndices = new int[_nonZeroElements];
- _colPtr = new int[width + 1];+ _colPtr = new int[_width + 1];
   
  int t = 0;  int t = 0;
Zeile 266: Zeile 267:
  if(el != 0) {  if(el != 0) {
  _values[t] = elem;  _values[t] = elem;
- _rowIndives[t] = r;+ _rowIndices[t] = r;
  t++;  t++;
  }  }
Zeile 275: Zeile 276:
 </code> </code>
  
-**b)**+**d)**
  
 <code cpp> <code cpp>
Zeile 285: Zeile 286:
   
  float sum = 0.0f;  float sum = 0.0f;
- for(int rowP = other._colPtr[c]; rowP < other._colPtr[c+1]; rowP++) { + for(int colP = other._colPtr[c]; colP < other._colPtr[c+1]; colP++) { 
- float v = other._values[rowP]; + float v = other._values[colP]; 
- sum += v * getEntry(r, other._rowIndices[rowP]);+ sum += v * getEntry(r, other._rowIndices[colP]);
  }  }
  result.setEntry(r, c, sum);  result.setEntry(r, c, sum);
- if(sum != 0) { +
- result._nonZeroElements++; +
- +
  }  }
  }  }
 } }
 </code> </code>