Modellbildung und Simulation SS2011 Lineare Iterationsverfahren

Ähnliche Dokumente
Teil XV. Mehrgitterverfahren zur Lösung linearer Gleichungssysteme

Sortieren. Maple sortiert; Unordnung schaffen. > restart;

Modellbildung und Simulation, SS 2011 Blatt 5: Inverses Pendel

D-INFK Lineare Algebra HS 2014 Roman Glebov Marc Pollefeys. Serie 13

Begleitmaterial zur Vorlesung Numerik linearer Gleichungssysteme

11. Gruppenübung zur Linearen Algebra I

6a. Iterative Verfahren: Nullstellen und Optima. Besser, schneller, höher, weiter!

8. Vorlesung, 5. April Numerische Methoden I. Eigenwerte und Eigenvektoren

5 Suchmaschinen Page Rank. Page Rank. Information Retrieval und Text Mining FH Bonn-Rhein-Sieg, SS Suchmaschinen Page Rank

Kapitel 3. Iterative Verfahren für LGS. 3.1 Der Banach sche Fixpunktsatz. Definition 3.1:

13 Beispiel: Poisson-Gleichung

Iterative Löser: Einführung

PCG Verfahren. B ist symmetrisch positiv definit. Eine Matrix-Vektor-Multiplikation mit B hat geringen Aufwand

Glättung durch iterative Verfahren

Lineare Iterationsverfahren: Definitionen

12. Gruppenübung zur Linearen Algebra I

2.3 Chaos und Lyapunov-Exponent. d dx f(x) λ = lim n n . (1) Programm. k=0. PROGRAM lyapunov ...

Name: Matr.-Nr.: 2. Aufgabe 1. Gegeben sei das folgende lineare Gleichungssystem: b a 2 3a 1

Praktikum Wissenschaftliches Rechnen 7. Aufgabenblatt

Teil XV. Mehrgitterverfahren zur Lösung linearer Gleichungssysteme

Blatt 12. g := # f eingeschränkt auf den Einheitskreis

Collatz-Folge. falls a i ungerade.

Einführung in die Programmierung (MA8003)

Computergrafik SS 2016 Oliver Vornberger. Vorlesung vom Kapitel 11: Fraktale

Algorithmus der Vektoriteration

MATLAB Ferienkurs WS 2010/2011

Musterlösung. Aufgaben zu Iterative Lösung Linearer Gleichungssysteme. Vordiplomskurs Numerische Methoden Sommer 2008

Kapitel 3. Konvergenz von Folgen und Reihen

Einführung in die numerische Mathematik

Sommersemester 2017 Blatt 1 von 6 Studiengänge: RMM Masterstudiengang Sem. 1 und Wiederholer

Eigenwerte. Vorlesung Computergestützte Mathematik zur Linearen Algebra. Lehrstuhl für Angewandte Mathematik Sommersemester 2009

Lineare Gleichungssysteme

Iterative Lösung dünnbesetzter Gleichungssysteme

Kapitel 6. Iterationsverfahren für lineare Gleichungssysteme

Jacobi- und Gauß-Seidel-Verfahren, Jacobi-Relaxationsverfahren

Begleitmaterial zur Vorlesung Numerik linearer Gleichungssysteme

Maple-Test zur LVA 'Computermathematik', SS Gruppe weiß

Lineare Schieberegisterfolgen

Schleifeninvarianten. Dezimal zu Binär

Übungsblatt 5 Musterlösung

Iterative Verfahren, Splittingmethoden

Rechenoperationen mit Folgen. Rekursion und Iteration.

Mehrgitter-Verfahren für DG Finite-Elemente-Diskretisierungen von turbulenten Strömungen

Musterlösungen zur Leistungsnachweisklausur vom Studiengang Informatik, Ingenieurinformatik, Lehramt

2. Geben Sie für das Jacobi-Verfahren eine scharfe a-priori Abschätzung für den Fehler. x (10) x p

Matrix-Potenzen und größter Eigenwert

Universität Tübingen Tübingen, den Mathematisches Institut D. Mansour, J. Seyrich

2. Lineare Gleichungssysteme: direkte und iterative Lösungsverfahren

Ausgleichsproblem. Definition (1.0.3)

