10 - Einführung in die Numerische Mathematik [ID:2497]
50 von 707 angezeigt

Grüß Gott zusammen. Ich will nochmal an dem Beispiel des QR-Verfahrens ein bisschen was erläutern,

was wir für angemessene Programmiertechniken halten und das sollten Sie sich auch zu Herzen nehmen,

wenn Sie wollen, dass wir das, was Sie also in den Testaten abliefern, dann auch für sinnvoll erachten.

Man kann sich ja fragen, warum überhaupt Matlab? Matlab war damals in guten alten Zeiten,

wo es noch kein Matlab gab, hat man an einer ordentlichen Programmiersprache programmiert.

Also ich habe angefangen mit Algold 60, dann habe ich 68 gelernt, Simula, Fortran, Lisp,

was auch immer, so 10, 15 Sprachen vielleicht im Laufe der Zeit. Wenn man mal eine kann,

kann man die anderen auch relativ schnell lernen. All diese Sprachen haben eben,

sind eben sozusagen auf einem reellen Datentyp passiert und erwarten, dass man selbst ein

Datenmanagement vornimmt. Das ist heutzutage immer noch so in C oder C++ und da bietet

eben Matlab viele Möglichkeiten, die einen den Einstieg da erleichtert. Wenn man das aber sozusagen

blind anwendet, das haben wir auch schon gesehen, kann man durchaus auch ineffiziente Codes erhalten.

Das heißt also, Herr Frank hat Ihnen beigebracht, dass Sie Ihre Felder belegen sollten,

am Anfang, damit im Rahmen des Interpretervorgangs wirklich da nicht Speicherplatz nachgeladen

werden muss. Und ähnlich ist die Situation auch mit dem Nutzen der Vektorfunktion oder

der Vektorfähigkeit von Matlab. Natürlich könnten wir sagen, alles was wir hier machen,

ist doch für die Cuts. Wir machen A-Begslesh-B und damit ist die Sache erledigt. Was vom Standpunkt

einer blinden Anwendung durchaus auch sinnvoll ist und Matlab ist natürlich auch ein sehr,

sehr gutes Tool. Wir haben aber andererseits auch gesehen, dass man auch dieses wunderbare Tool

natürlich auch mit schwierigen Problemen an die Wand fahren kann. Das spricht nicht gegen Matlab,

das zeigt eben nur, dass man ein bisschen vorsichtig sein sollte, für Software-Tools einfach so anzuwenden.

Was wir also jetzt hier machen, ist, indem wir so numerik einüben, indem wir Algorithmen

programmieren, wir machen so einen Zwischenweg. Wir programmieren Matlab letztlich wie eine

höhere Programmiersprache und nutzen ein Stück weit so, wo das sinnvoll ist und gegeben ist,

die Vektorfunktionen von Matlab aus. Das sollte der Mittelweg sein, an dem Sie sich orientieren.

Das eine Extrem ist eben, man vergisst die gesamten Vektorfunktionen und man schreibt

nur reelle Operationen, das ist im Prinzip nicht falsch, nutzt aber die Matlab-Funktionen

nicht aus. A-Begslesh-B wäre eben nicht der richtige Zugang und man darf es auch nicht

übertreiben. Und zwar übertreiben in dem Sinne, dass man versucht einen möglichst

übersichtlichen Code zu bekommen unter zulasten der Effizienz. Jetzt was heißt das konkret

für die QR-Zerlegung oder vielleicht auch schon für die LR-Zerlegung? Wir haben ja

gesehen, QR-Zerlegung heißt einfach nur, oder so wie wir es besprochen haben, in Form

des Haushalterverfahrens heißt nur, mit Spiegelungsmatrizen zu multiplizieren, mit Haushaltermatrizen

zu multiplizieren. Warum bauen wir diese Haushaltermatrizen als Identität minus zweimal

dyadisches Produkt des betreffenden Vektors auf? Und dann multiplizieren wir einfach mit

dieser Matrix durch. Das kann man machen, ist ein extrem übersichtlicher Code, wird

aber für marginale Dimensionen schon sehr ineffizient. Können Sie mal ausprobieren.

Das gilt generell jetzt für alles weitere. Wir machen ja auch keine LR-Zerlegung dadurch,

dass wir explizit mit den Frobenius-Matrizen multiplizieren. Das ist eben ein theoretischer

Hilfsmittel, die wir aber dann effizient umsetzen müssen.

Wir haben jetzt hier nochmal sozusagen nochmal in Vorbereitung der neuen Programmieraufgabe,

wo es jetzt wirklich dann etwas gezielter ums QR-Verfahren geht, auch in einer anderen

Variante, wo dann die Haushaltertransformationen, die Spiegelungen durch Drehungen, durch Givens-Rotationen

ausgetauscht werden, haben wir nochmal eine Variante aufgeschrieben. Ist nicht absolut

perfekt, aber es ist schon ein bisschen übersichtlicher als die, die ich Ihnen das letzte Mal gezeigt

habe, in dem da, wo es sind, das ist sozusagen der alte Code, den wir uns das letzte Mal

angeschaut haben, nur jetzt etwas mit Ausnutzung von Vektorfunktionen geschrieben. Ansonsten

ist die Struktur völlig identisch geblieben. Und es ist jetzt sozusagen die Grundform

des QR-Verfahrens in dem Sinne, dass jetzt nicht die QR-Zerlegung aufgebaut wird, sondern

sozusagen ein gegebenes Gleichungssystem AX gleich B mit dem QR-Verfahren gelöst wird.

Zugänglich über

Offener Zugang

Dauer

01:30:00 Min

Aufnahmedatum

2012-11-14

Hochgeladen am

2013-08-08 01:00:12

Sprache

de-DE

Einbetten
Wordpress FAU Plugin
iFrame
Teilen