Numerisches Programmieren



Ähnliche Dokumente
Numerisches Programmieren

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

Numerisches Programmieren

Numerisches Programmieren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Lineare Gleichungssysteme

Lineare Gleichungssysteme

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Professionelle Seminare im Bereich MS-Office

Praktische Mathematik: Lineare und Netzwerk-Optimierung (SS 2015) Praktikumsaufgaben

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Anwendungsbeispiele Buchhaltung

Lineare Gleichungssysteme I (Matrixgleichungen)

Erstellen von x-y-diagrammen in OpenOffice.calc

Kapitel 15. Lösung linearer Gleichungssysteme

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen

Beispiel Shop-Eintrag Ladenlokal & Online-Shop im Verzeichnis 1

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Eigenen Farbverlauf erstellen

Microsoft Access 2013 Navigationsformular (Musterlösung)

Zeichen bei Zahlen entschlüsseln

Theoretische Grundlagen der Informatik WS 09/10

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

AZK 1- Freistil. Der Dialog "Arbeitszeitkonten" Grundsätzliches zum Dialog "Arbeitszeitkonten"

Erstellen einer digitalen Signatur für Adobe-Formulare

Jede Zahl muss dabei einzeln umgerechnet werden. Beginnen wir also ganz am Anfang mit der Zahl,192.

Anleitung für Berichte in Word Press, auf der neuen Homepage des DAV Koblenz

Berechnungen in Access Teil I

Um über FTP Dateien auf Ihren Public Space Server - Zugang laden zu können benötigen Sie folgende Angaben:

3. LINEARE GLEICHUNGSSYSTEME

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)

Guide DynDNS und Portforwarding

Primzahlen und RSA-Verschlüsselung

1. Software installieren 2. Software starten. Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software

Elexis-BlueEvidence-Connector

Informatik I Tutorial

1 Mathematische Grundlagen

Excel Pivot-Tabellen 2010 effektiv

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Schrittweise Anleitung zur Installation von Zertifikaten der Bayerischen Versorgungskammer im Mozilla Firefox ab Version 2.0

Stammdatenanlage über den Einrichtungsassistenten

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

Wie halte ich Ordnung auf meiner Festplatte?

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

Lineare Gleichungssysteme

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Lineare Algebra und Lösung linearer zeitinvarianter Differentialgleichungssysteme

Übung: Verwendung von Java-Threads

Anleitung: Sammel-Rechnungen für Lizenzen bei Swiss Basketball

Erklärung zum Internet-Bestellschein

Aufgabe 6 Excel 2013 (Fortgeschrittene) Musterlösung

Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. ist einer davon.

Dossier: Rechnungen und Lieferscheine in Word

Microsoft Access 2010 Navigationsformular (Musterlösung)

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

S TAND N OVEMBE R 2012 HANDBUCH DUDLE.ELK-WUE.DE T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E

Leitfaden zu den Einstellungen in der Office Line anlässlich eines EU-Beitritts

2. Im Admin Bereich drücken Sie bitte auf den roten Button Webseite bearbeiten, sodass Sie in den Bearbeitungsbereich Ihrer Homepage gelangen.

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Neue Steuererklärung 2013 erstellen

Lichtbrechung an Linsen

Umgekehrte Kurvendiskussion

Jeopardy and andere Quizformate im bilingualen Sachfachunterricht Tipps zur Erstellung mit Powerpoint

6 Das Kopieren eines bereits bestehenden Inhaltselements

Task: Nmap Skripte ausführen

EINFACHES HAUSHALT- KASSABUCH

Kurzanweisung für Google Analytics

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Urlaubsregel in David

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Anleitung Anfragepool

LANGFRISTIGE HAUSAUFGABE (LINEARE GLEICHUNGSSYSTEME)

In 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 und Microsoft Windows Virtual PC

Adminer: Installationsanleitung

Im Jahr t = 0 hat eine Stadt Einwohner. Nach 15 Jahren hat sich die Einwohnerzahl verdoppelt. z(t) = at + b

ELO Print&Archive so nutzen Sie es richtig

Schritt 1 - Registrierung und Anmeldung

Bedienungsanleitung für den Online-Shop

Theoretische Informatik SS 04 Übung 1

Anleitung für die Registrierung und das Einstellen von Angeboten

Grundbegriffe der Informatik

Access Verbrecherdatenbank Teil 3

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Funktionsbeschreibung. Lieferantenbewertung. von IT Consulting Kauka GmbH

Wiederkehrende Bestellungen. Tipps & Tricks

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Ihr Ideen- & Projektmanagement-Tool