Mehrgitterverfahren. Bachelorarbeit. Fakultät für Mathematik Ruhr-Universität Bochum

Numerische Lineare Algebra

Der CG-Algorithmus (Zusammenfassung)

5 Numerische Mathematik

Arbeit: Page, Brin, Motwani, Winograd (1998). Ziel: Maß für absolute

Übungen zur Linearen Algebra II, Sommersemester Test, , Gruppe A: Lösung

6. Übungsblatt zur Mathematik II für Inf, WInf

Zehnte Vorlesung, 4. Juni 2009, Inhalt. Eigenwerte und Eigenvektoren (2) Gewöhnliche Differentialgleichungen

Diplomarbeit. Ein paralleles graphenbasiertes algebraisches Mehrgitterverfahren

KAPITEL 1. Einleitung

Banach scher Fixpunktsatz. 1) D ist abgeschlossen und konvex; 2) f ist selbstabbildend, d.h. f(d) D;

Numerische Mathematik für Ingenieure (SoSe 2013)

Numerisches Rechnen. (für Informatiker) M. Grepl P. Esser & G. Welper & L. Zhang. Institut für Geometrie und Praktische Mathematik RWTH Aachen

Beispiellösung Serie 7

1.) Matrix einer linearen Abbildung

Einführung in numerische Methoden für Ingenieure (nach A. Quarteroni, F. Saleri: Wissenschaftliches Rechnen mit MATLAB)

III Das Symmetrische Eigenwertproblem (SEP)

Algorithmik kontinuierlicher Systeme

Entwicklung von p-mehrgitter-verfahren für turbulente Strömungen

Wiederhole die obigen Themen! Wir stellen Fragen im Testat!

Einführung in die Programmierung II. 9. Dynamische Datenstrukturen: Binärbäume

Kapitel 2: Lineare Gleichungssysteme. 2.1 Motivation: Bildverarbeitung Sei B = (B(n, m)) ein N M stochastisches Feld mit ZVen

c i u i. (10.2) x = i

Kapitel 4. Raumkurven. 4.1 Graphische Darstellung

Einführung in Maple. Kontoerstellung: Einloggen am Rechner und Start von Maple: Allgemeine Eingaben in Maple:

Übungsblatt 5 Musterlösung

Numerische Methoden 6. Übungsblatt

9. Rekursion. 1 falls n 1 n (n 1)!, andernfalls. Experiment: Die Türme von Hanoi. Links Mitte Rechts. Mathematische Rekursion

18.4 Das Newton-Verfahren

5.3.5 Abstiegs & Gradientenverfahren

Kapitel 5 Iterative Verfahren für LGS

4.6 Berechnung von Eigenwerten

Ferienakademie. Ferienakademie

Satz. Wie wirkt sich ein Basiswechsel auf die Darstellungsmatrix einer linearen Abbildung F : V n V n aus?

Klausur zu Grundlagen der Computermathematik

Übungsaufgaben Lösungen

Achterbahnzahlen oder Das 3n+1 Problem

Einführung in die Programmierung für NF. Rückgabewerte, Fallunterscheidung, Schleifen

Kapitel 2. Zahlenbereiche

Übungsblatt 12 Musterlösung

Allgemeine Hinweise zur Klausur

3. Lineare Gleichungssysteme

Zwei-Level-Verfahren zur Lösung Linearer Gleichungssysteme mit nichtsingulärer unsymmetrischer M-Matrix

Angewandte Strömungssimulation

Binärbäume: Beispiel

D-ITET, D-MATL Numerische Methoden FS 2014 Dr. R. Käppeli M. Sprecher. Musterlösung 5

Numerische Mathematik

Transkript:

restart; with(plots): with(linearalgebra): Modellbildung und Simulation SS2 Lineare Iterationsverfahren Hilfsfunktionen: Bilder malen bild malt einen Vektor als stueckweise lineare Funktion ueber dem Einheitsintervall. Der Parameter p_options ist eine Liste von Plot-Optionen, z.b. [color=blue,thickness= 2] bild := proc(u::vector,p_options::list(equation)) local i,m; m := Dimension(u)+; plot([[,],seq([i/m,u[i]], i=..m-),[,]],style=line,op (p_options)) (.) bild(randomvector(,generator=-....),[]);

