C++ for Scientists - Technische Universität Dresden
C++ for Scientists - Technische Universität Dresden C++ for Scientists - Technische Universität Dresden
286 KAPITEL 15. PROGRAMMIERPROJEKTE 15.2 Exponisation von Matrizen e A Implementieren Sie Algorithmen für e A für verschiedene Matrixtypen, insbesondere schwach besetzte Matrizen. Nutzen Sie die in der MTL4 vorhandenen Algorithmen zum Lösen von Gleichungssystemen. Artikel von Cleve Moller, “19 dubios ways. . . ” 15.3 LU-Zerlegung für m × n-Matrizen m, n L U m = n unteres Dreieck oberes Dreieck m > n Trapez oberes Dreieck m < n unteres Dreieck Trapez A = P · L · U (15.1) Bei L wird die Diagonale=1, daher nicht mit gespeichert. Berechung der Lösung eines Systems von Gleichungen und anschließende Fehlerberechung. Siehe http://software.intel.com/sites/products/documentation/hpc/mkl/mklman/lle/functn_getrf.htm. 15.4 Bunch-Kaufman Zerlegung A mit A = A T Implementiere die Zerlegung: • Überrschreibend, A = P · U · D · U T · P T (15.2) • und entwickle Funktionen zum Extrahieren von P , U und D aus dem resultierenden A. • Kopiere A, berechne die Zerlegung und gib P , U und D als Tuple zurück. Siehe http://software.intel.com/sites/products/documentation/hpc/mkl/mklman/lle/functn_sytrf.htm. 15.5 Konditionszahl (reziprok) • Im allgemeinen Fall LU nutzen. – Cholesky, wenn symmetrisch. ∗ Gegebenenfalls Bunch-Kaufmann . . .
15.6. MATRIX-SKALIERUNG 287 Siehe http://software.intel.com/sites/products/documentation/hpc/mkl/mklman/lle/functn_gecon.htm. 15.6 Matrix-Skalierung Für dicht und schach besetzte Matrizen Zeilen- und Spalten-Skalierungsfaktoren. Damit größter Matrixeintrag in jeder Zeile und Spalte 1 ist. Siehe http://software.intel.com/sites/products/documentation/hpc/mkl/mklman/lle/functn_geequ.htm. 15.7 QR mit Überschreiben Implementieren Sie verschiedene eine Zerlegung mit Q orthogal/unitär für reelle/komplexe A. Realisieren Sie: • Eine überschreibende Faktorisierung wie in LAPACK, • Funktionen zum Extrahieren von Q und R, • Eine Version, die A kopiert und Q und R als Paar zurückgibt. • Schreiben Sie Tests oder Anwendungen. A = QR (15.3) Siehe http://software.intel.com/sites/products/documentation/hpc/mkl/mklman/lse/functn_orgqr.htm, http://software.intel.com/sites/products/documentation/hpc/mkl/mklman/lse/functn_ungqr.htm, http://software.intel.com/sites/products/documentation/hpc/mkl/mklman/lse/functn_ormqr.htm, http://software.intel.com/sites/products/documentation/hpc/mkl/mklman/lse/functn_unmqr.htm. 15.8 Direkter Löser für schwach besetzte Matrizen Implementieren Sie einen direkten Löser rekursiv. • Die Matrix sollte hierarchisch als Quad-Baum dargestellt werden. • Die Operationen sollen auch rekursiv auf Blöcken durchgeführt werden: – Matrixaddition und -subtrakion, – Matrixmultiplikation, – Inverse von Teilbäumen – Pivotisierung auf ∗ Spalte,
- Page 235 and 236: Programming tools Chapter 10 In thi
- Page 237 and 238: 10.2. DEBUGGING 237 T& glas::contin
- Page 239 and 240: 10.3. VALGRIND 239 Stepi and Nexti
- Page 241 and 242: 10.5. UNIX AND LINUX 241 • top: l
- Page 243 and 244: C ++ Libraries for Scientific Compu
- Page 245 and 246: 11.3. BOOST.BINDINGS 245 • Math a
- Page 247 and 248: 11.3. BOOST.BINDINGS 247 #include
- Page 249 and 250: 11.4. MATRIX TEMPLATE LIBRARY 249 c
- Page 251 and 252: 11.7. GEOMETRIC LIBRARIES 251 11.7.
- Page 253 and 254: Real-World Programming Chapter 12 1
- Page 255 and 256: 12.1. TRANSCENDING LEGACY APPLICATI
- Page 257 and 258: 12.1. TRANSCENDING LEGACY APPLICATI
- Page 259 and 260: Parallelism Chapter 13 13.1 Multi-T
- Page 261 and 262: 13.2. MESSAGE PASSING 261 int main
- Page 263 and 264: Numerical exercises Chapter 14 In t
- Page 265 and 266: 14.1. COMPUTING AN EIGENFUNCTION OF
- Page 267 and 268: 14.1. COMPUTING AN EIGENFUNCTION OF
- Page 269 and 270: 14.1. COMPUTING AN EIGENFUNCTION OF
- Page 271 and 272: 14.1. COMPUTING AN EIGENFUNCTION OF
- Page 273 and 274: 14.3. THE SOLUTION OF A SYSTEM OF D
- Page 275 and 276: 14.4. GOOGLE’S PAGE RANK 275 Taki
- Page 277 and 278: 14.5. THE BISECTION METHOD FOR FIND
- Page 279 and 280: 14.6. THE NEWTON-RAPHSON METHOD FOR
- Page 281 and 282: 14.7. SEQUENTIAL NOISE REDUCTION OF
- Page 283 and 284: 14.7. SEQUENTIAL NOISE REDUCTION OF
- Page 285: Programmierprojekte Kapitel 15 Die
- Page 289 and 290: 15.10. ANWENDUNG MTL4 AUF TYPEN MIT
- Page 291 and 292: Acknowledgement Chapter 16 Special
- Page 293: Bibliography [AG04] David Abrahams
15.6. MATRIX-SKALIERUNG 287<br />
Siehe http://software.intel.com/sites/products/documentation/hpc/mkl/mklman/lle/functn_gecon.htm.<br />
15.6 Matrix-Skalierung<br />
Für dicht und schach besetzte Matrizen Zeilen- und Spalten-Skalierungsfaktoren. Damit größter<br />
Matrixeintrag in jeder Zeile und Spalte 1 ist.<br />
Siehe http://software.intel.com/sites/products/documentation/hpc/mkl/mklman/lle/functn_geequ.htm.<br />
15.7 QR mit Überschreiben<br />
Implementieren Sie verschiedene eine Zerlegung<br />
mit Q orthogal/unitär für reelle/komplexe A. Realisieren Sie:<br />
• Eine überschreibende Faktorisierung wie in LAPACK,<br />
• Funktionen zum Extrahieren von Q und R,<br />
• Eine Version, die A kopiert und Q und R als Paar zurückgibt.<br />
• Schreiben Sie Tests oder Anwendungen.<br />
A = QR (15.3)<br />
Siehe http://software.intel.com/sites/products/documentation/hpc/mkl/mklman/lse/functn_orgqr.htm,<br />
http://software.intel.com/sites/products/documentation/hpc/mkl/mklman/lse/functn_ungqr.htm,<br />
http://software.intel.com/sites/products/documentation/hpc/mkl/mklman/lse/functn_ormqr.htm,<br />
http://software.intel.com/sites/products/documentation/hpc/mkl/mklman/lse/functn_unmqr.htm.<br />
15.8 Direkter Löser für schwach besetzte Matrizen<br />
Implementieren Sie einen direkten Löser rekursiv.<br />
• Die Matrix sollte hierarchisch als Quad-Baum dargestellt werden.<br />
• Die Operationen sollen auch rekursiv auf Blöcken durchgeführt werden:<br />
– Matrixaddition und -subtrakion,<br />
– Matrixmultiplikation,<br />
– Inverse von Teilbäumen<br />
– Pivotisierung auf<br />
∗ Spalte,