Individuelle Formulare

Pfötchenhoffung e.v. Tier Manager

Empfehlungen zur Nutzung der CD zum Buch: Klee & Wiemann: Beweglichkeit und Dehnfähigkeit. Schorndorf: Hofmann,

Kurzanleitung. Toolbox. T_xls_Import

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Anleitung über den Umgang mit Schildern

GeoPilot (Android) die App

Konzepte der Informatik

Anwendungsbeispiele. Neuerungen in den s. Webling ist ein Produkt der Firma:

Transkript:

Technische Universität München SS 2012 Institut für Informatik Prof Dr Thomas Huckle Dipl-Inf Christoph Riesinger Dipl-Math Alexander Breuer Dipl-Math Dipl-Inf Jürgen Bräckle Dr-Ing Markus Kowarschik Numerisches Programmieren 3 Programmieraufgabe: Direkte Lösung linearer Gleichungssysteme Direkte Lösung linearer Gleichungssysteme Gauß-Elimination Ziel dieser Programmieraufgabe ist die Implementierung von Verfahren zur Lösung von Systemen linearer Gleichungen Man will also zu gegebenem ein x IR n finden mit A = (a i,j ) 0 i,j<n IR n,n b = (b i ) 0 i<n IR n A x = b Zunächst soll das Gauß-Eliminationsverfahren mit Spaltenpivotsuche implementiert werden Im ersten Schritt des Gauß-Eliminationsverfahrens müssen alle Elemente der ersten Spalte unterhalb der Hauptdiagonalen zu Null werden Dies wird dadurch erreicht, dass von jeder Zeile i die erste Zeile multipliziert mit a i,0 a 0,0 abgezogen wird Die Pivotsuche setzt noch vor diesem Schritt an und sorgt dafür, dass kein Element unter dem Hauptdiagonalenelement a 0,0 betragsmäsig gröser ist als a 0,0 Dazu wird a 0,0 mit sämtlichen Elementen darunter verglichen Falls es ein betragsmäsig Gröseres gibt werden die beiden zugehörigen Zeilen vertauscht Die Pivotsuche wird in jeder Spalte durchgeführt bevor die Einträge unter dem Hauptdiagonalenelement eliminiert werden Im folgenden Beispiel ist die erste Spalte schon fertig bearbeitet D h, es muss nun auf der zweiten Spalte die Pivotsuche durchgeführt werden Von den zu untersuchenden Matrixelementen ist das in der dritten Zeile das betragsmäsig Grösste, die zweite Zeile wird daher mit der dritten Zeile vertauscht: 1 4 8 3 7 0 2 2 4 0 0 3 7 2 1 0 1 5 2 2 1 4 8 3 7 0 3 7 2 1 0 2 2 4 0 0 1 5 2 2 1

Licht Aus Die Ausgangssituation des Spiels Licht Aus 1 ist ein 5x5 Lichtboard an, auf dem einige Lichter eingeschaltet, die restlichen ausgeschaltet sind Durch Klicken auf ein Licht ändert sich dessen Zustand War das Licht an, wird es durch den Klick ausgeschaltet War das Licht aus, wird es umgekehrt durch den Klick eingeschaltet Simultan passiert das Gleiche auch mit den vier Nachbarlichtern: oben, unten, links und rechts Ziel des Spiels ist es, alle Lichter mit möglichst wenigen Klicks auszuschalten Abbildung 1 zeigt die mitgelieferte Lichterboard Java Anwendung, die als Ausgangspunkt für die Programmieraufgabe dient Abbildung 1: Links: Ausgeschaltetes Lichtboard Rechts: Licht 11 wurde geklickt Man kann selbstveständlich - ausgehend von einem Lichtermuster - die Lösung (falls überhaupt vorhanden) durch manuelles Klicken finden Es gibt aber auch eine Möglichkeit, die Lösung zu berechen Dies soll Inhalt dieser Aufgabe sein Eine vollständige Beschreibung der Lösung kann man hier 2 finden Kurz zusammengefasst wird folgendermaßen vorgegangen: Das Lichterboard kann als eine Kette mit 5 5 = 25 binären Einträgen dargestellt werden Eine 1 bedeutet, dass das Licht an der ensprechende Stelle an ist, eine 0 dass es aus ist: 00000 00000 00000 00000 00000 Ein Klick auf das Lichterboard kann ebenso von 25 binären Einträgen dargestellt werden Sind zb alle Lichter auf dem Board aus, würde durch das Klicken auf das Licht im linken oberen Eck (Licht 0) das folgende Board entstehen: a 0 : 11000 10000 00000 00000 00000 also Licht 0, 1 und 5 wären danach eingeschaltet Alle anderen 24 möglichen Klickaktionen können analog dargestellt werden An dieser stelle ahnt man vielleicht schon, dass das Resultat einer Klickaktion nichts anderes als eine XOR-Operation zwischen den binären Ketten des Boards und der Klickaktion ist Beispiel: 1 http://enwikipediaorg/wiki/lights Out (game) 2 http://aix1uottawaca/ jkhoury/gamehtml board: 00000 00011 00001 00000 00000 XOR a 0 : 11000 10000 00000 00000 00000 = 11000 10011 00001 00000 00000 2