bilder malt eine Liste von Bildern wie oben in ein Diagramm farben := proc(i::posint) return [RED,BLUE,GREEN,BLACK][(i-) mod 4 +] (.2) bilder := proc(l::list(vector)) display([seq(bild(l[i], [color=farben(i), title=sprintf("%d / %d", i, nops(l)), titlefont=[helvetica,24], thickness=2]), i=..nops(l))], insequence=true); (.3)

bilder([seq(randomvector(,generator=-....),i=..3)]); / 3 Residuum zum Differenzenstern Hier ist die Matrix A ausprogrammiert; wir brauchen sie nur in der Form (x,b) -> b - Ax, berechnen also das Residuum von Ax=b: residuum := proc(x::vector,b::vector)::vector; local i,m,hh,ax; m := Dimension(x)+; if m=2 then Ax := Vector(,8*x[]) else hh := /m^2; Ax := Vector(m-); Ax[] := (2*x[] - x[2])/hh;

for i from 2 to m-2 do Ax[i] := (2*x[i]-x[i-]-x[i+])/hh; end do; Ax[m-] := (2*x[m-] - x[m-2])/hh; end if; return b - Ax; (2.) Jacobi-Verfahren Ein Schritt des (mit Faktor gedaempften) Jacobi-Verfahrens:. Die Parameter und werden durchgereicht, das Ergebnis ist die Sequenz, die wieder als Parameter von jacobi auftreten kann. Das erlaubt die Hintereinanderausfuehrung von j Iterationen mittels jacobi@@j. Wenn man nur an der Iterierten interessiert ist, schreibt man halt jacobi(x,b,alpha) []. jacobi := proc(x::vector,b::vector,alpha::numeric)::vector, Vector,numeric; local r,hh; r := residuum(x,b); hh :=./(Dimension(x)+)^2; return x + alpha/(2/hh)*r, b, alpha (3.)

Eigenvektoren von A und damit der Jacobi-Iteration: Wir wissen: der Vektor mit Komponenten ist Eigenvektor von A zum Eigenwert, mithin Eigenvektor der Iterationsmatrix M des Jacobi-Verfahrens zum Eigenwert. eigv := proc(m::posint, k::posint)::vector; return Vector(m-, i->evalf(sin(i*k*pi/m))) (4.) bilder([seq(eigv(32,k),k=..3)]);

/ 3 Beispiele fuer Konvergenz des Jacobi-Verfahrens Wir legen die Zahl der Teilintervalle fest (hier beliebig; spaeter beim Mehrgitter muss es eine Zweierpotenz sein): m_ex := 32; (5.) Wir waehlen einen der Eigenvektoren als Startloesung, was auch der Startfehler e := eigv(m_ex,): bild(e,[thickness=2]); ist...

... weil wir als rechte Seite waehlen: b := Vector(Dimension(e),); (5.2) So sieht das Residuum am Anfang aus: bild(residuum(e, b),[thickness=2]);

Und das ist das Ergebnis der ersten Jacobi-Iterationen (also bis ): bilder([seq((jacobi@@j)(e, b, )[],j=..)]);

/ Diesen Prozess automatisieren wir: diese Prozedur erzeigt ein Bild mit der Startloesung ersten nj Iterierten. konvbild := proc(e::vector, alpha::numeric, nj::posint) local x, s, j, b_null; x := e; s := x; b_null := Vector(Dimension(e),); for j from to nj do x := jacobi(x, b_null, alpha)[]; s := s, x; end do; bilder([s]) und den (5.3)

Nochmal mit dem Startvektor von vorhin: konvbild(e,.5,); / Ein zweites Beispiel aus der Mitte des Spektrums: eneu := eigv(m_ex,round(m_ex/2)): konvbild(eneu,.5,);

/ Und beide zusammen: konvbild(e+eneu,.5,);

/ Auch ein zufaelliger Startwert laeuft schnell in Richtung "renitenteste Fehleranteile": konvbild(randomvector(m_ex+),.5,);

