ebook img

Numerische Mathematik 1. Einfuehrung in MATLAB PDF

60 Pages·2004·0.185 MB·German
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Numerische Mathematik 1. Einfuehrung in MATLAB

MATLAB im Selbststudium Eine Einfu¨hrung Christof Bu¨skens Zentrum fu¨r Technomathematik Fachbereich Mathematik Universit¨at Bremen 28359 Bremen, Germany Vorlesungsbegleitende Ausarbeitung Sommersemester 2004 (Unkorrigierte Fassung) Vorwort Die vorliegende Ausarbeitung entstand w¨ahrend meiner T¨atigkeit als Privatdo- zent am Lehrstuhl fu¨r Ingenieurmathematik der Universit¨at Bayreuth. Sie ent- stand im Rahmen einer vorlesungsbegleitenden Lehrveranstaltung, die ich im Sommersemster 2003 gehalten habe. Als Vorlage dienten die Aufzeichnungen von Prof. Dr. Lars Gru¨ne, dem ich auf diesem Wege herzlich danken m¨ochte. Bayreuth, April 2004 Christof Bu¨skens Inhaltsverzeichnis Inhaltsverzeichnis 5 1 Einfu¨hrung in Matlab 7 1.1 Matrizen und Vektoren . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2 ’FOR’, ’IF’, ’WHILE’ und ’BREAK’ Anweisungen . . . . . . . . . 9 1.3 Plotten von Daten und Funktionen . . . . . . . . . . . . . . . . . 13 1.3.1 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.3.2 Erweiterte Grundlagen . . . . . . . . . . . . . . . . . . . . 14 1.3.3 3D Grafik . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.3.4 (*) Handle-Graphics . . . . . . . . . . . . . . . . . . . . . 21 1.4 Ausgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2 Matlab, ein mathematisches Labor 29 2.1 Lineare Gleichungssysteme . . . . . . . . . . . . . . . . . . . . . . 29 2.1.1 Direkte Verfahren . . . . . . . . . . . . . . . . . . . . . . . 29 2.1.2 Iterative Verfahren . . . . . . . . . . . . . . . . . . . . . . 30 2.2 Definition von Funktionen . . . . . . . . . . . . . . . . . . . . . . 32 2.2.1 Funktionen von Zahlen . . . . . . . . . . . . . . . . . . . . 32 2.2.2 Funktionen von Vektoren und Matrizen . . . . . . . . . . . 33 2.2.3 Funktionen von Funktionen . . . . . . . . . . . . . . . . . 34 2.3 Nullstellen nichtlinearer Gleichungen . . . . . . . . . . . . . . . . 36 2.4 Polynome und Interpolation . . . . . . . . . . . . . . . . . . . . . 38 2.5 Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 2.6 Differentialgleichungen . . . . . . . . . . . . . . . . . . . . . . . . 44 5 6 Inhaltsverzeichnis 3 Sonstiges 53 3.1 Effizienzsteigerung in Matlab . . . . . . . . . . . . . . . . . . . . 53 3.1.1 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3.1.2 Profiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Kapitel 1 Einfu¨hrung in Matlab 1.1 Matrizen und Vektoren Matrizen kann man einfach zeilenweise ’per Hand’ eingeben: A = [1 2 3; 4 5 6; 7 8 9; 10 11 12] Oder, wenn man eine Matrix ’leer’ definieren m¨ochte, z.B. um darin ein Rechen- ergebnis abzulegen B = zeros(4,3) Spaltenvektoren gibt man einfach als einspaltige Matrizen ein b = [3; 4; 5] und Zeilenvektoren als einzeilige Matrizen c = [3 4 5] MATLAB kann Matrizen transponieren A’ und Matrizen mit Matrizen oder Vektoren multiplizieren C = [6 5; 4 3; 2 1] A*C A*b Man kann auf die Elemente einer Matrix oder eines Vektors einzeln zugreifen 7 8Einfu¨hrung in Matlab A(1,1) A(2,3) b(3) und ebenso auf einzelne Zeilen A(2,:) oder Spalten A(:,3) Diese kann man nicht nur auslesen, sondern auch zuweisen A(:,2) = [1; 2; 3; 4] Mankann(Zeilen)-Vektorenmitabgez¨ahltenEintr¨agenauchmiteinerAbku¨rzung definieren. Hierbei gibt man den ersten Eintrag, die Schrittweite und den letzten Eintrag, jeweils durch Doppelpunkt getrennt an. Z.B.: Erzeuge den Vektor [1; 2; 3; 4; 5] t = [1:1:5] Schließlich kann man nicht nur Matrizenrechnung direkt ausfu¨hren, sondern auf Vektoren und Matrizen auch komponentenweise rechnen Hierzu setzt man einen ’.’ vor den entsprechenden mathematischen Operator. Um z.B. jedes Element des obigen Vektors t mit sich selbst zu multiplizieren, berechnet man t.*t Beachte, dass t*t aus Dimensionsgru¨nden eine Fehlermeldung ergibt. Wir illustrieren einige Matrix-Operationen, die aus der Vorlesung bzw. aus den grundlegenden Mathematikvorlesungen bekannt sind: Seien A = [ 1 5 6; 7 9 6; 2 3 4] b = [29; 43; 20] Berechnung der Determinante: det(A) Berechnung der Inversen inv(A) Berechnung von Vektornormen k.k fu¨r p=1,2,unendlich (inf) p Einfu¨hrung in Matlab 9 norm(b,1) norm(b,2) norm(b,inf) Berechnung der zugeh¨origen induzierten Matrixnormen norm(A,1) norm(A,2) norm(A,inf) Berechnung der Kondition einer Matrix fu¨r p=1,2,unendlich (inf) cond(A,1) cond(A,2) cond(A,inf) 1.2 ’FOR’, ’IF’, ’WHILE’ und ’BREAK’ Anwei- sungen MATLAB’s Programmiersprache bietet eine Reihe von M¨oglichkeiten, den Pro- grammablauf in einem M-File zu steuern. Wir werden hier einige kennen lernen: Die ’for’ Schleife erm¨oglicht es, eine oder mehrere Operationen nacheinander fu¨r verschiedene Werte einer Variablen auszufu¨hren Der mehrfach auszufu¨hrende Block von Operationen wird mit ’end’ beendet. Beispiel: Ausgabe der ersten 10 Quadratzahlen: for i = 1:10 i^2 end input(’Druecke RETURN’); Schleifen k¨onnen auch ru¨ckw¨arts z¨ahlen, dabei muss zwischen Anfangs- und Endwert die Schrittweite (hier ’-1’) angegeben werden for i= 10:-1:1 sqrt(i) end input(’Druecke RETURN’); Desweiteren kann man Schleifen verschachteln 10Einfu¨hrung in Matlab for i = 1:10 i for j = 10:-1:i j end end input(’Druecke RETURN’); Mit solchen Schleifen kann man z.B. eine Matrizenmultiplikation programmieren A = [1 2 3; 4 5 6; 7 8 9] B = [5 4 6; 1 7 5; 3 9 6] AB = zeros(3,3) for i=1:3 for j=1:3 for k=1:3 AB(i,j) = AB(i,j) + A(i,k)*B(k,j); end end end AB input(’Druecke RETURN’); Oft will man abh¨angig von Werten von Variablen unterschiedliche Anwei- sungen ausfu¨hren. Dazu dient die ’if’ Anweisung. Nach ’if’ steht eine logische Aussage. Ist diese wahr, werden die Anweisungen im n¨achsten Block (bis zum n¨achsten ’end’) ausgefu¨hrt for i=1:10 i if i>5 ’groesser als 5’ end end input(’Druecke RETURN’); Man kann auch einen Block fu¨r den Fall, dass die Aussage falsch ist, angeben. Dazu dient ’else’ for i=1:10 i if i>5

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.