Die Klickaktionen a 0 bis a 24 können in einer beliebige Reihenfolge angewendet werden, denn (board XOR a 1 ) XOR a 2 = (board XOR a 2 ) XOR a 1 (Kommutativität und Assoziativität) Das Problem kann man folgendermaßen formuliert werden (Addition ist hier ein XOR): c 0 a 0 + c 1 a 1 + +c 24 a 24 + y = 0 Die Interpretation davon lautet: Welche von den 25 Klickaktionen a 0 bis a 24 muss auf das Ausgangboard y angewandt werden, um am Ende zum Zustand 0 (alles aus) zu gelangen? c i = 1 bedeutet hier, dass die Klickaktion a i angewandt wird, c i = 0 bedeutet, dass die Klickaktion a i nicht angewandt wird Nach einem XOR mit y (Äquivalenzumformung) kommen wir auf: c 0 a 0 + c 1 a 1 + +c 24 a 24 = y Nun kann man das Ganze als ein Lineares Gleichungssystem schreiben: wobei Mx = y A I 0 0 0 1 1 0 0 0 1 0 0 0 0 I A I 0 0 1 1 1 0 0 0 1 0 0 0 M = 0 I A I 0 A = 0 1 1 1 0 I = 0 0 1 0 0 0 0 I A I 0 0 1 1 1 0 0 0 1 0 0 0 0 I A 0 0 0 1 1 0 0 0 0 1 Die Lösungskette x gibt dann an, welche Klicks benötigt werden, um das ganze Board auszuschalten Bandmatrizen Für ein Gleichungssystem mit n Gleichungen benötigt die Gauß-Elimination einen Rechenaufwand von O(n 3 ) Operationen Für Bandmatrizen lässt sich der Rechenaufwand aber erheblich reduzieren Bandmatrizen sind Matrizen, bei denen nur auf der Hauptdiagonalen und einigen Nebendiagonalen Elemente ungleich Null sind: a 0,0 a 1,pA 1 a qa 1,1 an pa,n 1 a n 1,n qa a n 1,n 1 Die untere Bandbreite q A ist die Anzahl der Nebendiagonalen unterhalb der Hauptdiagonalen inklusive der Hauptdiagonalen Die obere Bandbreite p A ist analog definiert Die Gesamtbandbreite des Bandes ist somit p A + q A 1 Ein Gleichungssystem einer solchen Struktur lässt sich mit O(n p A q A ) Operationen lösen 3

LR-Zerlegung ( = LU-Zerlegung) Ein Nachteil des Gauß-Eliminationsverfahrens ist, dass man das komplette Gleichungssystem erneut lösen muss, selbst wenn sich nur der Vektor b ändert, die Matrix A aber gleich bleibt Hier bietet die LR-Zerlegung einen Vorteil Zunächst wird die Matrix A in die beiden Matrizen L und R zerlegt Dazu wird nur die Matrix A verwendet, b muss noch nicht festgelegt sein Danach kann man für verschiedene b durch Anwenden der Vorwärts- und Rückwärts- Substitution die Lösung berechnen ohne die Matrix A erneut zerlegen zu müssen In der Vorlesung wurde die LR-Zerlegung vollbesetzter Matrizen vorgestellt Im Rahmen dieser Programmieraufgabe soll die LR-Zerlegung von Bandmatrizen implementiert werden Dazu soll die Klasse BandMatrix verwendet werden Diese benötigt zur Speicherung der Bandmatrix nur O(n (p + q 1)) Speicherplatz, auf die Matrixelemente kann aber über die übliche Matrixindizierung zugegriffen werden Es darf aber natürlich nur auf solche Matrixelemente zugegriffen werden, die auch wirklich im Bereich des Bandes liegen Wird die LR-Zerlegung auf einer solchen Matrix durchgeführt, so sind die entstehenden Matrizen L und R auch Bandmatrizen L ist hierbei eine Bandmatrix mit q L = q A und p L = 1 und R ist eine Bandmatrix mit q R = 1 und p R = p A Führt man zb die LR-Zerlegung der Matrix A =, p A = q A = 2 durch, so haben die Matrizen L und R folgende Struktur: L = 1 1 1 1 1, R = Splines Als Anwendungsbeispiel des Gleichungssystemlösers für Bandmatrizen soll eine Funktion mit Splines interpoliert werden Die Grundidee ist, eine Funktion, von der die Funktionswerte nur an bestimmten Stellen (den sogenannten Stützstellen) bekannt sind, durch eine Interpolationsfunktion darzustellen Die Interpolationsfunktion geht dabei auf jeden Fall durch die gegebenen Stützpunkte Der übrige Verlauf der Interpolationsfunktion hängt vom verwendeten Interpolationsverfahren ab In diesem Beispiel ist dieses Verfahren eben die Spline-Interpolation Dabei werden zusätzlich zu den Stützpunkten noch die Ableitungen an den beiden Intervallgrenzen vorgegeben Ziel ist die Berechnung der Ableitung an sämtlichen 4

