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 [20.07.2014 23:05] ellipruefungen: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 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 200: 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_s0.f(0) + t * s * m_t1.f(1);+ (1-t) * s * m_t1.f(0) + t * s * m_t1.f(1);
   
  return f_s + f_t - f_st;  return f_s + f_t - f_st;
Zeile 213: 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 239: 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 248: Zeile 248:
 </code> </code>
  
-**b)**+**c)**
  
 <code cpp> <code cpp>
Zeile 257: 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 267: Zeile 267:
  if(el != 0) {  if(el != 0) {
  _values[t] = elem;  _values[t] = elem;
- _rowIndives[t] = r;+ _rowIndices[t] = r;
  t++;  t++;
  }  }
Zeile 276: Zeile 276:
 </code> </code>
  
-**b)**+**d)**
  
 <code cpp> <code cpp>
Zeile 286: 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>