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
pruefungen:bachelor:algoks:loesungws12 [20.07.2014 22:43] ellipruefungen:bachelor:algoks:loesungws12 [11.02.2017 11:26] (aktuell) soeren563
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_t1.f(0) + t * s * m_t1.f(1);  (1-t) * s * m_t1.f(0) + t * s * m_t1.f(1);
   
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++;
  }  }
  }  }
- _colPtr[c] = t;+ _colPtr[c+1] = t;
  }  }
 } }
 </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>