Stützstellen Die Bestimmung der Ableitungen entspricht der Lösung des folgenden linearen Gleichungssystems (vgl Tutorien und Vorlesung): 4 1 1 4 1 1 4 y 1 y 2 y n 2 y n 1 = 3 h y 2 y 0 h 3 y 0 y 3 y 1 y n 1 y n 3 y n y n 2 h 3 y n Die Matrix A dieses LGS ist eine Bandmatrix mit q A = p A = 2 Durch Vorgabe eines Arrays mit n + 1 Stützwerten, den Intervallgrenzen x 0 und x n sowie den Ableitungen an den Intervallgrenzen y 0 und y n wird das LGS eindeutig lösbar In der Klasse Spline sollen Methoden implementiert werden, die zu den eben genannten Daten einen Vektor mit den Ableitungen y 1 bis y n 1 berechnen 5

Konkrete Aufgaben Im Folgenden werden die zu implementierenden Methoden aufgelistet Details zur Implementierung finden Sie jeweils in den Kommentaren zu den einzelnen Methoden Klasse Gauss, Methode loese: Gauß-Elimination mit Spaltenpivotsuche Klasse Gauss, Methode loesebinaer: Für die Lösung des Spiels Light Aus! muss eine Gauss Elimination für binäre Matrizen implementiert werden Tipp: Dies ist sehr ähnlich zur klassischen Gauss Elimination Es wird lediglich überall dort der XOR- Operator verwendet, wo sonst klassich der Additions-Operator zum Einsatz kommt Klasse LRZerlegung, Methode zerlege: LR-Zerlegung der Matrix A Klasse LRZerlegung, Methode substitution: Vorwärts- und Rückwärts-Substitution Klasse Spline, Konstruktor: Bandmatrix und zugehörige LR-Zerlegung erzeugen Klasse Spline, Methode loese: Baut aus den Stützwerten und Randbedingungen den Vektor b auf und berechnet die Ableitungen Formalien Das Programmgerüst erhalten Sie auf den Webseiten zur Vorlesung Ergänzen Sie das Programmgerüst bitte nur an den dafür vorgegebenen Stellen! Falls Sie die Struktur der Programme eigenmächtig verändern, können wir sie evtl nicht mehr testen Beseitigen Sie vor Abgabe Ihres Programms alle Ausgaben an die Konsole, die Sie eventuell zu Debugging- oder Testzwecken eingefügt haben Bitte laden Sie hier Ihre java-dateien als flaches tgz-archiv hoch Der Dateiname ist beliebig wählbar, bei der Erweiterung muss es sich jedoch um tgz oder targz handeln Ein solches Archiv können Sie beispielsweise mit dem Linux-Tool tar erstellen, indem Sie die laut Aufgabenstellung zu bearbeitenden java-dateien in ein sonst leeres Verzeichnis legen und dort anschließend den Befehl > tar cvvzf numpro_aufg3tgz *java ausführen Bei dieser Aufgabe kann es in Windows zu Problemen beim Testen von Rechenoperationen auf der Konsole kommen Wir empfehlen daher, die Programme unter Linux (Rechnerhalle) zu testen Bitte reichen Sie Ihre Abgabe bis zum 22 Juni 2012, 17:30 Uhr über Moodle ein Bitte beachten Sie: Alle Abgaben, die nicht den formalen Kriterien genügen, werden grundsätzlich mit 0 Punkten bewertet! 6