/ 8 6 4 2 Mehrgitterverfahren Nun bauen wir uns ein einfaches Mehrgitterverfahren (das waere fuer dieses Modellproblem mit seiner Tridiagonalmatrix nicht noetig, aber man sieht daran das Prinzip) Restriktion der rechten Seite auf das -Gitter Hier triviale Restriktion: die Komponenten mit ungeradem Index wegwerfen. Der Parameter b_fein muss die Laenge mit einem haben, das Ergebnis hat die Laenge. restriktion := proc(b_fein::vector)::vector; local m_grob; m_grob := (Dimension(b_fein)+)/2; Vector(m_grob-, i -> b_fein[2*i]) (6..)

Prolongation der Korrektur auf das -Gitter Hier lineare Interploation: Komponenten mit geradem (Feingitter-)Index bekommen den entsprechenden Grobgitterwert, die ungeraden werden linear aus ihren Nachbarwerten interpoliert: prolongation := proc(x_grob::vector)::vector; local x_fein,m_grob,i; m_grob := Dimension(x_grob)+; x_fein := Vector(2*m_grob-, ); for i from to m_grob- do x_fein[2*i] := x_grob[i]; x_fein[2*i-] := x_fein[2*i-]+x_grob[i]/2; x_fein[2*i+] := x_fein[2*i+]+x_grob[i]/2; end do; x_fein; (6.2.) Test fuer Prolongation und Restriktion Ein Beispielvektor: x_ex := eigv(4,); (6.3.)

Linear interpoliert... prolongation(x_ex); (6.3.2)... sieht man (spaetestens auf den zwieten Blick), dass man nichts sieht: bild(prolongation(x_ex),[thickness=2]); Es gilt hier: Restriktion nach Prolobgation gibt die Identitaet: restriktion(prolongation(x_ex)); (6.3.3)

(6.3.3) Das Mehrgitterverfahren Nun koennen wir alles zusammenbauen. Die Parameter: x: Startvektor, also b: rechte Seite l: Anzahl der Vergroeberungsschritte (die Laenge von x und b soll mit einem sein). nu, nu2: zahl der Vor- bzw. Nachglaettungen Das eigentliche Ergebnis ist der Vektor Parameter (ausser x) einfach durchgereicht. Als Glaetter wird das Jacobi-Verfahren mit wie bei der Prozedur jacobi werden die uebrigen verwendet. mg := proc(x::vector, b::vector, l::nonnegint, nu::nonnegint, nu2::nonnegint):: Vector,Vector,nonnegint,nonnegint,nonnegint; local i, xneu, xg, tmp; xneu:= (jacobi@@nu)(x,b,.5)[]; if l> then xneu := xneu + prolongation( mg(vector((dimension(x)-)/2,), restriktion(residuum(xneu,b)), l-, nu, nu2)[] ); end if; (jacobi@@nu2)(xneu, b,.5)[], b, l, nu, nu2 (6.4.)

Beispielrechnungen Fuer l_max Vergroeberungen... l_max := 5;...brauchen wir mindestens soviele Teilintervalle: m_ex := 2^(l_max+); (6.5.) Nun nehmen wir wieder (wie bei der Jacobi-Iteration) einen beliebigen Startwert und als rechte Seite: e := eigv(m_ex,): b := Vector(Dimension(e),): Damit sind verschiedene Experimente moeglich: Mit l= bekommt man mit einem Aufruf einfach Jacobi-Schritte ausgefuehrt. Mit zunehmendem l werden die niederfrequenten Anteile des Fehlers immer besser gedaempft..... bis zum groesstmoeglichen l=l_max Dazu lassen wir uns analog zum Jacobi-Verfahren Bilder malen: konvbild_mg := proc(e::vector, l::nonnegint, nu::nonnegint, nu2::nonnegint, nj::posint) local x, s, j, b_null; x := e; s := x; b_null := Vector(Dimension(e),); for j from to nj do x := mg(x, b_null, l, nu, nu2)[]; s := s, x; end do; bilder([s]) (6.5.2)

Der ganz normale Jacobi-Verfahren: konvbild_mg(e,,,, ); / Und die Mehrgitteridee im Einsatz (je 2 Vor- und Nachglaettungsschritte - unter Vernachlaessigung des Grobgitteraufwandes entspricht ein mg also 4 jacobi) konvbild_mg(e, l_max, 2, 2, );

/