lFakultät Informatik und Mathematik MATLAB Version 3.0 - MATLAB-Version 7.1 Übersetzung, Ergänzung und Überarbeitung des Original-MATLAB-Tutorials zu MATLAB-Version 5.3 Getting Startet With MATLAB Ansprechpartner Fakultät Informatik und Mathematik HS. Regensburg / www.fh-regensburg.de Fachschaft IM Email:
[email protected] MATLAB-Version Version / Datum 7.1 3.0/ 16.März 2009 MATLAB V3.0 1 Dokument Historie Autor Robert Wilke und Ulf Wittl Datum 02.11.2000 Version 1.0 Kommentar Dieses Skript wurde auf Grundlage des Original-MATLAB-Tutorials der Version 5.3 im Rahmen des Meile2000-Projekts ins Deutsche übersetzt und mit interaktiven Elementen versehen. Ergänzt durch Übungen. Überarbeitung zur Unterstützung der Autodidaktik. Stephanie Schüpferling Andreas Furtner 24.10.2001 29.01.2008 2.0 3.0 2 MATLAB V3.0 2 Inhaltsverzeichnis 1 2 3 4 Dokument Historie ................................................................................................................. 2 Inhaltsverzeichnis .................................................................................................................. 3 Vorwort – Grundkurs ............................................................................................................. 6 Die MATLAB Umgebung........................................................................................................ 7 4.1 Kursspezifische MATLAB Konfigurationen ....................................................................... 7 4.2 Das Befehlsfenster ........................................................................................................... 8 4.2.1 Der format - Befehl .................................................................................................... 9 4.2.2 Ausgabe unterdrücken ............................................................................................ 10 4.2.3 Lange Befehlszeilen ................................................................................................ 11 4.2.4 Editieren der Befehlszeile........................................................................................ 11 4.3 Der Workspace ............................................................................................................... 11 4.4 Der save-Befehl .............................................................................................................. 13 4.5 Der Suchpfad und das Current Directory........................................................................ 13 4.6 Der diary Befehl und die Command History ................................................................... 14 4.7 Dateiverarbeitung ........................................................................................................... 16 4.8 Starten von externen Programmen................................................................................. 16 4.9 Übungsaufgaben ............................................................................................................ 16 Ausdrücke............................................................................................................................. 18 5.1 Variablen......................................................................................................................... 18 5.2 Zahlen............................................................................................................................. 18 5.3 Operatoren...................................................................................................................... 19 5.4 Funktionen ...................................................................................................................... 19 5.5 Ausdrücke....................................................................................................................... 20 5.6 Übungsaufgaben ............................................................................................................ 21 Hilfe und die Onlinedokumentation.................................................................................... 23 6.1 Der help-Befehl............................................................................................................... 23 6.2 Anmerkung ..................................................................................................................... 24 6.3 Das Hilfe-Fenster............................................................................................................ 26 6.4 Der lookfor-Befehl........................................................................................................... 27 6.5 Der HelpDesk bzw. der doc-Befehl................................................................................. 28 6.6 Ausdrucken der Online-Hilfe........................................................................................... 29 6.7 Internetverbindung zu MathWorks.................................................................................. 29 6.8 Übungsaufgaben ............................................................................................................ 30 Matrizen................................................................................................................................. 31 7.1 Eingabe von Matrizen ..................................................................................................... 32 7.2 Summe, Transposition und Spur .................................................................................... 33 7.3 Indizes ............................................................................................................................ 34 7.4 Der Doppelpunkt-Operator ............................................................................................. 35 7.5 Die magic–Funktion ........................................................................................................ 36 7.6 Übungsaufgaben ............................................................................................................ 37 Arbeiten mit Matrizen........................................................................................................... 38 8.1 Erstellen von Matrizen mittels Funktionen ...................................................................... 38 8.2 load ................................................................................................................................. 39 8.3 M-Files ............................................................................................................................ 39 8.4 Zusammensetzen von Matrizen...................................................................................... 41 8.5 Löschen von Zeilen und Spalten .................................................................................... 42 8.6 Lineare Algebra .............................................................................................................. 42 8.7 Elementweise Operationen............................................................................................. 46 3 5 6 7 8 ...................5 Übungsaufgaben .................................. 78 12.............................................................................................. 114 4 ........................................................ 111 16....1 Vorbemerkung ..4 while-Schleifen.............. 68 12................................................3 Logische Indizierung................................4 Teilbilder ............. 57 10........................... 75 12..... 94 15................................................... 62 10..........................................................8 Übungsaufgaben ....................... 50 9...............................3 for-Schleifen........................... 106 16......................2 Grundrechenarten.......................... 55 10 Graphiken ................................. 102 15............. 108 16...................................................................................................................................................................7 Achsenbeschriftung und Titel ......... 61 10........................................4 Dualität zwischen Kommandos und Funktionen.............................................. 60 10....................................4 Inverse ............................................................................. 73 12.....................................................8 9 V3..............5 Adjunkte und Cramersche Regel........ 80 12...........................................2 switch und case ..............................................................................2 Verwendung von Skalaren.............................................................................................................................................. 95 15...................................... Rang .................................................6 Unabhängigkeit.......................................................................................................1 Multivariate Daten... 53 9................................................ 68 12......3 Graphiken erweitern ........... 112 17 Andere Datenstrukturen ......................................................... 104 16 Matrizen.......................5 break............................................................................................................................................................................................................2 Funktionen ........................6 Achsenwahl ..... 48 Ablaufkontrolle............9 Übungsaufgaben ............................................... 64 11 Weiterführendes Material und Literatur: ...................... 98 15............... 84 12............................................................................................................................................................................................... 54 9..................5 Die eval-Funktion und inline-Funktionen ................................................................................... 98 15........................ 86 12............................................................. 99 15........... 59 10.....................9 Iteration.......................................................................... 94 15...................................................................................... 92 15 Skripte und Funktionen ........................................ 102 15......................................................................................................................................................................................................................1 if-Anweisung ..................... 106 16.................................................................................................................................................................................................................................3 Globale Variablen .............. 84 12..........................5 Imaginäre und komplexe Daten.......................................................................................... 63 10............ 101 15.7 Vorbelegung ........................................................ 66 12 Übungen aus verschiedenen Themenbereichen ...............................................6 Vektorisierung........................8 Funktionen als Eingabeparameter........................6 Übungsaufgaben ............................................ 52 9.................................................12 Komplexe Zahlen ....................................................................................................................2 Bildfenster................. Vektoren und Felder......................................7 Gleichungssysteme ... 88 13 Vorwort – Aufbaukurs..............................4 Die find Funktion.........................................................................................................................................1 Erstellen eines Plots ......................................................................... 68 12.................................................................................................................................................................................................................................................................................... 55 9..... 71 12.............. 59 10...................................................................................... 77 12.................................................................................................................................... 57 10.. 110 16.................................0 Übungsaufgaben ........................................................................................................................................................................................................................................10 Kleinste Quadrate ........1 Skripte.......................................................................................................................MATLAB 8................................................... 91 14 Kursspezifische MATLAB Konfigurationen.................................................................................................................11 Eigenwerte ................................................. 50 9.............3 Determinanten ...........................................................................8 Quadratische Gleichungssysteme ........................................................................................................................... .......MATLAB 17...................10 *Programmieraufgaben .............................7 Kleinste Quadrate ..............................4 Gleichungssysteme ...................................................................................................................... 146 20............................................................................................................................................................................................................................................5 Graphische Objekte ............... 132 18........................................................................................................................................................................ Rang . 130 18.................................. 129 18....................................... 123 18 Manipulation von Graphiken............. 130 18.............................. 114 Zellenfelder ..................... 128 18................................. 143 20............................................................................................................................................................ 141 20........................................0 Mehrdimensionale Felder ...................11 Animationen .......................... 150 20..............2 17....................... 136 19 Weiterführendes Material und Literatur: ......................8 Eigenwerte......................................6 Umgang mit Objekten ............................7 Funktionen zur Erzeugung von Objekten .............................. 126 18....................................................................................................3 17........ 135 18.........................................................4 Drucken von Graphiken ........................................................... 154 20...2 Adjunkte und Cramersche Regel................................................................. 126 18... 128 18....................................................1 17..............................................................................................1 Gitter............................... 135 18..................................... 141 20............................ 126 18......................9 Set und get .................................................................................................. 134 18....................................................................... 149 20.......................8 Objekteigenschaften ............................................................ 118 Zeichen und Text ...........................................................................3 Bilder......3 Unabhängigkeit.und Flächen-Graphiken ...............................1 Vorbemerkung ....................................4 V3......................................................................... 142 20.............................................6 Iteration..............5 Quadratische Gleichungssysteme ........................................................ 139 20 Übungen aus verschiedenen Themenbereichen ................................................................................................................................10 Graphische Benutzerschnittstellen (MATLAB – GUI Entwicklung) ................................................................................ 141 20.....................12 Filme .............................2 Visualisierung von Funktionen zweier Variabler .............................................................................................9 Komplexe Zahlen............................13 Übungsaufgaben............................... 127 18................................................ 151 20.. 156 5 ...................................... 120 Strukturen ............................................................................... sondern einzig und allein mit der Syntax dieser eleganten und für mathematische Entwicklungen sehr effektiven Programmiersprache. sondern auch vielen den Berufseinstieg erleichtert. wobei in der letzten Umgestaltung besonderes darauf geachtet wurde. Voraussetzung hierfür sind allerdings 2 Installationsmaßnahmen.*) ist der Aufwand zur Lösung etwas höher. z. Diese Aufgaben können auch mit Papier und Bleistift gelöst werden. Hinweise Alle Beispiele wurden mit MATLAB Version 7. Wenn Sie es aber ausnahmsweise offen lassen wollen. allerdings vom Anwender stets im Hinterkopf behalten werden muss. können Sie die im Text markierten Programme ablaufen lassen. welches nicht nur das weitere Studium positiv beeinflussen wird. in dem die Befehlsfolge abläuft. Besondere Kenntnisse für diesen Kurs werden nicht vorausgesetzt. Dadurch öffnet sich ein MATLAB-Befehlsfenster.1 getestet. dass ein selbstständiges Erarbeiten der Thematik möglich ist. wenn Sie einfach auf ein markiertes Programm (DateiName) klicken. Der Kurs soll somit StudentInnen der Studiengänge Mathematik. als Prüfungsvorbereitung für Lineare Algebra. Bei Aufgaben mit einem Stern (z. sowie aller Ingenieursdisziplinen ansprechen.►) versehen. Sämtliche Berechnungen werden durch numerische Verfahren umgesetzt. Dieser Grundlagenkurs beschäftigt sich allerdings nicht mit den numerischen Detaillösungen. was gerade für praktische Anwendungen benötigt wird. Hierzu tragen neben der Beschreibung von syntaktischen Besonderheiten auch viele Übungsaufgaben mit Lösungsvorschlägen zum sicheren Verständnis bei. da dieses Tool in der Industrie weit verbreitet ist und deshalb auch der Umgang damit für einige unumgänglich sein wird. 4. Informatik. Einige der Übungsaufgaben sind mit einem Pfeil (z. um vielleicht noch etwas auszuprobieren. Es genügt. allerdings sind grundlegende Programmierkenntnisse hilfreich.B. 3. Diese Unterlagen liegen nun in der dritten überarbeiteten Form vor. da natürlich auch numerische Fehler auftreten. Wenn auf Ihrem Computer MATLAB installiert ist.B. Umgebungen zur Entwicklung mathematischer Algorithmen. dann tippen Sie einfach [Strg][C] und es bleibt erhalten. Nach dem erfolgreichen Durcharbeiten des Kurses wird sich der/die Studierende über ein solides Grundlagenwissen erfreuen. Durch Eingabe einer beliebigen Taste wird das MATLAB-Befehlsfenster wieder geschlossen. bzw. ohne diese zuvor abzutippen.0 3 Vorwort – Grundkurs Was ist MATLAB? MATLAB ist sicherlich eine der am weitest verbreiteten Programmiersprache. die im folgenden Kapitel beschrieben werden. 6 .MATLAB V3.B. Dazu öffnet man in MATLAB den Path-Browser (s. Dazu erscheint folgendes Fenster.MATLAB V3. in dem die Datei matlab.) über File / Set Path. über Start / Einstellungen / Systemsteuerung / System. also etwa C:\Programme\Matlab\bin.1 Kursspezifische MATLAB Konfigurationen unter Windows Um die vorbereiteten Verknüpfungen zu MATLAB über Programm funktionsfähig zu machen.. Drücken Sie nun den Button AddFolder… und navigieren Sie zu dem Pfad in welchem die Beispiele zu diesen Tutorial zu finden sind.B. 7 . In Windows XP geschieht dies z.u. sind folgende beiden Schritte erforderlich: 1.. Dialogfenster zur Veränderung verlinkter MATLAB-Pfade. in dem die ProgrammDateien stehen. 2. in dessen unterer Zeile der Pfadeintrag markiert wurde.exe steht.0 4 Die MATLAB Umgebung 4. Zum Abschluss der Einstellungen drücken Sie den Button Save. In MATLAB muss ein Pfadeintrag auf den Ordner verweisen. Im Fenster Systemeigenschaften können dann auf der Registerkarte Erweitert die Umgebungsvariablen eingestellt werden. Der System-Pfad muss den Ordner enthalten. Sofern noch kein Verweis auf MATLAB vorliegt. folgende Abbildung). also z.B. Es können einzelne Befehle in einem Prompt eingegeben werden.MATLAB V3. Um das Befehlsfenster zu erreichen gehen Sie zu den Menüpunkt „Desktop/Command Window“ woraufhin sich das Befehlsfenster in die MATLABEntwicklungsumgebung includiert (vgl. 8 .2 Das Befehlsfenster Das Befehlsfenster ist vergleichbar mit dem Windows Befehlsfenster. Nach Klick auf den Button „Bearbeiten“ kann man ihn vollständig lesen. welche nach Drücken der Enter-Taste sofort ausgewertet werden.0 Windows-Dialogfenster zum einstellen der Umgebungsvariablen. durch .exe.C:\Programme\Matlab\bin 4. wird der vorhandene Pfad-Eintrag ergänzt durch den Pfad zu Ihrer Datei matlab. Gleitkommazahlen mit vier Nachkommastellen ausgegeben. diese zu manipulieren. sollten Sie eine Schrift mit fester Zeichenbreite. werden ganze Zahlen ohne weitere Kommastellen ausgegeben. 4. wie z.3333 0.2345e-6] x = 1.0000 format short.0 Rot eingerahmt das Befehlsfenster mit zwei Beispieleingaben der Matrizen A und B. was natürlich nicht der Rechengenauigkeit entspricht. Fixedsys oder Courier. x 9 . wählen. gibt es auch hier Möglichkeiten.Befehl Der format-Befehl kontrolliert das numerische Format der durch MATLAB dargestellten Zahlen.0000 format short e.1 Der format . weshalb die folgenden Abschnitte ein paar Möglichkeiten beschreiben das Aussehen des Befehlsfensters zu verändern. um keine störenden Verschiebungen zu erhalten. Es folgen die unterschiedlichen Formate mit ihren entsprechenden Ausgaben: x = [4/3 1.3333 0.MATLAB V3.2. Der Befehl hat nur eine Auswirkung auf die Darstellung der Zahlen und nicht auf das Verhalten von MATLAB und wie es mit den Zahlen rechnet oder sie speichert.B. Wie Sie in der Abbildung erkennen können. Obwohl die Ausgabe schlicht gehalten ist. x 1. Falls es auf Ihrem System möglich ist Schriftarten für das Befehlsfenster auszuwählen (File/Preferences…>Fonts). 00000123450000 1. x 1. gibt das Ergebnis aber nicht aus. um Strukturen in großen Matrizen erkennen zu können. x 1.oder long-Formaten aus. gibt MATLAB automatisch das Ergebnis auf dem Bildschirm aus. die normalerweise zur Übersichtlichkeit dienen sollen. die der Programmiersprache C entlehnt sind. Beenden sie die Zeile jedoch mit einem Strichpunkt. Die Variable A enthält nun ein magisches Quadrat. Mit dem Befehl format + schliesslich erreichen Sie. x 1.33333333333333e+000 format long g. x 4/3 format hex. dass lediglich das Vorzeichen der Zahlen ausgegeben wird.3333e+000 1. format loose Macht diesen Befel rückgängig.33333333333333 1. Das ist manchmal sinnvoll.2345e-006 format bank.2345e-006 V3.0 format short g. x 1.MATLAB 1. so führt MATLAB zwar die Berechnung durch. Beispiel: A = magic(100). mehr Informationen im Fenster zu sehen. wenn große Matrizen berechnet bzw.23450000000000e-006 format long. erzeugt werden.2345e-006 0. Es erfolgte jedoch keine Ausgabe. Auf diese Weise ist es möglich.2. 10 .33 0. 4.1 (Beispiel_format) Sollte das größte Element einer Matrix größer als 103 oder das kleinste kleiner als 10-3 sein.2 Ausgabe unterdrücken Wenn Sie einen Ausdruck eingeben und anschließend die Eingabe-Taste drücken. x 1.00 1/810045 3eb4b6231abfd271 format rat. Dies ist besonders hilfreich. Mehr Kontrolle über das Ausgabeformat erlauben die Funktionen sprintf und fprintf.3333 1. x 3ff5555555555555 Beispiel 4. so klammert MATLAB einen Skalierungsfaktor bei short. Zusätzlich zu den oben gezeigten format Befehlen gibt es noch format compact Dieser Befehl unterdrückt alle Leerzeilen.33333333333333 format long e. 1/4 + 1/5 . . und die Dateien. Leerzeichen vor und nach =. Wenn Sie erst einige Zeichen eintippen und anschließend die „Pfeil-NachOben“-Taste betätigen. 4.1/8 + 1/9 . 4. auf welche später noch genauer eingegangen wird. Sie enthält einige Resultate der Beispiele aus diesem Kurs. um den Fehler zu lokalisieren und schließlich zu korrigieren. um zu kennzeichnen. Anschließend benutzen Sie die „Pfeil-Nach-Links“-Taste. whos Name A B F N R X Size 4x4 8x8 3x3 1x10 33x33 359x371 Bytes 128 512 72 80 8712 1065512 Class double array double array double array double array double array double array 11 . um die obige Zeile erneut anzuzeigen. wird im Workspace gespeichert Hier ist eine Ausgabe die von whos erstellt wurde. die Programme enthalten und Daten zwischen den Sitzungen speichern.1/12. Weiteres Drücken der „Pfeil-Nach-Oben“-Taste führt zu früher eingetippten Befehlszeilen.. Sie erhöhen manchmal die Lesbarkeit.3 Der Workspace Die MATLAB Umgebung enthält beides. während whos auch Matrixformate und Speicherinformation zurückliefert. aber erlaubt.2.2.MATLAB V3. Es werden hier verschiedene MATLAB Datentypen aufgezeigt.4 Editieren der Befehlszeile Pfeil.. Das who-Kommando liefert eine kurze Liste zurück.1/6 + 1/7 .1/2 + 1/3 . indem Sie einfach das fehlende r ergänzen. welche im Befehlsfenster erzeugt wird. bereits eingegebene Ausdrücke und Befehle zu editieren. Nehmen wir an. Zwei Befehle. Der Workspace ist ein Speicherbereich auf den von der MATLAB Kommandozeile zugegriffen werden kann. die Variablen. Sie haben folgende Zeile eingegeben: rho = (1 + sqt(5))/2 Dabei haben Sie sqrt falsch eingetippt und erhalten die folgende Ausgabe Undefined function or variable 'sqt' Anstatt die Zeile wieder neu einzutippen drücken Sie besser die „Pfeil-Nach-Oben“-Taste. zu wiederholen oder sie zu widerrufen. so verwenden Sie drei Punkte .Zeichen sind nicht nötig. Kurz: Jede Variable.0 4. who und whos zeigen den aktuellen Stand des Workspace. Beispiel: s = 1 . deren Anfangszeichen mit der Vorgabe übereinstimmen. + und . die während der MATLAB Sitzung angelegt wurden.und Kontrolltasten geben die Möglichkeit.. so sucht MATLAB nach einer passenden früher eingegebenen Zeile.1/10 + 1/11 .3 Lange Befehlszeilen Sollte ein Ausdruck nicht in eine Zeile passen. dass der Ausdruck in der nächsten Zeile fortgeführt wird.. 12 . folgende Abbildung).MATLAB Y Z ans caption map t x y y2 y3 z 33x33 33x33 1x1 2x43 64x3 1x201 49x49 1x201 1x201 1x201 49x49 8712 8712 8 172 1536 1608 19208 1608 1608 1608 19208 double array double array double array char array double array double array double array double array double array double array double array V3. geben Sie clear ein. was auch die bequeme Bearbeitung einzelner Einträge ermöglicht.2 (Beispiel_whos) Um alle Variablen aus dem Workspace zu löschen. Hier die MATLAB-Entwicklungsumgebung (Workspace Dialog rot eingerahmt. Selbstverständlich bietet MATLAB auch die komfortable Möglichkeit. Array Editor blau eingerahmt).0 Grand total is 142440 elements using 1139004 bytes Beispiel 4. sich den Workspace in einem separaten Dialogfenster anzeigen zu lassen. Durch Doppelklick auf einzelne Variablen öffnet sich zudem der Array Editor. Gehen Sie hierzu auf den Menüpunkt „Desktop/Workspace“ und das Dialogfeld Workspace inkludiert sich Ihrer Entwicklungsumgebung (vgl. was eine intuitive Bearbeitung und eine bessere Visualisierung einzelner Variablen zulässt. Sie können dieses Verhalten ändern. Normalerweise werden die Variablen in Binärformat abgespeichert und können so schnell wieder von MATLAB eingelesen werden. weshalb auch oben in der Schnellzugriffsleiste dieser Pfad eingestellt werden kann. Verwenden Sie aus dem File-Menü den Punkt Set Path.mat. Sie können zu diesem Zweck aber auch den path-Befehl in erweiterter Form aufrufen oder mit addpath Ordner und Unterverzeichnisse dem Suchpfad hinzufügen. in dem Sie private Verzeichnisse und Dateien dem Suchpfad hinzufügen. sollten Sie in jeder Datei nur eine Variable sichern. aus welchem Ordner aufgerufene Funktionen zu laden sind.. das ist eine geordnete Liste von Ordnern und Unterverzeichnissen. 4. Diese muss für jede MATLAB-Sitzung neu festgelegt werden. Es können auch einzeln ausgewählte Variablen durch die Angabe der Variablennamen nach dem Dateinamen gesichert werden. erstellt MATLAB eine Textdatei. 13 . Der oben genannte Befehl save bzw.3 (Beispiel_path) Einen der wichtigsten Pfade stellt sicherlich auch die „Current Directory“ dar.. um den Pfad anzeigen zu lassen oder um ihn zu ändern. lädt die entsprechenden Daten in die eben beschriebene „Current Directory“. Beispiel 4. Falls Sie mehr als eine Variable speichern. diese kann mit dem load-Kommando in einer späteren MATLAB Sitzung eingelesen werden.MATLAB V3. das es in einem Verzeichnis des voreingestellten Suchpfades findet. Das Kommando path zeigt den Suchpfad auf Ihrem Rechner. die Sie nicht einfach wieder in MATLAB laden können.5 Der Suchpfad und das Current Directory MATLAB benutzt einen Suchpfad. Falls Sie die Dateien außerhalb von MATLAB verwenden wollen.4 Der save-Befehl Das save-Kommando sichert den MATLAB Workspace in eine mat-Datei. können Sie ein alternatives Format angeben: 8 Ziffern Text -ascii 16 Ziffern Text -ascii –double Zahlen werden durch Tab getrennt -ascii -double –tabs Erzeugt eine Datei für MATLAB 4 -v4 Anhängen an eine bereits existierende mat – Datei -append Wenn Sie den Inhalt des Workspace im Textformat speichern.0 4.B. Wenn eine Standardfunktion aufgerufen wird. Hierzu kann man sich ebenfalls ein Dialogfenster anzeigen lassen (Menüpunkt „Desktop/Current Directory“). um festzustellen. Ordnerstrukturen zulässt.. führt MATLAB das erste m-File mit dem Funktionsnamen aus. Z. load speichert bzw.: save August17th sichert den gesamten Workspace in die Datei August17th. welches den bequemen Zugriff auf Dateien bzw. die Sie eingegeben haben. wird der diary-Befehl nur in seltenen Fällen verwendet. Sie können sich diese anzeigen lassen und den Text editieren. geben Die den Dateinamen an. zeichnet MATLAB alle Befehle 14 . die alle Befehle enthält. auch auf Befehle zurückgreifen zu können. Um eine Datei mit dem Namen "diary" zu erzeugen. für den einfachen Zugriff auf relevante Dateien. Kommentare und Ordentliche Programmierstrukturen eingehalten werden können. geben Sie diary off ein.0 Rot eingerahmt das Dialogfeld „Current Directory“ zur einfachen Navigation in der Ordnerstruktur. Um sie wieder aufzunehmen. schreiben Sie diary on Da später noch . wie in jeder anderen Programmiersprache auch.m-Dateien vorgestellt werden. sowie auch die zugehörige Ausgabe von MATLAB (allerdings ohne Graphiken).MATLAB V3. in welchen MATLAB-Skripte erstellt werden können bei welchen.6 Der diary Befehl und die Command History Der diary Befehl protokolliert Ihre MATLAB Sitzung in einer Datei. Um aber dennoch die Möglichkeit zu haben. 4. bzw. geben Sie diary ein. Um die MATLAB Sitzung in eine Datei mit anderen Namen zu speichern. indem Sie ein Textverarbeitungsprogramm benutzen. diary [Dateiname] Um die Protokollierung der Sitzung zu beenden. die schon längere Zeit zurück liegen. welche im Befehlsfenster ausgeführt wurden. Wie auch alle anderen Dialogfenster kann auch dieses unter dem Menüpunkt „Desktop/Command History“ aktiviert werden (vgl. 15 . welche alle bereits verwendeten Befehle aus dem Befehlsfenster aufzeichnet (auch die vor Tagen und Wochen geordnet nach Datum). nachvollgende Abbildung). Anzeigen lassen kann man sich auch diese wieder bequem in einem gesonderten MATLAB-Dialogfenster.MATLAB V3. Rot eingerahmt das Dialogfeld „Command History“.0 auf. Stellen Sie das Format bank ein und berechnen Sie den folgenden Ausdruck y = sin(1) Stellen Sie nun wieder das Format short ein und berechnen Sie noch mal den selbigen Ausdruck. da MS-DOS Befehle nur in wenigen Fällen mit Befehlen anderer Betriebssystemen (wie z. können Pfadnamen.MATLAB V3.B. Lösung 4.0 4.B. delete und cd werden einige Systemkommandos zur Dateiverarbeitung zur Verfügung gestellt.1 (loesung_1) 16 . Wenn dieses externe Editorprogramm beendet wird. Die Tabelle zeigt. dass der Rest der Zeile für das Betriebssystem gedacht ist.7 Dateiverarbeitung Mit den Kommandos dir. lädt !edit magik. 4.9 Übungsaufgaben 1. Unix) äquivalent sind. die dem DOS-Betriebssystem entlehnt sind. type. Achtung: Das Benutzen dieser Funktionalität kann ein entstehendes Programm zusätzlich an ein Betriebssystem binden. ohne MATLAB zu beenden. gibt das Betriebssystem an MATLAB die Kontrolle zurück. also kein MATLAB-Kommando enthält.8 Starten von externen Programmen Die wenigen voreingestellten Betriebssystembefehle aus dem vorigen Abschnitt lassen sich erweitern: Ein Ausrufezeichen ! gibt an. Im Betriebsystem DOS oder VMS z. Wildcards 4. MATLAB dir type delete cd MS-DOS Dir type del oder erase chdir oder cd UNIX Ls Cat Rm Cd VAX/VMS Dir Type Delete und Laufwerks- Bei den meisten dieser Befehle bezeichnungen verwendet werden. Hiermit können also sämtliche Befehle direkt an das Betriebssystem übergeben werden.m zum editieren geöffnet wird.m einen Editor mit dem Namen edit in dem die Datei magik. Dies wird sinnvoll um Utilities oder andere Programme zu starten. wie diese Befehle in anderen Betriebssystemen heißen. Berechnen Sie einmal im Format bank und anschließend im Format short die Differenz der beiden Matrizen und vergleichen Sie die Ergebnisse.0 2. Lösung 4.Erzeugen Sie zwei 10x10-Zufallsmatrizen mit sehr kleinen Werten.MATLAB V3.2 (loesung_2) 17 . 23e4 = 12300).1 Variablen MATLAB benötigt keine speziellen Typdeklarationen oder Dimensionsangaben. Im Unterschied zu anderen Programmiersprachen sind viele dieser Ausdrücke bereits dafür vorgesehen.1 (Beispiel_variablen) eine 1x1-Matrix mit dem Namen num_students und speichert den Wert 25 in ihrem reservierten Speicher. gefolgt von beliebig vielen Buchstaben. MATLAB verwendet zur Unterscheidung von Namen nur ihre ersten 32 Zeichen. gegebenenfalls neu deklariert und neuer Speicher zugewiesen.2 Zahlen MATLAB verwendet eine normale Dezimalschreibweise mit oder ohne Dezimalpunkt und evtl.0001 6. was eine der großen Stärken von MATLAB ist. Folgende Ausdrücke werden unterschieden: • • • • Variablen Zahlen Operatoren Funktionen 5.02252e23 1i -3.60210e-20 0. Variablennamen bestehen aus mindestens einem Buchstaben am Anfang. Minus oder Plus als Vorzeichen. 5. (1. Zahlen oder Unterstrichen. wird sie bei der ersten Initialisierung automatisch deklariert und ihr wird der passende Speicher zugewiesen. So erzeugt zum Beispiel num_students = 25.14159i 3e5i Alle Zahlen werden intern im double . 18 . auch komplette Matrizen verarbeiten zu können. Existiert die Variable bereits. Die wissenschaftliche Schreibweise verwendet den Buchstaben e um eine Zehnerpotenz darzustellen. mathematische Ausdrücke zur Verfügung. wie viele andere Programmiersprachen.MATLAB V3. MATLAB unterscheidet zwischen Groß.Format gespeichert. Es folgen ein paar Beispiele für gültige Zahlendarstellungen: 3 9. Außerdem sind 0 und ±∞ als Zahlenwerte vorhanden. Imaginäre Zahlen werden durch ein hintangestelltes i oder j dargestellt. so wird sie überschrieben.0 5 Ausdrücke MATLAB stellt. Dies ist das durch IEEE 754 spezifizierte Standard-Format für Gleitpunktarithmetik. a und A sind somit verschiedene Variablen.6397238 -99 1. Die Zahlen besitzen eine Genauigkeit von ungefähr 16 Dezimalstellen und haben Werte zwischen ca. Wenn in MATLAB eine neue Variable vorkommt. Um sich den Inhalt einer Matrix anzeigen zu lassen tippt man einfach ihren Namen ein. Beispiel 5. 10-308 und 10308.und Kleinschreibung. 4 Addition Subtraktion Kleiner als. denn das Ergebnis wird sowieso ‚true‘ ~ a Mit help ops erhält man eine Beschreibung aller Operatoren. Achtung: unterm Schrägstrich steht der Nenner. Stattdessen wird das Ergebnis automatisch als komplexe Zahl ausgegeben.0 5. wird nur ausgewertet soweit nötig: Beispiel: (x==0) && (y==1). exp und sin. a >= b a == b a ~= b a & b a ^ b a | b a && b 6 6 5 4 3 2 7 Priorität 10 10 9 9 7 Beschreibung Multiplikation Division.MATLAB V3. größer oder gleich Gleichheit Ungleichheit Logisches UND (AND) XOR (exklusives ODER) bzw.4 Funktionen MATLAB stellt eine große Anzahl von elementaren mathematischen Funktionen.B. denn das Ergebnis wird sowieso ‚false‘.3 Operatoren Nachfolgend sind die gängigsten MATLAB-Operatoren zusammen mit ihrer Abarbeitungsreihenfolge (Priorität) aufgeführt.Potenzierung des a hoch b Logisches ODER (OR) Schnelles UND (AND). Die meisten dieser Funktionen 19 . wird nur ausgewertet soweit nötig: Beispiel: (x==0) || (y==1). Operator a * b a / b a \ b a + b a – b a < b. bzw. Klammer unbeachtet. falls x~=0 (false) bleibt die 2.5 und 10 \ 4 0. bessel-Funktionen und gamma-Funktion. bzw. Falls man sich über die Genaue Abarbeitungsreihenfolge nicht sicher ist. 10 Unärer Operator. größer als Kleiner oder gleich. wie z. kann man diese auch über setzen von Klammern „()“ beeinflussen. Für genauere Informationen wird auf die MATLAB-Hilfe verwiesen (Stichwort „operators“). wie abs. NOT a 5. Das Ziehen einer Wurzel oder das Logarithmieren einer negativen Zahl ist kein Fehler. falls x==0 bleibt die 2. also 10 / 4 2. a > b a <= b. zur Verfügung. a || b 1 Schnelles ODER (OR) ). sqrt. Klammer unbeachtet. Außerdem stellt MATLAB viele spezielle mathematische Funktionen zur Verfügung. B. Die Namen der Konstanten und Funktionen sind nicht von MATLAB reserviert. Imaginärteil von das gleiche wie i relativer Gleitpunktfehler..B. das Ergebnis würde größer als realmax werden.MATLAB V3. (2 − eps) ∗ 21023 (−1) realmin realmax inf NaN ∞ keine Zahl (Not a Number) Die Zahl inf entsteht z.h. Nachteilig ist aber.. bei gamma und sinh möglich.. wie z. 123. 2-52 kleinstmögliche Gleitpunktzahl. bei der Division einer endlichen positiven Zahl durch Null (z.h. sind direkt in MATLAB integriert. für die keine eindeutigen Ergebnisse existieren. NaN (Not a Number) entsteht bei Ausdrücken wie 0/0 oder inf . so tippt man clear pi 5. Das Repertoire an elementaren Matrizen zeigt help elmat an.inf. d. es ist jederzeit möglich.4/0) oder bei der Berechnung von mathematischen Ausdrücken bei denen ein Überlauf auftritt. Man kann deren Code auch selbst modifizieren. sie zu überschreiben und somit als eigene Variablen. die als sogenannte M-Files vorliegen. Einige der Funktionen. Für eine Liste der speziellen Funktionen gibt man help specfun ein. Um sich eine Liste aller elementaren mathematischen Funktionen ausgeben zu lassen. Einige spezielle Konstanten stellt MATLAB zur Verfügung: pi i j eps 3.oder Funktionsnamen zu verwenden.5 Ausdrücke Beispiele von Ausdrücken mit ihren Ergebnissen: rho = (1+sqrt(5))/2 rho = 1.0 akzeptieren komplexe Zahlen und Matrizen als Argumente.6180 20 . Dies ist bei anderen Funktionen. Will man der Variablen oder Funktion wieder ihren ursprünglichen Wert zuweisen. deshalb sind sie sehr schnell und effektiv. dass man dadurch nicht an deren Quellcode herankommt. sqrt und sin. wie z.14159265.B. d.B. sollte das aber besser unterlassen. 2-1022 größtmögliche Gleitpunktzahl. gibt man help elfun ein. Beispiel: pi = 4711 Nun kann eps als Variable mit diesem neuen Wert verwendet werden. abs bezeichnet den Betrag einer komplexen Zahl.6 Übungsaufgaben anna ANNA anNa aNna_anna 1.► Bestimmen Sie alle Lösungen der Gleichung b + 2i + 8 − 4i = 30 Lösung 5.7977e+308 toobig = pi*huge toobig = Inf Beispiel 5. Wie viele verschiedene MATLAB Variablen stehen in folgender Zeile? Lösung 5.4 (loesung_8) 21 . 5.3730 + 0.3 (loesung_7) 4.0 Vorsicht: log bezeichnet in MATLAB den natürlichen Logarithmus (ln).3214i huge = exp(log(realmax)) huge = 1.1 (loesung_4) 2.MATLAB a = abs(3+4i) a = 5 z = sqrt(besselk(4/3. Die diesbezügliche Funktion heißt norm. rho-i)) z = 0.2 (Beispiel_ausdruecke) V3.2 (loesung_6) 3. Berechnen Sie e1+ 2i . (1 + 2i) e und (1 + 2i ) (1+ 2i ) Lösung 5. nicht aber den Betrag eines Vektors oder einer Matrix. Der Zehnerlogarithmus heißt log10.► Berechnen Sie die Polardarstellung dieser komplexen Zahlen. Hinweis: MATLAB-Funktionen angle und abs a) z = (1 − 3i ) 5 + (1 + 3i ) 5 b) c) d) z = (1 + i 2 3 50 2 ) z= (2 − i ) 7 − 1 + i ⋅ (−1 + i ) z = 5 −1+ 2i + (−1 + 2i ) 5 Lösung 5. sign(− NaN) NaN 0 ∞0 1NaN log(∞).0 5. log(0) 1 / inf inf + inf. exp(−∞) sign(NaN). die Sie erwarten? a) b) c) d) e) f) g) h) i) j) k) 1∞ 2∞ exp(∞).MATLAB V3. Sind die Ergebnisse die. log(−∞). Berechnen Sie die nachfolgenden Ausdrücke in MATLAB.5 (loesung_9) 22 . inf − inf − 1⋅ inf Lösung 5. 4.1 (Beispiel_help) Hierbei muss nicht einmal der genaue Befehlsname bekannt sein.3. da im Befehlsfenster auch Autovervollständigung unterstützt wird.Der help . Schreibt man zum Beispiel nur help mag und drückt dann die Tabulator-Taste werden alle Funktionen in einem kleinen PopUp-Menü dargestellt die mit „mag“ beginnen und man kann sich die gewünschte Funktion auswählen (vgl. wird gleich das ganze Wort vervollständigt.. Dabei gibt es viele verschiedene Möglichkeiten. Produces valid magic squares for N = 1. Gerade hierfür stellt MATLAB sehr umfangreiche Dokumentationen und Hilfeumgebungen zur Verfügung. and diagonal sums.0 6 Hilfe und die Onlinedokumentation Wie jede andere Programmiersprache auch ist MATLAB sehr umfangreich. 23 .1 Der help-Befehl Der help-Befehl ist der einfachste Weg um die Syntax und das Verhalten einer speziellen Funktion festzustellen.Der MATLAB Help-Desk . sich alle Funktionen und Besonderheiten zu merken. Beispiel: help magic gibt folgendes aus MAGIC Magic square. Beispiel 6. Sollte mit den gegebenen Anfangsbuchstaben eine eindeutige Funktionszuweisung möglich sein.MATLAB V3. column. geschweige denn die exakten Prototypen der einzelnen Funktionen und die Reihenfolge und Form ihrer Parametertypen. Die Information wird direkt im Befehlsfenster angezeigt..5.Online Bezugsseiten .. an Informationen über MATLAB heranzukommen: . Homepage im Internet 6. Inc.Das Hilfe-Fenster .Link zu The MathWorks. so dass es sicherlich nicht möglich ist. MAGIC(N) is an N-by-N matrix constructed from the integers 1 through N^2 with equal row. folgende Abbildung).Befehl . 0 Autovervollständigung von Befehlen nach Drücken der Tabulator-Taste 6. Sum of diagonal elements. Alle MATLAB-Funktionen sind in logischen Gruppen organisiert.Linear equation solution. use "help slash". Wenn Sie aber selbst einen Funktionsnamen eingeben. Die Verzeichnisstruktur basiert auf dieser logischen Gruppierung.1-norm condition number estimate. Linear equations. Determinant. gibt man help matfun ein und erhält: Matrix functions . Matrix rank. Reduced row echelon form. müssen Sie ihn klein schreiben.Cholesky factorization. norm normest rank det trace null orth rref subspace Matrix or vector norm.Incomplete Cholesky factorization.und Kleinschreibung unterscheidet. condest . Estimate the matrix 2-norm. weil MATLAB zwischen Groß.MATLAB V3. Zum Beispiel sind alle Funktionen zur Matrizenrechnung im Verzeichnis matfun zusammengefasst. Um sich alle diese Funktionsnamen mit einer Kurzbeschreibung ausgeben zu lassen. Null space. Orthogonalization. cholinc . Matrix analysis. Angle between two subspaces.Condition number with respect to inversion.numerical linear algebra. cond . \ and / . inv .und Variablennamen Großschreibung. um sie vom restlichen Text hervorzuheben.2 Anmerkung MATLAB help-Einträge verwenden für Funktions. 24 .Matrix inverse. chol . HELP topics: general\Beispiele MATLAB\general MATLAB\ops MATLAB\lang MATLAB\elmat MATLAB\elfun MATLAB\specfun MATLAB\matfun MATLAB\datafun MATLAB\polyfun MATLAB\funfun MATLAB\sparfun MATLAB\graph2d MATLAB\graph3d MATLAB\specgraph MATLAB\graphics MATLAB\uitools MATLAB\strfun (No table of contents file) General purpose commands. 25 . cdf2rdf .Characteristic polynomial.Condition number with respect to eigenvalues.rank 1 update to Cholesky factorization.Insert column in QR factorization.A few eigenvalues. svd . poly . qrupdate .Delete column from QR factorization. Specialized math functions.Evaluate general matrix function.rank 1 update to QR factorization.Generalized ingular value decomposition. Pseudoinverse. eig . hess . expm . funm . Linear least squares with nonnegativity constraints.Matrix logarithm.Matrix exponential. Elementary math functions. Two dimensional graphs. Orthogonal-triangular decomposition. Interpolation and polynomials. eigs . Matrix functions .Diagonal scaling to improve eigenvalue accuracy.Polynomial eigenvalue problem. rsf2csf . Graphical user interface tools. Factorization utilities qrdelete . Operators and special characters.MATLAB lu luinc qr lsqnonneg pinv lscov - V3. Programming language constructs.numerical linear algebra.Hessenberg form.0 LU factorization.Singular value decomposition. logm .Complex diagonal form to real block diagonal form.QZ factorization for generalized eigenvalues. Eigenvalues and singular values.2 (Beispiel_help_matfun) Der Befehl help alleine gibt alle Verzeichnisse mit einer kurzen Beschreibung der Funktionskategorie aus. cholupdate .A few singular values. Beispiel 6. Three dimensional graphs.Matrix square root. Data analysis and Fourier transforms.Real block diagonal form to complex diagonal form. polyeig . Least squares with known covariance. Specialized graphs. Character strings.Given's plane rotation. Function functions and ODE solvers. qrinsert . qz . svds . balance .Schur decomposition. planerot . condeig . Sparse matrices. sqrtm . Elementary matrices and matrix manipulation. Handle Graphics. Matrix functions. Incomplete LU factorization. gsvd .Eigenvalues and eigenvectors. schur . 4 (Beispiel_helpwin) 26 . Stateflow demonstrations and samples. Control System Toolbox -. For more help on directory/topic.GUI support functions.0 System Interface Files Examples and demonstrations. Fuzzy Logic Toolbox Demos. Neural Network Demonstrations. Beispiel 6. Grundsätzlich ist es aber auf allen Computern durch das Eingeben von helpwin aufzurufen und es erscheint das folgende oder ein ähnliches Fenster (je nach MATLABVersion). SystemBuild to Simulink Translator Stateflow Simulink Simulink block library. Fuzzy Logic Toolbox. Simulink 3 demonstrations and samples.obsolete commands. Time and dates.MATLAB MATLAB\iofun MATLAB\timefun MATLAB\datatypes MATLAB\winfun (DDE/ActiveX) MATLAB\demos wavelet\wavelet wavelet\wavedemo fuzzy\fuzzy fuzzy\fuzdemos toolbox\stats toolbox\ncd nnet\nnet nnet\nndemos nnet\nnutils nnet\nnobsolete toolbox\splines toolbox\optim toolbox\control control\ctrlguis control\obsolete stateflow\sfdemos toolbox\sb2sl stateflow\stateflow simulink\simulink simulink\blocks simulink\simdemos simulink\dee toolbox\tour MATLABR11\work toolbox\local File input/output. Control System Toolbox -. Differential Equation Editor MATLAB Tour (No table of contents file) Preferences. Wavelet Toolbox Demos. Statistics Toolbox. Control System Toolbox. Beispiel 6. Windows Operating V3. Nonlinear Control Design Blockset Neural Network Toolbox. type "help topic".3 (Beispiel_funktionskategorie) 6. Wavelet Toolbox. Data types and structures. Optimization Toolbox.3 Das Hilfe-Fenster Das MATLAB Hilfe-Fenster ist auf PCs durch das Anwählen der „Matlab Help“-Option im Menüpunkt Help oder durch das Anklicken des Fragezeichens auf der Menüleiste aufzurufen (alternativ drücken Sie die „F1“-Taste). (No table of contents file) (No table of contents file) Spline Toolbox. folgende Ausgabe 27 . Die Ausgabe von help inverse wird lauten inverse. welche Toolboxen installiert sind.B.4 Der lookfor-Befehl Der lookfor-Befehl erlaubt es Ihnen. geben sie helpwin [THEMA] ein (äquivalent wie die Benutzung des help-Befehls). Je nachdem. zusätzlich bietet es aber nützliche Links zu anderen Themen.0 MATLAB Hilfe Fenster Um das Hilfe-Fenster auf ein bestimmtes Thema anzuwenden. anhand eines Schlüsselwortes nach Funktionen zu suchen. Der Befehl untersucht die erste Zeile des help-Textes jeder MATLAB-Funktion – man nennt sie auch die H1-Zeile – nach dem eingegebenen Schlüsselwort und gibt diese bei einem Fund aus.MATLAB V3. bekommt man z. Das Hilfe-Fenster gibt Ihnen den Zugriff auf die gleichen Informationen wie der help-Befehl. Beispiel: MATLAB besitzt keine Funktion namens „inverse“. 6.m not found Aber lookfor inverse findet über ein Dutzend Treffer. 0 Two-dimensional inverse discrete Fourier transform. den Netscape Browser oder Internet Explorer dargestellt werden.6 (Beispiel_doc) 28 . wie z.5 (Beispiel_lookfor) 6. Inverse of the error function. V3. Kennen Sie den Namen einer speziellen MATLAB-Funktionen.B. Beispiel: doc eval doc öffnet den Browser. Beispiel: lookfor -all inverse Beispiel 6. Pseudoinverse. der doc-Befehl Der MATLAB-HelpDesk bietet einen guten Zugang zu mehr Hilfe und mehr Informationen auf der Festplatte oder CD-ROM. Inverse hyberbolic cosine. so können sie die Online Hilfe auch direkt mit dem Befehl doc starten. Inverse discrete Fourier transform. über die Sie näheres wissen wollen. Dabei wird automatisch ein Browser zur Darstellung benutzt. Inverse complex cepstrum. Außerdem gibt es auch noch weitere MATLAB-Dokumente. Für alle MATLAB-Operatoren und Funktionen gibt es eine HTML-Dokumentation die über den HelpDesk erreicht werden kann.5 Der HelpDesk bzw. IDCT Inverse discrete cosine transform. übersichtlicher Formatierung und Bildern. Beispiel 6. Wird die Option -all an den lookfor-Befehl angehängt. nachfolgende Abbildung). Diese Texte enthalten genauere und ausführlichere Beschreibungen mit Beispielen. falls er noch nicht geöffnet ist und zeigt automatisch die Dokumentation zum gesuchten Begriff an (vgl. Viele dieser Informationen basieren auf HTML und können somit durch einen Browser. Matrix inverse. so wird nicht nur die H1-Zeile. sondern alle H-Zeilen des help-Texteintrags untersucht. Der HelpDesk wird über das Menü Help und den Punkt „Using the Desktop“ oder durch das Eintippen von helpdesk gestartet.MATLAB INVHILB ACOSH ERFINV INV PINV IFFT IFFT2 ICCEPS Inverse Hilbert matrix. so haben sie die Möglichkeit über den HelpDesk eine Verbindung zu MathWorks. mit allen Schrifttypen. Ebenfalls können sie die Ergebnis-Such-Maschine bei MathWorks in Anspruch nehmen. vielleicht finden Sie ja auch hier das richtige. Man erhält sie durch den HelpDesk. den Herstellern von MATLAB. 29 . Sie können Fragen per E-Mail stellen.MATLAB V3.0 Helpdesk aufgerufen durch die Eingabe:>> doc sin 6. Gerade zu den Grundlegenden Themen wird auch schon auf der Startseite des HelpDesk Unterstützung angeboten. Aber informieren sie sich doch genauer in der MATLAB-Hilfe und suchen sie einfach mal nach „pdf“. Dieses Format gibt sehr gut das Erscheinungsbild eines gedruckten Dokuments wieder. um immer die aktuellsten Lösungsvorschläge und technischen Hinweise zu erhalten. zu öffnen. 6. Graphiken. Vorschläge machen und Fehler bekanntgeben. Die PDF-Dokumente werden mit Hilfe des Adobe Acrobat Reader dargestellt.7 Internetverbindung zu MathWorks Sollten sie über einen Internetzugang verfügen.6 Ausdrucken der Online-Hilfe Verschiedene Versionen der Online-Hilfe sowie die restliche MATLAB Dokumentation ist auch im PDF-Format vorhanden. Mit dem Acrobat Reader können sie die gewünschten PDF-Dokumente am besten anschauen und ausdrucken. Formaten und Bildern. 0 6. floor.2 (loesung_11) 30 . und round.6) floor(ceil(10.6) ceil(-2. Was macht der Befehl cross? Lösung 6. a) b) c) d) e) round(-2. In MATLAB gibt es die folgenden Rundefunktionen: ceil.MATLAB V3. Informieren Sie sich wie jede dieser Funktionen rundet und berechnen Sie die folgenden Ausdrücke zunächst per Hand und überprüfen Sie dann Ihre Ergebnisse in MATLAB.8)) Lösung 6. fix.8 Übungsaufgaben 1. Informieren Sie sich mit der MATLAB-Hilfe wie man ein Skalarprodukt zweier Vektoren berechnet.6) floor(-2.6) fix(-2.1 (loesung_10) 2. Dies zeigt Ihnen folgender Abschnitt.MATLAB V3. Ein gutes Beispiel für eine Matrix erscheint im Renaissance Holzschnitt Melancholia I des deutschen Künstlers Albrecht Dürer. Wir wollen diese im Folgenden häufig benutzen. numerische und nicht-numerische Daten zu speichern. Am Anfang ist es aber am Besten sich alles in Matrixform vorzustellen. Matrizen mit nur einer Zeile oder Spalte heißen Vektoren. Wo andere Programmiersprachen mit einzelnen Zahlen rechnen. 31 . wenn man lernt mit Matrizen umzugehen. In MATLAB sind Matrizen rechteckige Zahlen-Felder. Die Rechenoperationen sind in MATLAB so natürlich wie möglich gestaltet. mit ganzen Matrizen effizient und einfach zu arbeiten. 1x1-Matrizen haben oft eine besondere Bedeutung. sie heißen auch Skalare. MATLAB hat verschiedene Möglichkeiten. ermöglicht MATLAB Ihnen.0 7 Matrizen MATLAB ist am besten zu erlernen. Wir wollen sie gleich näher betrachten. 7. Warum werden ihr magische Fähigkeiten zugeschrieben? 32 .1 (Beispiel_eingabe_matrizen) Dies stimmt exakt mit den Zahlen auf dem Holzschnitt überein. Jede eingegebene Matrix wird von MATLAB im Arbeitsspeicher abgelegt. 5 10 11 8. Sie müssen nur wenige Grundregeln beachten: • • • Die Elemente werden durch Leerzeichen oder Kommas getrennt Ein Strichpunkt markiert das Ende einer Zeile Die gesamte Matrix wird von eckigen Klammern [ ] eingeschlossen Um die Matrix von Dürer einzugeben. Sie können sie einfach mit ihrem Namen A aufrufen. Nun können Sie einen Blick darauf werfen. 4 15 14 1] MATLAB zeigt sofort die eingegebene Matrix an: A = 16 5 9 4 3 10 6 15 2 11 7 14 13 8 12 1 Beispiel 7. tippen Sie einfach: A = [ 16 3 2 13. dessen Charakteristika zu Dürers Zeiten viele Leute beeindruckten. 9 6 7 12.1 • • • • Eingabe von Matrizen Eingabe einer Reihe von Elementen Matrizen aus externen Dateien laden Erzeugen von Matrizen mit Hilfe vorgegebener (integrierter) Funktionen Erstellen von Matrizen mit eigenen Funktionen in M-Files Sie können in MATLAB Matrizen auf verschiedene Arten eingeben: Geben Sie Dürers Matrix A als eine Liste von Elementen ein. was die gespeicherte Matrix A so interessant macht.MATLAB V3.0 Sie befindet sich in der rechten oberen Ecke des Bildes und stellt ein sogenanntes Magisches Quadrat dar. 0 7. und dann das Ergebnis nochmals zu transponieren. die Spur der Matrix A. Sie werden immer dieselbe Zahl erhalten. benutzt MATLAB die Variable ans.MATLAB V3.2 (Beispiel_summe) Falls keine Ausgabe-Variable definiert wird. der die Spaltensummen von A enthält.3 (Beispiel_transposition) und sum(A')' gibt die Zeilensummen von A in einem Spaltenvektor aus: ans = 34 34 34 34 Beispiel 7. Sie haben mit dem sumBefehl einen Zeilenvektor gebildet. So erzeugt A' die Ausgabe ans = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1 Beispiel 7. kurz für answer (Antwort) um das Ergebnis der Berechnung zu speichern. ist die Matrix zu transponieren. Transposition und Spur Vielleicht haben Sie schon bemerkt. Die Transposition wird durch ein Hochkomma ( ' ) angegeben. Überprüfen Sie dies mit MATLAB.h. wird einfach mit Hilfe der diag-Funktion ermittelt sum(diag(A)) 33 . Bilden Sie die Summe jeder Zeile oder Spalte. Wie steht es mit den Zeilensummen? MATLAB-Befehle wirken in der Regel spaltenweise. Die einfachste Art die Zeilensummen zu berechnen. dass die speziellen Eigenschaften des Magischen Quadrats mit der Summierung der Elemente in verschiedenen Richtungen zusammenhängen. die Matrix wird an der Hauptdiagonalen gespiegelt. d.2 Summe.4 (Beispiel_zeilensumme) Die Summe der Elemente der Hauptdiagonalen. Jede der Spalten hat die gleiche Summe – die magische Summe 34. Der erste Befehl ist: sum(A) MATLAB gibt folgendes aus: ans = 34 34 34 34 Beispiel 7. anschließend die Spaltensummen der transponierten Matrix zu bilden. Transposition eines Zeilenvektors liefert einen Spaltenvektor und umgekehrt. Sie spiegelt die Matrix an ihrer Mittelachse. hilft hier jedoch weiter. Spalte auch folgendermaßen berechnen: A(1.und Spaltenvektoren zu bezeichnen.2) anzusprechen. Zum Beispiel steht A(4. 2) = 15. In den folgenden Abschnitten wird die Matrix A benutzt. gibt MATLAB einen Fehler aus: t = A(4.6 (Beispiel_fliplr) Damit haben Sie geprüft. Spalte von A.4) + A(3.4) + A(4.4) + A(2.8 (Beispiel_index) 34 . die eigentlich für Graphik-Anwendungen gedacht war. um die Summe einer einzelnen Spalte zu bilden. deshalb gibt es keine MATLABFunktion zu ihrer Summierung.4) Resultat ist ans = 34 Beispiel 7. n) bezeichnet. Falls Sie einen Wert außerhalb der Matrix aufrufen wollen. 2) für die Zahl in der 4. um weitere MATLAB-Eigenschaften zu veranschaulichen. Zeile und 2. In unserem magischen Quadrat ist A(4. Dadurch wird die Gegendiagonale zur Hauptdiagonalen und ihre Spur ist sum(diag(fliplr(A))) ans = 34 Beispiel 7. 7. etwa A(k). der sich durch Aneinanderreihen der Spalten der Original-Matrix A ergibt.MATLAB ergibt: ans = 34 Beispiel 7. Mit dieser Beziehungsweise kann man die Summe der Elemente in der 4. Elemente einer Matrix mit einem einfachen Index anzusprechen.7 (Beispiel_indizes) Dies ist sicher nicht der eleganteste Weg. dass die Matrix im Holzschnitt von Dürer wirklich ein magisches Quadrat ist und zugleich einige Beispiele für die Matrizenrechnung kennengelernt. Die Funktion fliplr. Aber einfache Indizes können auch bei Matrizen benutzt werden. Für unser magisches Quadrat ist also A(8) eine andere Möglichkeit den Wert 15 in A(4.5) ??? Index exceeds matrix dimensions.0 Die Gegendiagonale ist mathematisch nicht so wichtig. Dies ist der übliche Weg Komponenten von Zeilen.3 Indizes Das Element in Zeile m und der Spalte n der Matrix A wird mit A(m. In diesem Fall wird das Zahlenfeld A als ein langer Spaltenvektor betrachtet. Beispiel 7.5 (Beispiel_diag_funk) V3. Es ist außerdem möglich. evtl. geben Sie eine beliebige. Der Ausdruck: 1:10 ist ein Zeilenvektor.2) ans = 3 35 .5) = 17 X = 16 5 9 4 3 10 6 15 2 11 7 14 13 8 12 1 0 0 0 17 Beispiel 7. Teilmatrizen. ergibt 100:-7:50 ans = 100 93 86 79 72 65 58 51 Beispiel 7. X(4.12 (Beispiel_neg_schrittweite_2) Indexausdrücke.3562 3.10 (Beispiel_zeilenvektor) Um andere Abstände zu erhalten. beziehen sich auf Ausschnitte von Matrizen. sog.5708 2. Er tritt in verschiedenen Zusammenhängen auf.4 Der Doppelpunkt-Operator Der Doppelpunkt ist einer der wichtigsten Operatoren in MATLAB.11 (Beispiel_neg_schrittweite) und 0:pi/4:pi ans = 0 0. auch negative Schrittweite an.B.9 (Beispiel_feldgrenze) 7. die den Doppelpunktoperator enthalten. Die Größe der Matrix wird für das neue Element passend erweitert: X = A.0 Man kann jedoch einen Wert außerhalb der Feldgrenzen speichern.7854 1. A(1:3. Z.MATLAB V3. der die Zahlen eins bis zehn der Reihe nach enthält: ans = 1 2 3 4 5 6 7 8 9 10 Beispiel 7.1416 Beispiel 7. 14 (Beispiel_spaltenvektor) V3. muss sum(1:16)/4 natürlich ans = sein.Quadrat 34? Falls die ganzen Zahlen von 1 bis 16 in vier Gruppen mit gleichen Summen aufgeteilt sind.13 (Beispiel_doppelpunktoperator) ist ein Spaltenvektor und besteht aus den ersten 3 Elementen der 2.4)) schreiben können. Man kann es z. Spalte von A.5 Die magic–Funktion MATLAB hat übrigens eine eingebaute Funktion. Diese Funktion hat den Namen magic B = magic(4) B = 16 5 9 4 2 11 7 14 3 10 6 15 13 8 12 1 Beispiel 7. 34 Beispiel 7.4)) ans = 34 Beispiel 7.MATLAB 10 6 Beispiel 7.15 (Beispiel_alleinst_doppelp) Ebenso gut hätte man sum(A(:. sum(A(:.16 (Beispiel_mag_summe) 7. sum(A(1:4.B. Das geht sogar noch einfacher: Der Alleinstehende Doppelpunkt bezieht sich auf alle Matrixelemente in einer Zeile oder Spalte. wie groß die Matrix ist.0 berechnet die Summe der 4. Spalte von A. verwenden.17 (Beispiel_magic_funk) 36 . ans = 34 Beispiel 7. Warum ist die magische Summe bei einem 4x4 . die magische Quadrate nahezu beliebiger Größe erzeugen kann. wenn man nicht mehr weiß.end)) berechnet die Summe der Elemente der letzen Spalte von A. Das Schlüsselwort end bezieht sich auf die letzte Zeile oder Spalte. dass die beiden mittleren Spalten vertauscht sind. Lösung 7. das Entstehungsjahr seines Werkes. Das kann geschehen mit A = B(:. Der einzige Unterschied besteht darin.3 (loesung_14) 4. * Erzeugen Sie eine tridiagonale 5x5-Matrix mit Einsen auf der Hauptdiagonalen.5]) A(1.6 Übungsaufgaben 1. Erzeugen Sie eine Diagonalmatrix mit 1. auf diese Weise in der letzten Matrix-Zeile unterbringen. Welches sind die Werte der folgenden Ausdrücke (Überlegen Sie sich aber zuerst das Ergebnis. Warum hat wohl Dürer A anstelle von B in seinem Holzschnitt verewigt? – Vermutlich wollte er die Jahreszahl 1514.3.MATLAB V3.5) A(:.2. bevor Sie es in MATLAB eingeben)? a) b) c) d) e) f) A(2. dass in jeder Zeile von Matrix B die Elemente in der Reihenfolge 1.0 Diese Matrix ist fast identisch zur Matrix A aus Dürers Holzschnitt.5:-1:1) Lösung 7. 3. 4]) A = 16 5 9 4 3 10 6 15 2 11 7 14 13 8 12 1 Beispiel 7.1 (loesung_12) 2.[1.18 (Beispiel_duerers_matrix) Diese Anweisung hat bewirkt. 4 angeordnet wurden.1:2:5) A(4:-1:1. 7.4. 2. Sie hat auch all deren magische Eigenschaften.4 (loesung_15) 37 . Erzeugen Sie mit der Funktion rand eine 5x5-Zufallsmatrix A. Lösung 7. Um die Matrix B in Dürers Matrix umzuwandeln.:) A(:. Erzeugen Sie ein magisches Quadrat der Größe 6x6 und weisen Sie alle Eigenschaften von magischen Quadraten nach. Zweien auf der unteren Nebendiagonalen und Dreien auf der oberen Nebendiagonalen.2 (loesung_13) 3.1) A([1. 3. Lösung 7. 2. Verwenden Sie einmal den Befehl diag zum Erzeugen einer vollen Matrix und einmal den Befehl spdiags zum Erzeugen einer schwach besetzten Sparse-Matrix. müssen nur diese beiden Spalten vertauscht werden.5 auf der Diagonalen. ErsteMatrix = [1 2 3. jedoch sind bei Berechnungen. 6] ErsteMatrix = 1 4 2 5 3 6 Anstatt dem Komma zur Spaltentrennung reicht ein einfaches Leerzeichen. 2.2) Z = 0 0 0 0 F = 0 0 0 0 Alle Elemente sind Nullen (Nullmatrix) Alle Elemente sind Einsen Gleichverteilte Zufallszahlen aus [0. 4. 8. ErsteMatrix = [1 2 3.3) 38 . 3. welche dann sehr leicht auf andere „brauchbare“ Matrizen konvertiert werden können. welche dann nicht mehr einfach per Hand eingegeben werden können. Der folgende Abschnitt zeigt ihnen andere Wege zur Erstellung von elementaren Matrizen.0 8 Arbeiten mit Matrizen Wie bereits im vorherigen Kapitel besprochen. werden einfache Matrizen über eckige Klammern [ ] definiert. 5. entstanden aus realen Problemstellungen.1[ normalverteilte Zufallszahlen (Mittelwert 0 und Varianz 1) Einheitsmatrix F = 5 * ones(3. 4 5 6] Hierbei muss aber darauf Acht gegeben werden.MATLAB V3. meist sehr große Matrizen von Bedeutung. wobei ein Komma eine Spalte abschließt und ein Semikolon (Strichpunkt) eine Zeile. Zeilen auch wirklich zusammen passen. 4 5] % Falsche Eingabe!!!!!!!!! Natürlich ist diese Eingabe von Matrizen relativ komfortabel für kleinere Exemplare. Folgender Befehl würde demzufolge eine Fehlermeldung ergeben. ErsteMatrix = [1. wobei die folgende Eingabe das gleiche Resultat wie die obige Eingabe erziehlt. dass die Dimensionen der einzelnen Spalten bzw.1 Erstellen von Matrizen mittels Funktionen MATLAB stellt folgende Funktionen zum Erzeugen grundlegender Matrizen zur Verfügung: zeros ones rand randn eye Einige Beispiele: Z = zeros (4. 1139 2 6 4 8 7 4 0 8 4 R = randn(4.B. mit einem Texteditor eine Datei.1832 -0. die numerische Daten tabellarisch enthalten.3) A = 1 0 0 0 1 0 0 0 1 -1. 8.0376 0.1909 1.7258 -0.0 14. eye(3.0 2.1746 -0.0 13.3 M-Files 39 .0 15.4) 5 5 5 5 5 5 V3.0 6.0 5.0 und speichern Sie diese unter magik.0 3.1253 0.MATLAB 5 5 5 N = 9 R = -0.0 1.10)) Beispiel 8.0 11. welche z.5883 2. sprich die Matrix ist quadratisch. die Matrizen enthalten.1 (Beispiel_erstellen_matrizen) Wie man an den eingaben unschwer erkennen kann. Erstellen Sie z.1892 -0.0 9.1364 0. wobei der erste Parameter immer die Anzahl der Zeilen angibt und der zweite Parameter immer die Anzahl der Spalten.dat liest die Datei und speichert ihren Inhalt in einer Matrix namens magik.2 load Das Kommando load liest binäre Dateien ein.0 N = fix(10*rand(1.0 8.0 4.dat.0 10.4326 -1.1867 0. Die Zahlen werden durch Leerzeichen getrennt.0 12. dann reicht auch ein Übergabeparameter. die folgende Einträge enthält: 16. B. Der Befehl load magik.0 7.2877 A = eye(3.3273 0. load kann aber auch Textdateien einlesen.1465 1.6656 0. Sind Anzahl der Zeilen gleich zu der gewünschten Anzahl von Spalten. wird die Dimension der Matrix einfach mittels zweier Übergabeparameter festgelegt. in früheren MATLAB-Sitzungen erzeugt wurden.3) ist z.B äquivalent zu eye(3) 8. Sie müssen die erstellte Datei lediglich mit der Dateiendung „. als ob Sie sie direkt darin eingegeben hätten. Solche Skript-Dateien werden bei MATLAB umgangssprachlich als M-Files bezeichnet.m“ versehen. Nach drücken des „Run“-Icons wird das Skript ausgeführt und im „Command Window“ ausgegeben. Daraufhin werden die Zeilen im Befehlsfenster der Reihe nach abgearbeitet. direkt in der „Current Directory“ (oder in einem 40 . Dies erleichtert die Bearbeitung unterschiedlicher Dateien. Tipp Richten Sie sich zuerst das „Current Directory“ ein und speichern Sie dort Ihre erstellten MFiles. Natürlich müssen Sie nicht den MATLAB-Editor verwenden. da ihre Dateiendung „. In neueren Matlab-Versionen steht als Run-Icon ein grünes Dreieck. wenn sie im Menü „File/New/M-File“ auswählen. Wir werden hier nicht vertieft auf die Möglichkeiten mit M-Files eingehen. Zum Ausführen dieser Skripte drücken Sie entweder den „Run“-Icon.MATLAB V3. kann man natürlich auch wie bei anderen Programmiersprachen Skripte schreiben die Zeilenweise abgearbeitet werden können. werden sie hier kurz vorgestellt.m“ ist.B. Das Ausführen der Dateien kann dann ebenso wie gerade beschrieben funktionieren. sie können aber auch direkt im Befehlsfenster aufgerufen werden. durch Öffnen im MATLAB-Editor. es kann jeder beliebige Editor verwendet werden. Liegt die Datei z. aber da sie für das effektive arbeiten mit MATLAB unumgänglich sind. Sie folgende Abbildung).0 Da das editieren von vorangegangen Befehlen im Befehlsfenster relativ mühsam ist und die meisten Aufgaben. drücken die „F5“-Taste oder gehen zu dem Menüpunkt „Debug/Run“. Rot eingerahmt der MATLAB-Editor. welche mit Matlab zu erledigen sind auch nicht nur ein paar wenige Befehlszeilen umfassen. in welchen sie die Befehle wie im Befehlsfenster eingeben können (vgl. Es öffnet sich nun der MATLAB-Editor. Sie erzeugen M-Files am einfachsten. da so im Dialogfeld „Current Directory“ einfach zwischen den unterschiedlichen Dateien ausgewählt werden kann. 0 10.B.0 8.0 1.4 Zusammensetzen von Matrizen Angenommen Sie haben eine Matrix A bereits erstellt.2 (Beispiel_zusamm_matrizen) Diese Matrix ist fast ein weiteres magisches Quadrat. die die folgenden fünf Zeilen enthält.0 14. Mit Hilfe der eckigen Klammern kann man daraus neue Matrizen zusammensetzen Der Verkettungsoperator ist das eckige Klammerpaar [ ]. um aus B ein magisches Quadrat zu machen. 41 . B = [ A A+32.0 2.0 4. A+48 A+16] Das Resultat ist eine 8x8 Matrix. Andernfalls müssen Sie vorangestellt den Pfad eingeben.0 6. Die Anweisung magik lädt die Datei und erzeugt die Variable A. wenn Sie die 4 Untermatrizen aneinanderhängen.0 anderen vorgegebenen Suchpfad.0 3. siehe path).0 15. Erzeugen Sie z. Einige weitere Manipulationen sind nötig.0 9.0 7. sum(B')' sind nicht alle gleich. sum(B) ans = 260 260 260 260 260 260 260 260 Beispiel 8. die Sie erhalten.0 12. Speichern Sie diese Datei unter dem Namen magik. Benutzen Sie doch die im vorangegangenen Abschnitt erzeugte Matrix A und erstellen daraus wie folgt die Matrix B. 8.0 13. wie bei einem magischen Quadrat im Format 8x8. müssen Sie hierzu nur den Namen der Datei in die Befehlszeile eingeben.m ab.MATLAB V3.0 ]. B = 16 5 9 4 64 53 57 52 3 10 6 15 51 58 54 63 2 11 7 14 50 59 55 62 13 8 12 1 61 56 60 49 48 37 41 36 32 21 25 20 35 42 38 47 19 26 22 31 34 43 39 46 18 27 23 30 45 40 44 33 29 24 28 17 Beispiel 8. die Ihre Beispiel-Matrix enthält. A = [ 16.0 5.0 11.3 (Beispiel_mag_quadrat) Aber die Zeilensummen. mit einem Texteditor eine Datei. Die Spaltensummen haben einen identischen Wert. Die Elemente sind eine Anordnung der ganzen Zahlen 1 bis 64. 8. Das Resultat ist X = 16 5 9 4 2 11 7 14 13 8 12 1 Beispiel 8. So liefert der Ausdruck X(1.6 Lineare Algebra 42 . Fangen Sie an mit: X = A.MATLAB V3. was durch den einfachen Index in den runden Klammern zum Ausdruck kommt.5 (Beispiel_loesch_zeil_spalt_2) Hier wurde die komplette Matrix X als Vektor aufgefasst. ones(3)*3. ones(3)*2. sodass die einzelnen Spalten und Zeilen auch tatsächlich eine Matrizenform ergeben. Dagegen liefert X(2:2:10) = [] das Ergebnis X = 16 9 2 7 13 12 1 Beispiel 8.5 Löschen von Zeilen und Spalten Sie können Zeilen und Spalten einer Matrix löschen.0 Noch offensichtlicher wird die Funktionsweise der Matrizenzusammensetzung bei Ausführung der folgenden Befehlszeile. ones(3)*2. ist das Ergebnis keine Matrix mehr. Spalte von X in dem Sie X(:. um eine reduzierte Matrix zu erhalten. C = [ones(3).4 (Beispiel_loesch_zeil_spalt) Falls Sie ein einzelnes Element der Matrix löschen wollen. Man muss immer komplette Zeilen und/oder Spalten löschen. ones(3)*3] % Inkorrekter Befehl!!!! 8. C = [ones(3). 2) = [ ] schreiben. Folgende Zeile würde demnach eine Fehlermeldung erzeugen. ones(3)*4] Hierbei muss selbstverständlich genau auf die Dimensionen der einzelnen Matrizen geachtet werden.2) = [ ] eine Fehlermeldung. Löschen Sie anschließend die 2. indem Sie diesen einfach ein leeres Paar eckiger Klammern zuweisen. Im Folgenden werden Matrixoperationen anhand von Beispielen aus der Praxis dargestellt. die in Matlab-Notation folgendermaßen aussehen: A = [ 3 5 -7. d. Mathematische Operationen mit Matrizen sind Gegenstand der linearen Algebra. 9 -8 3.6806]. sondern einfach den Bezug zur Praxis aufrecht erhalten. Die Addition einer Matrix zu ihrer Transponierten ergibt eine symmetrische Matrix. zur Berechnung jedes Matrixelements werden Skalarprodukte zwischen einer Zeile und einer Spalte gebildet. bezieht sich auf die Matrix-Multiplikation.1581. z.MATLAB V3. 2.h. Den dem gesuchten Lösungsvektor v = [ x y z ]' erhält man über den Matlab-Befehl v = A\b . Zentrale Aufgabe der linearen Algebra ist das Lösen von linearen Gleichungssystemen. A' * A ans = 378 206 212 360 43 . Ergebnis ist v = [ 1. -1 2 3].B. Prüfen Sie es nach. Das dieses Beispiel den häufigsten Rechenvorgang darstellt.0 Eine Matrix ist ein zweidimensionales Feld. Dürers magisches Quadrat: A = magic(4) A = 16 5 9 2 11 7 3 10 6 13 8 12 4 14 15 1 bietet eine Möglichkeit. Sie haben bereits die Transposition A‘ einer Matrix A kennengelernt. Die Multiplikation einer Matrix mit ihrer Transponierten ergibt eine symmetrische Matrix. muss die Matlab-Anweisung A*v den Vektor b ergeben. Bitte verwechseln Sie den \ in der Matlab-Notation nicht mit /! Im folgenden wollen wir uns allgemeiner mit Matrizen befassen. 0. wie z. A + A' ans = 32 7 12 7 22 17 12 17 12 17 22 27 17 22 27 2 Das Multiplikationssymbol *. Dies sollte Sie nicht verwirren.7z = -x + 2y + 3z = 9 5 9x – 8y + 3z = -4 In Matrix-Form schreibt man dieses System Av = b mit der Matrix A und dem Vektor b. das eine lineare Transformation darstellt.B. 3x + 5y . b = [ 9 -4 5]'. Für Sie sollten natürlich die jeweiligen Funktionen sowie die MATLAB-Syntax im Vordergrund stehen. Matrixoperationen mit MATLAB zu veranschaulichen. ist es besonders wichtig.0581. Aus R = rref(A) R = 1 0 0 0 1 0 0 0 1 1 -3 3 0 0 0 0 kann man weitere Eigenschaften von A ablesen Dadurch dass unsere Matrix A singulär ist. deshalb liefert er nur eine Warnung und keine Fehlermeldung. die Singularität von A exakt festzustellen.4442 8.8147 -2. Sollten sie trotzdem versuchen.0 360 212 206 378 Die Determinante unserer Matrix A ist 0 und zeigt somit an. Results may be inaccurate.8147 2. Noch mehr Information liefert die MATLAB-Funktion rref. so weit das möglich ist (Gauß’sche Zeilenstufenform). X = 1.9382 -2. also keine Inverse hat.8147 0. RCOND = 1.4442 2. die linear abhängige Zeilen in A eliminiert und die Restmatrix diagonalisiert.8147 -0.9382 2.9382 Beispiel 8.MATLAB 206 212 370 368 368 370 212 206 V3. die Inverse auszurechnen. dass A singulär ist.4442 -2. ist aber so nahe an eps.8147 -0. hat A nicht den Höchstrang 4.8147 -8. Der Wert von rcond.9382 2.8147 -2. besitzt sie auch keine Inverse.7 (Beispiel_lineare_algebra_2) Rundefehler haben den Inversionsalgorithmus davon abgehalten. d = det(A) d = 0 Den Rang von A findet man mit r = rank(A) r = 3 Beispiel 8.8147 8.567374e-017.6 (Beispiel_lineare_algebra) Wie man hieraus erkennt. der relativen 44 . der reziproken Konditionszahl.4442 -8. etwa durch X = inv(A) so erhalten sie folgende Warnmeldung Warning: Matrix is close to singular or badly scaled.0e+014 * 0. 1176 0. dass die Inverse von A wohl kaum auch nur mit minimaler Genauigkeit berechnet worden sein kann! Aus diesem Grund wird eine Warnung ausgegeben.9443 0.3529 0.4118 0.0294 45 .1765 0. Der größte Eigenwert von A ist 34.m] = size(A) Die Eigenwerte von magischen Quadraten sind ebenfalls von Interesse e = eig(A) liefert e = 34.0588 0.0000 8.9443 -8.3824 0.2941 0. denn 34*v = A*v: A*v ans = 34 34 34 34 Beispiel 8.2353 0. ein Eigenvektor ist: v = ones(4.4412 0.0 Gleitpunktgenauigkeit.4706 0.2647 0. Dies liegt daran.10 (Beispiel_magic_ones) Wird ein magisches Quadrat durch seine magische Summe dividiert. belegt mit lauter Einsen. P = A/34 P = 0.MATLAB V3.0882 0.0000 Beispiel 8. Das Format nxm einer Matrix A erhält man übrigens mit [n. dies ist eine weitere Folge der Singularität von A.1471 0. dass der Vektor v. dies ist unsere magische Summe.2059 0.3235 0.9 (Beispiel_eigenw_mag_quad_2) Er gehört zum Eigenwert 34.8 (Beispiel_eigenw_mag_quad) Einer der Eigenwerte ist 0.1) v = 1 1 1 1 Beispiel 8. Ausgenommen sind + und – Zeichen. MATLAB beinhaltet verschiedene weitere Operationen.2499 0. Da die Matrix A singulär ist.2496 0.14 (Beispiel_char_polynom) ist.2498 0. die elementweise ausgeführt werden. die Rechenoperation wirkt jeweils auf diejenigen Paare von Elementen zweier Felder./ Multiplikation Division 46 . Elementweise arbeitende Operatoren sind: . da die beiden Operationen immer elementweise arbeiten. – Probieren Sie es aus. D. In unserem Beispiel ist die fünfte Potenz der Übergangsmatrix P P^5 ans = 0.* . die elementweise ausgeführt werden. die das Magische Quadrat enthält.2509 0.h.MATLAB Beispiel 8. deren Zeilen. die an übereinstimmenden Positionen stehen.2501 0. V3. dass das charakteristische Polynom det( A − λ E) = λ 4 − 34 ∗ λ 3 − 8 ∗ λ 2 + 2176* λ Beispiel 8.12 (Beispiel_markov_proz) Wird die Matrix P k-mal potenziert und ist k sehr groß. Felder identischen Formats werden in praktischen Anwendungen oft durch arithmetische Operationen verknüpft. Addition und Subtraktion von Matrizen sind ohnehin elementweise definiert. und kennzeichnet diese durch einen Punkt vor dem Operationssymbol.2506 0.und Spaltensummen alle 1 ergeben.13 (Beispiel_polynoms) Dies zeigt.2491 0. so nähern sich die Elemente dem Zahlenwert ¼.2508 0.2511 0.2505 0.2492 0.2489 Beispiel 8. ermitteln mit a = poly(A) a = 1 -34 -8 2176 0 Beispiel 8. Schließlich lassen sich die Koeffizienten des charakteristischen Polynoms unserer Matrix A.wieder unsere magische Zahl! 8. hat der konstante Term den Faktor 0 und der kubische Faktor im charakteristischen Polynom ist 34 . Wiederholtes Potenzieren der Matrix P entspricht fortgesetzten Prozeßschritten.11 (Beispiel_mag_sum) so erhält man eine Matrix.2495 0.2504 0. aber schon die Multiplikation funktioniert anders.2502 0.2494 0.7 Elementweise Operationen Matrizen kann man auch einfach als 2-dimensional angeordnete Zahlenfelder ansehen.0 Solche Matrizen enthalten Übergangswahrscheinlichkeiten in einem Markov-Prozess. So erhält man ein Feld.' Matrix–Transposition ohne komplexe Konjugation (A‘ ohne Punkt bezeichnet die transponierte und komplex konjugierte Matrix zu A) Mit A. Bei der Transposition komplexer Matrizen werden normalerweise zusätzlich alle Elemente der Matrix durch ihre komplex konjugierten ersetzt.B. dies hat die Quadrierung jedes einzelnen Elementes einer Matrix zur Folge. welches die Quadrate aller ganzen Zahlen zwischen 1 und 16 in unregelmäßiger Anordnung enthält.\ Links-Division V3. die Dürermatrix elementweise mit sich selbst multipliziert. einen Spaltenvektor n mit n = (0:9) n = 0 1 2 3 4 5 6 7 8 9 Dann ergibt pows = [n n.B.^2 2. um Tabellen zu erstellen und zu verarbeiten. Kurz.^ Potenzierung Ebenfalls mit einem Punkt versehen kann man den Transpositions-Operator '. Wir belegen z.^n] die folgende Tabelle mit Quadraten und Zweierpotenzen der Elemente von n pows = 0 1 2 0 1 4 1 2 4 47 . Elementweise Operationen sind nützlich.0 .*A entsteht ans = 256 25 81 16 4 121 49 196 9 100 36 225 169 64 144 1 Beispiel 8.MATLAB . Das kann man unterdrücken durch den Operator .15 (Beispiel_elem_operat) Wird z. x = (1:0. Erzeugen Sie mit der Funktion rand zehn gleichmäßig verteilte Zufallszahlen im Intervall zwischen .9 2 0 0.1:2)'.4 1.2 1.5 1.11394 0.23045 0.1 (loesung_16) 48 .27875 0.6 1.MATLAB 3 4 5 6 7 8 9 9 16 25 36 49 64 81 8 16 32 64 128 256 512 V3.7 1.3 1.π und π .14613 0.8 Übungsaufgaben 1.1 1.30103 Beispiel 8.17609 0.25527 0.8 1. logs = [x log10(x)] eine Logarithmentafel: logs = 1 1.0 Beispiel 8. So erstellt z.079181 0.16 (Beispiel_elem_operat_2) Die elementaren mathematischen Funktionen wirken immer Elementweise.20412 0.17 (Beispiel_logarithmentafel) 8.041393 0. Lösung 8.B. format short g. beginnend bei Zeile 10 und Spalte 20. Hinweis: MATLAB-Funktion triu bzw. Es kann wichtig sein eine große Matrix in Untermatrizen zu zerlegen. das n x nMatrizen erzeugt.6} sind. Die MATLAB-Funktion rand erzeugt eine n x n-Matrix. tril Lösung 8. Fügen Sie in A eine 5x10 Matrix B ein. Dabei ist A eine 20x30 Matrix.2.3 (loesung_18) 4. Lösung 8. Erzeugen Sie eine 6x6 obere (untere) Dreiecksmatrix mit Zufallszahlen zwischen 0 und 1. Lösung 8.MATLAB V3.4 (loesung_1) 5.5.25. Erzeugen Sie mit der Funktion randn tausend normalverteilte Zufallszahlen mit Mittelwert -5. Erzeugen Sie eine 10x10 symmetrische Matrix S mit Zufallszahlen zwischen 0 und 8. Erzeugen Sie die Untermatrix von A von Zeile 15 bis 20 und Spalte 5 bis 10.3. Lösung 8. a) Erzeugen Sie eine 50x50 Matrix der Form B = ⎢ ⎡A 0 ⎤ T⎥ ⎣0 A ⎦ Lösung 8. Schreiben Sie ein Funktion-File (M-File).4.0 2.2 (loesung_17) 3.5 (loesung_20) 6.1) sind. deren Einträge gleichmäßig verteilte Zufallszahlen aus dem Intervall (0. deren Einträge Zahlen aus {1.5 und Standardabweichung 0. Beschreiben Sie die Befehle oder Funktionen von MATLAB. die die folgenden Aufgaben ausführen.6 (loesung_21) 49 . die ausgeführt werden. A > B. von einer Schleife) Logische Ausdrücke zur Ablaufkontrolle enthalten meistens relationale oder logische Operationen.B.1 if-Anweisung Die if-Anweisung wertet einen logischen Ausdruck aus und führt Gruppen von Anweisungen aus. und sonst nur aus Nullen besteht. Intern entsteht eine Matrix L. z.B.MATLAB V3. wie in C und verwandten Programmiersprachen üblich. Beachten Sie. müssen beide Felder A und B das gleiche Format haben. Das Schlüsselwort end beendet immer den letzten Block der Anweisung. MATLAB kennt & | ~ xor any all logisches „und” logisches „oder” logisches „nicht” exklusives „oder” (entweder/oder) 1 falls irgendein Element eines Spalte ungleich 0 (also „wahr”) ist 1 falls alle Elemente einer Spalte ungleich 0 (also „wahr“) sind. Ähnlich verhält es sich bei logischen Operationen. von einer Schleife) continue (Zurück zum Anfang z. 50 . Klammern. die in all den Positionen eine 1 enthält. wenn der Ausdruck falsch ist. dass Relationen elementweise wirkende Operationen sind.0 9 Ablaufkontrolle MATLAB hat folgende Kontroll-Anweisungen if switch while for break (Verzweigung) (Mehrfachverzweigung) (Bedingungs-Schleife) (Zähler-Schleife) (Ausstieg eines Kontrollblocks z. Die optionalen Schlüsselwörter elseif und else bieten einen alternativen Block von Anweisungen an. Kapitel „Operatoren“): Relationen: < <= > >= == ~= kleiner kleiner/gleich größer größer/gleich gleich ungleich Von der Notation in anderen Programmiersprachen weicht eigentlich nur das ungleich-Zeichen ab. also einen Wert ungleich 0 ergibt. Die Anweisungsblöcke werden von je einem dieser vier Schlüsselwörter getrennt. werden in MATLAB nicht benötigt. Bei einem Vergleich. die dem Vergleich standhalten.B. MATLAB stellt hier folgende Operatoren zur Verfügung (vgl. wenn der Ausdruck „wahr“ ist. 9. in denen die Elemente von A und B übereinstimmen. wird der folgende Code niemals eine Fehlermeldung produzieren. Dies ist zwar syntaktisch richtiger MATLAB-Code und arbeitet auch wie erwartet. n gerade aber nicht durch 4 teilbar und n gerade und durch 4 teilbar. Im Allgemeinfall wird diejenige Anweisung abgearbeitet.1 (Beispiel_elseif_else) In diesem Beispiel schließen sich alle drei Fälle gegenseitig aus. Übrigens: Falls A und B nicht dasselbe Format haben. ob A und B komplett gleich sind oder nicht. Das Ergebnis von A==B ist eine Matrix aus Nullen und Einsen. if A > B. . Sie liefert einen skalaren Wert.2 (Beispiel_isequal) 'Nanu?' 51 . Wenn A und B Skalare sind.. verwenden Sie vielleicht if A==B.. 'nur durch 2 teilbar'. die der ersten wahren Aussage in der if-else-Kette folgt.. 1 oder 0. Es folgt ein weiteres Beispiel. A < B oder A == B jemals für alle Elemente zugleich wahr sein. ob A und B übereinstimmen! Es wird lediglich festgestellt. 'A > B' 'A < B' 'ungerade'. aber wenn A und B Matrizen sind. Die Einsen stehen in denjenigen Positionen. wie relationale Operatoren und die if-Anweisungen mit Matrizen wirken.B). 'durch 4 teilbar'. elseif A == B. Aber für die meisten Matrizenpaare wird keine der Bedingungen A > B.4) ~= 0.. deshalb wird praktisch immer eine Fehlermeldung ausgegeben. 'A = B' else end Beispiel 9. elseif rem(n.MATLAB V3. Es ist wichtig zu verstehen. .2) ~= 0. wenn A und B Skalare sind. um diese Angelegenheit zu verdeutlichen.0 MATLABs Algorithmus zum Erzeugen von magischen Quadraten der Ordnung n beinhaltet drei verschiedene Fälle: n ungerade. Dies wird beschrieben durch if rem(n. kann man damit nicht testen. wird der Ausdruck A == B sogar als Fehler betrachtet! Der richtige Weg um 2 Felder auf Gleichheit zu überprüfen ist die Verwendung der Funktion isequal : if isequal(A. Falls Sie 2 Variablen auf Gleichheit überprüfen wollen. elseif A < B. je nachdem. else end Beispiel 9. in welchen Positionen ihre Elemente übereinstimmen. Aufgrund der numerischen Rechenverfahren von MATLAB treten stets Rundungsfehler auf.B. Nur die Anweisungen nach dem ersten passenden case werden ausgeführt. Die Bedingung zur Konstruktion des magischen Quadrats kann mit switch folgendermaßen beschrieben werden: switch (rem(n.2. 52 .3 (Beispiel_switch_case) Hinweis für C-Programmierer Anders als in der Programmiersprache C benötigt die switch .4) == 0) + (rem(n. Abhilfe ist hier zu erreichen.2 switch und case Der switch Befehl führt Befehlsgruppen abhängig von den Werten einer Variablen oder eines Ausdrucks aus. die Augenscheinlich gleiche Matrizen in den letzten Kommastellen doch unterschiedlich machen. tol = 0.B. all(all(A < (B + tol))) && all(all(A > (B .2) == 0) case 0 'ungerade' case 1 'nur durch 2 teilbar' case 2 'durch 4 teilbar' otherwise 'das gibt''s nicht' end Beispiel 9. Die Schlüsselwörter case und otherwise begrenzen diese Blöcke.MATLAB V3. isequal isempty sowie all und any. indem man z. abfragt.0 Achtung: Auch der vergleich von Matrizen mit isequal ist mit Vorsicht zu genießen. (Gleichheit) (leere Matrix) 9. ob sich die Beträge der einzelnen Elemente nicht um mehr als einen vorgegeben Toleranzwert unterscheiden. Der switch-Block wird nach der Abarbeitung der Befehle und vor der nächsten case -Anweisung verlassen.tol))) Einige MATLAB-Funktionen sind hilfreich. Beispiele hierfür sind z. Ein switch muß immer mit einem end abgeschlossen werden.Anweisung kein break. um das Ergebnis der Matrixvergleiche auf Skalare zu reduzieren um sie in if–Anweisungen verwenden zu können. 7.B. aus 2 geschachtelten Schleifen for i=1:7 for j=1:7 H(i. Es ist sinnvoll. Jetzt gilt eben nicht mehr i = j = −1 . for n=3:32 r(n) = rank(magic(n)). 15:21. H=reshape(n.MATLAB V3. 29:35.B. end. Ein Kästchen H mit Lottozahlen entsteht z. end end Beispiel 9. Zweitens sind Schleifen in der Regel durch die viel schnelleren Vektor. weil sie durch die Laufvariablen der beiden Schleifen überschrieben wurden. oder auch n=1:7. for m=1:7. bis die vorgegebene Anzahl an Durchläufen erreicht ist.3 for-Schleifen Die for-Schleife durchläuft eine Gruppe von Anweisungen.4 (Beispiel_for_schleife) Der Strichpunkt hinter dem Befehl in der Schleife verhindert die Ausgabe und das r nach der Schleife gibt das endgültige Ergebnis aus. end beendet den Anweisungsblock.0 9. (m-1)*7 + (1:7)]. da auf zwei Dinge Acht gegeben werden muss. for m=n. 22:28. 53 . sondern i = j = 7 . j nicht mehr verwenden.j) = (i-1)*7+j. Schleifen aus Gründen der Übersichtlichkeit einzurücken. H(m. 7)' Dieser Befehl wandelt einen Vektor in eine Matrix mit vorgegebenem Format um. 36:42. H=[H. 8:14. besonders wenn sie geschachtelt sind.:)=n+(m-1)*7. aber sicherlich am einfachsten ist es durch den folgenden Befehl n=1:49. end. Erstens muss die Anzahl der Vektorelemente zu den angegebenen Matrixformat passen und zweitens muss für dieses Beispiel das Ergebnis von reshape auch noch transponiert werden. Hier ist allerdings Vorsicht geboten.5 (Beispiel_for_schleife_2) So sollte man das aber keinesfalls programmieren! Erstens können Sie nach Ablauf dieser Schleifen die komplexe Einheit i bzw.und MatrixOperationen ersetzbar. 43:49] eine einfache Schleife H=[]. H=[1:7. end r Beispiel 9. Alternative Anweisungen zur Erzeugung des Lotto-Kästchens H wären z. um wirklich die Gewünschte Matrix zu erhalten. 0 Eine for-Schleife kann aber nicht nur geordnete Zahlenfolgen bzw. Vektorelemente durchlaufen. fx = x^3-2*x-5.6]. folgendes Beispiel: n = [1.6 (Beispiel_for_schleife_3) 9. Sie führt leicht zu Fehlern. Die Einträge können hierbei natürlich beliebige Zahlen sein. a = x.09455148154233 Beispiel 9. müssen also nicht aufsteigende ganze Zahlen sein. end sum ergibt sum = 4 Beispiel 9. a = 0. das while. wie schon zuvor bei der if-Anweisung diskutiert wurde. fb = Inf.7 (Beispiel_while_schleife) Beachten Sie auch bei der Laufbedingung von while-Schleifen die elementweise Wirkung von Vergleichsoperationen zwischen Feldern. end end x ergibt x = 2. 0. if.2.4 while-Schleifen Die while-Schleife wiederholt einen Anweisungsblock beliebig oft. fb = fx. um eine Nullstelle des Polynoms x3 − 2 x − 5 zu finden. Vgl.9. for m = n sum = sum+m. solange bis eine logische Abbruchbestimmung erfüllt ist. Es benutzt die Intervallschachtelungsmethode. else b = x. fa = -Inf. else und end veranschaulicht. 1. 54 . sum = 0. if sign(fx) == sign(fa). fa = fx. end legt das Ende des Anweisungsblocks fest.3. b = 3. while b-a > eps*b x = (a+b)/2.MATLAB V3. 0. Im Endeffekt läuft die Schleife die einzelnen Elemente eines Zeilenvektors durch. Es folgt ein komplettes Programm. fa = fx. fx = x^3-2*x-5. hier break zu benutzen? a = 0. b = 3.8 (Beispiel_break) 9.5 break Die break-Anweisung erlaubt ein vorzeitiges Verlassen einer for. verlässt break nur die innerste Schleife. Warum ist es sinnvoll. fa = -Inf.Schleife. Zur Verdeutlichung nochmals unser obiges Beispiel. end end x Beispiel 9. fb = fx. Zum Beispiel erzeugt man A 4 durch folgende Befehle: 55 .1 (loesung_22) 2. Somit gilt: A 1 = [2] ⎡ 2 − 1⎤ A2 = ⎢ ⎥ ⎣− 1 2 ⎦ ⎡ 2 −1 0 ⎤ A 3 = ⎢− 1 2 − 1⎥ ⎢ ⎥ ⎢ 0 −1 2 ⎥ ⎣ ⎦ Diese Matrizen lassen sich in MATLAB einfach erzeugen. break elseif sign(fx) == sign(fa) a = x.MATLAB V3. Wir betrachten n x n-Matrizen A n mit 2 auf der Diagonalen und –1 auf der oberen und unteren Nebendiagonale. while b-a > eps*b x = (a+b)/2.► Übungsaufgaben Man stelle fest. else b = x. fb = Inf. if fx == 0.oder while . In geschachtelten Schleifen. Die übrigen Matrixeinträge von A n sind alle 0.0 9. ob folgende Vektoren linear abhängig oder linear unabhängig sind! ⎡5 ⎤ a=⎢ ⎥ ⎣ 2⎦ ⎡10⎤ b=⎢ ⎥ ⎣4⎦ ⎡− 15⎤ c=⎢ ⎥ ⎣−6⎦ Lösung 9.6 1. 1 .3⎥ ⎥ ⎢ ⎢. 50 x1 x1 − x2 − 100 x 2 2 x2 + 2 x3 + 50 x3 = 149 = − 101 = − 98 Vergleichen Sie die Anzahl der notwendigen Iterationen bis die Näherungslösung nur noch um maximal 0. Bestimmte dynamische Systeme können durch Untersuchung der Potenzen von Matrizen studiert werden. ⎡.2 .6 ..16) passiert. Versuchen Sie herauszufinden was bei den Matrizen A und B besonders ist. Untersuchen Sie große Potenzen anderer Matrizen dieses Typs und stellen Sie eine Vermutung für solche Matrizen auf.n-2)]).001 abweicht.6 .B. k = 2.6 die Determinante von A n .3 (loesung_26) ⎡ 0 .3⎤ B = ⎢..zeros(1.3.3 .-1.5.. Lösen Sie das folgende Gleichungssystem mit dem Gauß-Jacobi-Verfahren und mit dem Gauß-Seidel-Verfahren mit x (0) = 0 . Bestimmen Sie was mit A k und B k bei steigendem k (z.5 (loesung_28) 56 .4⎥ ⎦ ⎣ 4.4 ..3 .2 (loesung_24) 3. 5 x1 x1 − 2 x1 − x2 − 6 x2 + x2 − 2 x3 + 3 x3 + 4 x3 = 2 = −2 = 3 Lösung 9.2 . daß die Rekursionsgleichung det( A n +1 ) = 2 det( A n ) − det( A n −1 ) für n ≥ 3 gilt.2 . Berechnen Sie für n = 2. Lösen Sie das folgende Gleichungssystem mit dem Gauß-Jacobi-Verfahren und mit dem Gauß-Seidel-Verfahren.3⎥ ⎥ ⎢ ⎢. >> A=toeplitz([2. Welche Berechnungsformel vermuten sie für det( A n ) ? Zeigen Sie.9 . Lösung 9.MATLAB V3. Lösung 9.2 . Vergleichen Sie die Ergebnisse nach 10 Schritten.4.4 (loesung_27) 5.0 >> n=4.3⎤ A = ⎢.4⎥ ⎦ ⎣ Lösung 9. erzeugt plot(y) einen stückweisen linearen Graphen der Elemente von y über dem Index der Elemente von y.y) einen Graphen aus y-Werten über der x-Achse.8 0.8 -1 0 1 2 3 4 5 6 7 Beispiel 10. Diese hängen von den eingegebenen Argumenten ab.y) und erhalten die Graphik 1 0. plot(t.4 -0. Falls Sie zwei Vektoren x. da dem jeweils n-ten Element des ersten Vektors auch das n-te Element des zweiten Vektors zugewiesen wird. dass jeder Vektor auch gleich viele Elemente beinhaltet.6 0. die man auch beschriften und drucken kann.B. geben Sie z. 10.1 Erstellen eines Plots Die Funktion plot hat verschiedene Formen.MATLAB V3.1 (Beispiel_plot) Bei der Übergabe von zwei Vektoren muss aber immer darauf geachtet werden. Um die Werte der Sinusfunktion von 0 bis 2π darzustellen.6 -0.0 10 Graphiken MATLAB hat besondere Fähigkeiten. y = sin(t).2 -0.4 0. Vektoren und Matrizen als Graphen darzustellen. ein t = 0:pi/100:2*pi. 57 .y als Argumente angeben.2 0 -0. Dieser Abschnitt zeigt eine der wichtigsten graphischen Funktionen und Beispiele für typische Anwendungen. Wenn y ein Vektor ist. erzeugt plot(x. gepunktet (:).8 0. * und x.0 Mehrere xy-Paare in einem einzigen Aufruf von plot erzeugen gleich mehrere Graphen. Die am häufigsten verwendeten Plotsymbole sind +. w oder k angeben.2 (Beispiel_plot_2) Es ist möglich Farben. blue (blau). color_style_marker) color_style_marker ist eine Funktion mit eins. b. m. jeder Graph erhält eine andere Farbe: t = 0:pi/100:2*pi. Beispiel: die Darstellung von 3 verschobenen Sinuskurven.t. es gibt aber eine ganze Reihe weiterer (siehe help plot).6 0.8 -1 0 1 2 3 4 5 6 7 Beispiel 10. y3 = sin(t-. o. y2 = sin(t-. y = sin(t). Linien und Plotsymbole festzulegen: plot(x. Linientyp und Plotsymbol: Als Farben kann man c.4 -0.2 0 -0.6 -0. y.y. red (rot). r. g.y.-) und außerdem none für keine Linie.4 0.y2. white (weiß). magenta (violett). zwei oder drei Argumenten.y3) 1 0. um die Unterscheidung zwischen den verschiedenen Graphen zu erleichtern.t.25).MATLAB V3.5). MATLAB verwendet automatisch eine vordefinierte (aber auch vom Benutzer änderbare) Farbliste. green (gruen). gestrichpunktet(. gestrichelt (--). gleichbedeutend mit cyan (hellblau). plot(t. und black (schwarz). yellow (gelb). Linientypen sind durchgezogen (-). 58 .2 -0. Die Übergabeparameter sind Farbe. a = 1:10. geben Sie figure ein. falls noch kein Bildfenster vorhanden ist. Teile zu einer bereits vorhandenen Graphik hinzuzufügen. Falls ein Bildfenster existiert. b = 10:-1:1.3 (Beispiel_figure) 10. Um ein neues Fenster zu öffnen und es zur aktuellen Graphikausgabe zu verwenden. figure(1) plot(a) figure(2) plot(b) Ergibt die folgenden zwei Graphen Beispiel 10. dann zeichnet MATLAB nur die Datenpunkte.MATLAB Der Beispielaufruf: V3. 'r:+') erzeugt einen roten gepunkteten Graphen und markiert jeden Datenpunkt mit einem Pluszeichen als Plotsymbol. Wenn das Plotsymbol festgelegt wird.y. wobei n die Nummer in der Titelleiste des Bildfensters ist.2 Bildfenster Die plot-Funktion öffnet automatisch ein neues Bildfenster. Um ein vorhandenes Bildfenster als aktuelle Abbildung zu definieren. geben Sie figure(n) ein. Die Ausgabe der darauf folgenden graphischen Kommandos erfolgt in diesem Fenster. Bei der Eingabe von 59 .0 plot (x. aber kein Linientyp. verwendet Plot dieses Fenster als Standard.3 Graphiken erweitern Das hold-Kommando ermöglicht es. 10. 'k') hold on pcolor(x.4) 60 . [x.0 hold on fügt MATLAB die Bild-Daten zur aktuellen Graphik hinzu.y.B. subplot(2. mehrere komplette Graphiken in einem Fenster anzuordnen (und sie evtl. gemeinsam auf einem Blatt Papier auszudrucken).4 (Beispiel_graph_erw) Das hold on Kommando bewirkt also. (Der shading-Befehl sorgt übrigens für eine stufenlose Schattierung zwischen den Rasterpunkten der Graphik).MATLAB V3. schon etwas fortgeschritteneren Beispiel werden zuerst Höhenlinien einer vorgegebenen Funktion peaks von 2 Variablen gezeichnet (contour) und anschließend wird eine Darstellung derselben Funktion mit Falschfarben darübergelegt (pcolor).20. contour(x.z. dass der pcolor-Plot mit dem contour -Plot in einem Bild kombiniert wird. Geben Sie z. ohne bereits vorhandene Bestandteile dieser Graphik zu löschen.z) shading interp Beispiel 10. y.3.y. 10. z] = peaks. Das Übereinanderlegen wird durch ein zwischengeschaltetes hold on ermöglicht. Im folgenden.4 Teilbilder Die subplot-Funktion erlaubt es Ihnen. Unser Teilbild steht also am Anfang der zweiten Zeile. Das folgende Beispiel soll die Verwendung von 2x2 Teilbildern veranschaulichen.Z) Beispiel 10.3). Die Teilbilder sind zeilenweise durchnummeriert.2.Z] = cylinder(4*cos(t)).2. so wird das aktuelle Bildfenster in eine 2x3-Matrix aus 6 gleich großen Teilbildern zerlegt und darin das 4.5 (Beispiel_subplot) Zwischen den subplot-Befehlen beziehen sich die jeweiligen Plotbefehle auf den darüber festgesetzten Subplot. mesh(X. Ausnahme: Wenn plot als einziges Argument einen Vektor mit komplexwertigen Komponenten erhält. In diesem besonderen Fall.1) mesh(X) subplot(2. subplot-.und plotBefehle beliebig schachteln. mesh(Y) subplot(2. subplot(2. Teilbild als aktuelle Graphik definiert. Auf diese Weise kann man die figure-.Y.MATLAB V3. hold on. [X.5 Imaginäre und komplexe Daten Beim Plotten komplexer Zahlenwerte werden die Imaginären Anteile normalerweise ignoriert und eine Warnung im Befehlsfenster ausgegeben.2). mesh(Z) subplot(2.Y.4). 61 . t = 0:pi/10:2*pi. mesh ist ein Befehl zum Zeichnen von Gitternetzen (im Vordergrund sollte hierbei jedoch die subplotFunktionalität stehen).2.0 ein.2. 10. imag(z)) Beispiel: t = 0:pi/10:2*pi.2 0 0. nämlich 21. wie der Vektor t. der ebenso viele Komponenten hat.2 0.6 Achsenwahl Die axis-Funktion hat eine Reihe von Optionen.4 0.8 1 plot zeichnet damit ein Polygon.0 wird plot als Befehl zur Darstellung des Realteiles der Vektorkomponenten gegenüber ihrem Imaginärteil aufgefasst.6 -0. plot(exp(i*t). um die Skalierung und die Seitenverhältnisse des Plots zu variieren.4 -0.'-o') Hierin liefert die Exponentialfunktion exp(i*t) wegen des imaginären Parameters i (i = −1) komplexe Zahlenwerte. (Weil Anfangspunkt = Endpunkt sieht man im Bild nur 20 und nicht 21 Ecken).6 0. die in einem Vektor zusammengefasst werden.8 0. Die axis-Funktion kann diese automatischen Vorgaben durch Parameterwerte überschreiben: 62 .4 -0. 1 0. Also ist für einen komplexen Vektor z der Befehl plot(z) gleichbedeutend mit plot(real(z).6 -0.2 -0.4 0. dessen 20 Ecken durch kleine Kreise markiert sind.MATLAB V3.6 (Beispiel_plot_3) 10. Normalerweise bestimmt MATLAB die Maxima und Minima der Daten und wählt dann ein geeignetes Bildformat und eine passende Achsenskalierung selbständig. Beispiel 10.8 -0.8 -1 -1 -0.6 0.2 0 -0. und z-Achsen Beschriftungen hinzu.-1/3.und y-Achsen gleicher Länge und axis equal erzeugt x. axis auto setzt die Achsenskalierung auf ihren Standardwert zurück. t=-pi:pi/100:pi.MATLAB axis([xmin xmax ymin ymax]) axis akzeptiert auch eine Reihe von Schlüsselwörtern für die Achsendarstellung. Beispiel: V3. griechische Buchstaben.7 Achsenbeschriftung und Titel Die xlabel-. \pi für π und \it für kursive Schrift.'\it{Note the odd symmetry. axis([-pi pi -1 1]) xlabel('-\pi \leq {\itt} \leq \pi') ylabel('sin(t)') title('Graph of the sine function') text(1. axis square erzeugt x. plot(t.und y-Achse im gleichen Maßstab mit gleicher Skalierung. Das folgende Beispiel benutzt die TeX-Notationen \leq für <.y).0 plot(exp(i*t)) gefolgt von entweder axis square oder axis equal stellt das Oval aus dem vorangehenden Bild als Kreis dar. Eine Untermenge der Befehle des bekannten TeX-Editors erlaubt es.}') 63 .7 (Beispiel_axis_square) 10. Die title-Funktion fügt eine Beschriftung oberhalb des Graphen ein und die textFunktion fügt einen Text an einer beliebigen Stelle in der Zeichnung ein. Die Anweisung grid on führt zur Anzeige von Gitternetzlinien und grid off blendet diese wieder aus. ylabel. axis on schaltet die Achsen-Anzeige ein und axis off schaltet sie aus. mathematische Symbole und andere Schriftarten darzustellen. y= sin(t). Beispiel 10.und zlabel-Funktionen fügen zu den x-. y. 31. wenn a verändert wird.2} das charakteristische Polynom und die Eigenwerte von A.8.8 Übungsaufgaben 21 ⎤ ⎡− 6 28 ⎢ 4 − 15 − 12⎥ .2 sin(t) 0 -0. Sei A = ⎥ ⎢ ⎢− 8 a 25 ⎥ ⎦ ⎣ 31.2 -0. Lösung 10.8 0. 32. Zeichnen Sie in jedem Fall den Graph des charakteristischen Polynoms p(t) = det( A − tI ) für 0 ≤ t ≤ 3 .4 -0. Berechnen Sie für jeden Wert a aus der Menge {32. 1. 32.6 -0.4 0.0 Graph of the sine function 1 0.8 (Beispiel_label) 10.6 0.MATLAB V3. -3 -2 -1 0 -π ≤ t ≤ π 1 2 3 Beispiel 10.1.8 -1 Note the odd symmetry.1 (loesung_25) 64 . Zeichnen Sie alle Graphen in ein Koordinatensystem. Beschreiben Sie wie die Graphen die Veränderungen der Eigenwerte zeigen.9. 2 0. Machen Sie das gleiche wie im Kapitel „Ablaufkontrolle/break“. v 7 und w 7 ? Plotten Sie die Ergebnisse.7⎦ .u .u vier Vektoren o 1 2 3 ? T Rechnen Sie mit MATLAB bis zum Vektor u 7 . Berechnen Sie dann u 2 = Au 1 und schließlich u 3 = Au 2 .1]T . Das Ergebnis sei 2.5]T .3⎤ A=⎢ ⎥ u = [1.MATLAB V3. 0.2 (loesung_23) v 0 = [0.u .8 0. Was 65 .5. w 0 = [0.0] mit der Matrix ⎣0. Lösung 10.0 ⎡0. Welche Eigenschaft haben die u . aber beginnen Sie die Iteration mit dem Startvektor Wiederholen Sie schließlich den Vorgang mit dem Startvektor beobachten Sie bei den Vektoren u 7 . Multiplizieren Sie den Vektor 0 u1 . Starten Sie die gewünschten Demos und folgen sie den dort angezeigten weiteren Anweisungen. Communications Control Systems Financial Computation Frequency-Domain System Identification Fuzzy Logic Higher-Order Spectral Analysis Image Processing Linear Matrix Inequalities Model Predictive Control Mu-Analysis and Synthesis Numerical Algorithms Neural Networks Optimization Partial Differential Equations Quantitative Feedback Theory Robust Control Signal Processing Simulation (Simulink) 66 . Einige Toolboxen sind z. „Using MATLAB Graphics“ beschreibt die Verwendung von MATLAB's Graphik. enthalten folgende Handbücher „The MATLAB Installation Guide“ beschreibt wie MATLAB richtig installiert wird. Detailliertere Beschreibungen und Erklärungen.B. wie man C/C++.MATLAB V3. „Using MATLAB“ gibt einen tiefen Einblick in die Sprache. wählen sie Beispiele und Demos im Menü oder geben Sie demo ein. „MATLAB Product Family New Features“ bietet Informationen über die Unterschiede der verschiedenen Versionen und gibt Hilfestellungen beim Wechsel von einer Version zu einer anderen.0 11 Weiterführendes Material und Literatur: Um mehr MATLAB-Beispiele zu erhalten. MATLAB Toolboxen sind Sammlungen von M-Files für die unterschiedlichsten technischen Bereiche und erweitern die fachspezifischen Möglichkeiten von MATLAB.oder FortranProgramme in Interaktion mit MATLAB benutzt. „The MATLAB Application Program Interface Guide“ beschreibt. der in diesem Buch angeschnittenen Themen.und Darstellungswerkzeuge. Für die Toolboxen gibt es entsprechende Bücher. die Arbeitsumgebung und die mathematischen Möglichkeiten von MATLAB. dann gratulieren wir Ihnen. 67 .MATLAB Es gibt weitere Bücher über MATLAB von anderen Verlagen. Haben Sie es bis hierher geschafft. Viel Spaß.soft-sys. Sie haben einen ausführlichen Einstieg hinter sich und werden viel Freude mit MATLAB haben. informieren Sie sich in ihrer Buchhandlung oder holen sie sich die Broschüre „MATLAB-Based Books“ von The MathWorks oder im Internet über unsere Homepage. alles gelesen und die Übungen gemacht.MATLAB Splines Statistics Symbolic Mathematics System Identification Wavelets V3. ihr MATLAB-Team.mathworks.com Mit ihrem Internet News Leser haben Sie Zugriff auf die Newsgroup comp.0 Die neuesten Informationen über MATLAB und andere MathWorks-Produkte finden Sie auf unserer Homepage im Internet: http://www. B = ⎢1 1 0⎥ und C = ⎢4 2 8⎥ .2 Grundrechenarten 1. Lösung 12. ⎡4⎤ r ⎢ ⎥ a = ⎢ − 3⎥ ⎢ − 2⎥ ⎣ ⎦ ⎡− 7 ⎤ r ⎢ ⎥ b = ⎢ − 1⎥ ⎢2⎥ ⎣ ⎦ ⎡− 1⎤ r ⎢ ⎥ b=⎢2⎥ ⎢0⎥ ⎣ ⎦ ⎡5⎤ r ⎢ ⎥ c = ⎢3⎥ ⎢1⎥ ⎣ ⎦ b) r r r r r r r r a + 3b + x = 4( x − a) + 5a + 2( x − b ) . Mit Zuhilfenahme der MATLABHilfe oder im Zweifelsfall der Einsicht des Lösungsvorschlages.3 (loesung_52) 0 ⎤ ⎡1 2 1⎤ ⎡4 2 ⎡0⎤ ⎢− 2 0 2 ⎥ .MATLAB V3.► Man löse die folgenden Vektorgleichungen zunächst allgemein nach x auf und r berechne x für die angegebenen Werte! a) r r r r r r 2a − 3b + c − 2x = 0 . B = ⎢− 4 1 12 ⎥ und x = ⎢ 4 ⎥ berechne man die Matrix: 4. Lösung 12. Demnach sind evtl.0 12 Übungen aus verschiedenen Themenbereichen 12. auch wenn die nötigen MATLAB Grundlagen verstanden wurden. sollten aber auch diese Aufgaben zu bewältigen sein. bleibt also hier jedem selbst überlassen. für welche die zur Lösung benötigte Theorie noch nicht vollständig behandelt wurde.► Mit A = ⎥ ⎥ ⎢ ⎢ ⎢ ⎥ ⎢ 3 0 − 3⎥ ⎢ 0 12 − 17⎥ ⎢− 3⎥ ⎦ ⎦ ⎣ ⎣ ⎣ ⎦ C = x T (B + AA T ) 68 . weshalb wir sie Ihnen nicht vorenthalten möchten.1 Vorbemerkung Die folgenden Übungsaufgaben entsprechen einer Sammlung von Aufgaben aus verschiedenen Fachbereichen. In diesem Kapitel sind auch Aufgaben enthalten. Y( X + Y T ) . Lösung 12.► Es sei A = ⎢ ⎡6 5 4 ⎤ ⎡ 2 2 0⎤ ⎡ 2 2 0⎤ ⎥ . Man bestimme die Lösung ⎣3 2 1 ⎦ ⎣ ⎦ ⎣ ⎦ der Matrizengleichung: 4A + 5X + B = 3C + 3X . ⎢ 3⎥ ⎢ ⎥ ⎣ 4⎦ T Berechnen Sie. 12. Die Entscheidung.2 (loesung_51) ⎡1 ⎤ ⎢ 2⎥ 3. die Matrizen Y (2 X T − Y ) . welche Aufgaben bearbeitbar sind oder nicht.► Gegeben seien die Matrizen (Vektoren) X = ⎢ ⎥ und Y = [− 1 0 1 2] . nicht alle Aufgaben von jedem/jeder Student/in lösbar.1 (loesung_50) 2. falls möglich. Legen Sie mit !md einen Ordner C:\sterbewk auf Ihrer Festplatte an und speichern Sie die neue Tabelle im Ascii-Format für eine evtl. Erstellen Sie eine neue Tabelle.) Also gilt: Anzahl Lebende = Anzahl Lebende im Vorjahr · (1 – Sterbewahrscheinlichkeit). 60 bzw. 80-jährigen Mannes.5 (loesung_54) 6. Für die Anzahl der Lebenden eines bestimmten Alters braucht man eine Grundgesamtheit. spätere Weiterverwendung darin ab.000. 1.► Man berechne ( AB)C und A (BC) und zeige die Gültigkeit des assoziativen Gesetzes am Beispiel der Matrizen: ⎡4 − 1⎤ A=⎢ ⎥ ⎣2 3 ⎦ ⎡ 1 − 1⎤ B=⎢ ⎥ ⎣− 1 1 ⎦ ⎡ 2 − 3⎤ C=⎢ ⎥ ⎣− 1 3 ⎦ Lösung 12. Lösung 12.4 (loesung_53) V3. Berechnen Sie die mittlere Lebenserwartung eines 20.MATLAB Lösung 12.► Berechnen Sie das Produkt der Matrizen A und B 3⎤ ⎡1 2 ⎢3 1 − 2⎥ A=⎢ ⎥ ⎢5 − 1 0 ⎥ ⎦ ⎣ 3⎤ ⎡1 ⎢− 1 5 ⎥ B=⎢ ⎥ ⎢ 2 − 2⎥ ⎦ ⎣ Lösung 12. Dabei gilt: Mittlere Lebenserwartung = Summe aller zukünftigen Lebenden: Anzahl der momentan Lebenden + 0. 40. z. In der ersten Spalte steht das jeweilige Alter (von 1 bis 100) und in der zweiten und dritten Spalte steht die Wahrscheinlichkeit für Männer bzw. (Die Anzahl der Sterbenden steckt in den Sterbewahrscheinlichkeiten.000. Zeichnen Sie den Sterblichkeitsverlauf für Männer als blaue Kurve und für Frauen als rote Kurve in ein Koordinatensystem.0 5.7 (loesung_55) 69 . Frauen im Laufe des nächsten Jahres zu sterben. Die Sterbewahrscheinlichkeiten sollen als ganz zahlige Promillewerte gespeichert werden.6 (loesung_3) 7. Zeichnen Sie zunächst ein Bild bis zum Alter 60 und dann ein zweites Bild für die Alter zwischen 10 und 30 Jahren.* Die Datei sterbewk. die sich jedes Jahr um die Anzahl der Sterbenden reduziert.5.B. Lesen Sie die Daten ein und speichern Sie die Werte in drei Vektoren. Runden Sie dabei das Alter auf die nächst kleinere ganze Zahl ab. indem Sie jeweils von 10 Zeilen den Mittelwert bilden.dat enthält die Sterbewahrscheinlichkeiten für Männer und Frauen eines bestimmten Lebensalter. 87 6.01 − 1.10 (loesung_58) 11.13 (loesung_61) 70 . Berechnen Sie das Matrizenprodukt ⎡ 3.00 4. Zeigen Sie. ⎥ ⎥ ⎢ ⎢ ⎢11.89 ⎥ ⋅ ⎢1.23 7. dass B T AB .40 0.00 3.30 ⎥ . Angenommen A ist eine symmetrische n x n-Matrix und B ist eine n x m-Matrix.► Bilden Sie die Matrizenprodukte AB und BA mit den Matrizen (Überlegen Sie sich im vorhinein.27 ⎥ ⎢1.00 5.9 (loesung_57) 10. B = ⎢ ⎥ ⎢ ⎢ 0 − 2 − 3⎥ ⎢6 0 2 1 ⎥ ⎥ ⎢ ⎦ ⎣ 0 − 1⎦ ⎣6 Lösung 12. Erzeugen Sie 6x6-Matrizen A und B und überprüfen Sie: ( A + I )( A − I) = A 2 − I ( A + B)( A − B) = A 2 − B 2 ( A + B) T = A T + B T ( AB) T = A T B T Lösung 12.00 ⎤ AB = ⎢ 5. B T B und BB T auch symmetrische Matrizen sind. Zeigen Sie dass ( AB) 2 − A 2 B 2 = A(BA − AB)B gilt. A und B sind quadratische Matrizen gleicher Größe. Lösung 12.00 3.11 (loesung_59) 12. Lösung 12.MATLAB V3.12 4.37 − 9.07⎤ ⎡0.35 4.0 8.8 (loesung_56) 9.00 − 5. welches Produkt nur gemeint sein kann.): 0 1⎤ ⎡7 ⎡5 7 0 6 ⎤ ⎢− 3 6 4⎥ ⎥ A = ⎢3 − 8 4 7 ⎥ . Erzeugen Sie eine m x n-Matrix A und eine Einheitsmatrix I und zeigen Sie: Im A = A AI n = A Lösung 12. Lösung 12.12 (loesung_60) 13. Wann ist ( AB) 2 = A 2 B 2 .09⎥ ⎦ ⎦ ⎣ ⎣ Berechnen Sie auch 3A 2 B + 5B 3 − 7BA . dann ist A = 0 Lösung 12.16 (loesung_64) 12. A+B =B+A AB = BA ( A + B) 2 = A 2 + 2AB + B 2 ( AB) 2 = A 2 B 2 A (B + C) = AB + AC ( A + B )C = CA + CB Falls AB = 0 ist.. ⎡ 16 A = ⎢ 12 ⎢ ⎢ 13 ⎣ 1 1 1 2 4 4 ⎤ 1 ⎥ 4 ⎥ 5 ⎥ 12 ⎦ 1 3 Lösung 12. um die falschen herauszufinden und durch Beispiele zu belegen. Was ist det( − A ) det( A 2 ) det( 2 A ) det(( 1 A ) 3 ) ? 3 Lösung 12.15 (loesung_63) 16.MATLAB V3.17 (loesung_76) 71 .3 Determinanten 17. Benutzen Sie MATLAB. Die nachfolgenden Matrix-Gleichungen sind nicht alle richtig. ⎡0 ⎢0 ⎢ S = ⎢0 ⎢ ⎢0 ⎢0 ⎣ 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0⎤ 0⎥ ⎥ 0⎥ ⎥ 1⎥ 0⎥ ⎦ Lösung 12. A 20 und A 30 berechnen.6.. dann ist A = 0 oder B = 0 Falls A 2 = 0 ist. Berechnen Sie S k für k = 2.. Angenommen A ist eine 3x3-Matrix mit det( A ) = 5 . wenn Sie A 10 . Beschreiben Sie was passiert.14 (loesung_62) 15..0 14. 9 ⋅ 10 −6 Sekunden für eine Multiplikation.► Berechnen Sie die folgende Determinante: ⎡0 ⎢1 ⎢ ⎢1 ⎢ 1 det ⎢ ⎢1 ⎢ ⎢1 ⎢1 ⎢ ⎢1 ⎣ 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1⎤ 1⎥ ⎥ 1⎥ ⎥ 1⎥ 1⎥ ⎥ 1⎥ 1⎥ ⎥ 0⎥ ⎦ Lösung 12. Berechnen Sie det( A T A) und det(AA T ) für mehrere 4x5-Zufallsmatrizen und mehrere 5x6-Zufallsmatrizen. ⎡2 ⎢5 ⎢ det ⎢2 ⎢ ⎢2 ⎢7 ⎣ 0 3 5 0 8 6 2 7 9 4 0 2 5 2 2 4⎤ 7⎥ ⎥ 5⎥ ⎥ 7⎥ 1⎥ ⎦ Lösung 12. 20927. 78421 sind durch 17 teilbar. Was kann man über A T A und AA T sagen. Überprüfen Sie wie lange MATLAB braucht. Berechnen Sie die Determinanten der folgenden Matrizen V3.0 ⎡3 ⎢5 ⎢ A=⎢ 1 ⎢ ⎢− 2 ⎢7 ⎣ −2 1 −4 2 −6 3 2 −1 −7 3 6 0⎤ 11 1 ⎥ ⎥ 10 4 ⎥ ⎥ −5 3 ⎥ 16 − 2⎥ ⎦ ⎡ 2 −3 1 −2 4 ⎤ ⎢ − 4 6 − 2 5 − 6⎥ ⎥ ⎢ B = ⎢ 6 − 9 3 − 4 10 ⎥ ⎥ ⎢ 2 − 3⎥ ⎢ 2 −4 3 ⎢− 2 5 − 3 2 − 1⎥ ⎦ ⎣ Lösung 12. wenn A mehr Spalten als Zeilen hat? Lösung 12. um die Determinante einer 50x50-Matrix zu berechnen. Lösung 12.22 (loesung_81) 72 . dass der Wert der nebenstehenden Determinante ebenfalls durch 17 teilbar ist.19 (loesung_78) 20. 25755.► Die Zahlen 20604. Man zeige.21 (loesung_80) 22.18 (loesung_77) 19. 53227. Ein älterer Computer braucht 2.MATLAB 18. Wie viele Gleitpunktoperationen waren dazu notwendig? Allgemein braucht man für die 3 2 5 2 1 Berechnung der Determinante einer n x n-Matrix 3 ⋅ n − 2 ⋅ n + 6 ⋅ n −1 Gleitpunktoperationen.20 (loesung_79) 21. 25 (loesung_84) 26. det(2 A) und det(10 A ) . 23.MATLAB V3. -12. Lösung 12.► Gegeben seien die Matrizen ⎡1 0 − 5⎤ B = ⎢7 3 4 ⎥ ⎡3 17⎤ ⎥ ⎢ A=⎢ ⎢0 2 11 ⎥ 5 2 ⎥ und ⎦. 6. ⎣ ⎣ ⎦ Zeigen Sie. Verschlüsseln Sie die folgenden Nachrichten: ANGRIFF BEI SONNENUNTERGANG PARTY UM MITTERNACHT Entschlüsseln Sie die folgenden Nachrichten: 117.26 (loesung_85) 27. -5.► Berechnen Sie mit inv und rref die Inversen der folgenden Matrizen ⎡1 0 0⎤ A = ⎢1 − 1 0⎥ ⎥ ⎢ ⎢1 − 2 1⎥ ⎦ ⎣ ⎡5 7 3 ⎤ B = ⎢7 11 2⎥ ⎥ ⎢ ⎢3 2 6⎥ ⎦ ⎣ ⎡ 2 −1 0 ⎤ C = ⎢− 1 2 − 1⎥ ⎥ ⎢ ⎢ 0 −1 2 ⎥ ⎦ ⎣ Lösung 12. -11. Lösung 12. 32.24 (loesung_83) 12. Um eine Nachricht zu verschlüsseln werden die Buchstaben von A bis Z durch die Zahlen von 1 bis 26 ersetzt.4 Inverse 25. -9 73 .23 (loesung_82) 24. Erzeugen Sie zwei 8x8-Zufallsmatrizen A und B mit ganzzahligen Einträgen zwischen –9 und 9.0 23. Lösung 12. 87. det(− A). 5. Ein Leerzeichen entspricht der Null. Dann werden die Zahlenfolgen in Dreierblöcke zerteilt und die Verschlüsselung erfolgt durch Multiplikation jedes Blocks mit der folgenden Matrix: ⎡− 3 5 6 ⎤ A = ⎢−1 2 2 ⎥ ⎥ ⎢ ⎢ 1 − 1 − 1⎥ ⎦ ⎣ Der Empfänger erhält dann eine Zahlenfolge die er mit der Inversen der Matrix A wieder entschlüsseln kann. dass für jede (quadratische) Matrix gilt: det(kA) = k n det( A) . dass die Matrizen invertierbar sind und bestimmen Sie ihre Inverse. 44. Zeigen Sie. 7. 55. 32. 76. Stimmt die Aussage: det( Α + B ) = det( A ) + det( B) ? Stimmt die Aussage: det( AB ) = det( A ) ⋅ det( B ) Vergleichen Sie det(A ) mit: det( A T ). 70 11.20 5. -9.27 (loesung_86) 28.89 18. 27.31 ⎤ ⎡ 2. -13 Lösung 12.31 (loesung_90) 32.36 7. 13. Beschreiben Sie das Ergebnis. Berechnen Sie AA −1 .12 3.30 (loesung_89) A n ist eine n x n-Matrix mit Nullen auf der Hauptdiagonalen und sonst Einsen. Berechnen Sie die Inversen der Matrizen und berechnen Sie jeweils AA −1 und A −1 A . 36. 119. − Berechnen Sie A n1 für n = 4. Lösung 12.35 4.30 14.00 − 5. 31. Berechnen Sie mit einen Befehl zur Inversenberechnung die Inverse einer 8x8 oder größeren Hilbert-Matrix A .17 ⎢− 4. 44. 67. 31.87 0.15 9.29 (loesung_88) 30. 4. -5. Ist die Matrix M invertierbar? ⎡1 ⎢1 2 B = ⎢1 ⎢3 ⎢1 ⎣4 1 2 1 3 1 4 1 5 1 3 1 4 1 5 1 6 1 4 1 5 1 6 1 7 ⎤ ⎥ ⎥ ⎥ ⎥ ⎦ ⎡5 4 ⎢7 6 ⎢ M = ⎢8 6 ⎢ ⎢9 −8 ⎢10 8 ⎣ 3 6 5 9 4 10 9 −5 7 −9 3⎤ 5⎥ ⎥ 4⎥ ⎥ 8⎥ 7⎥ ⎦ Lösung 12. In MATLAB gibt es einen Befehl zum erzeugen von Hilbert-Matrizen in beliebiger Größe.00⎥ ⎥ ⎢ ⎣ 11.MATLAB 87.28 (loesung_87) 29. 5 und 6 und stellen Sie eine Vermutung für die allgemeine Form − von A n1 für größere Werte von n auf.0 3 4⎤ ⎡1 2 ⎢1 2 − 3 − 4⎥ ⎥ A=⎢ ⎢1 − 2 3 − 4⎥ ⎥ ⎢ ⎣1 − 2 − 3 4 ⎦ Lösung 12. Bestimmen Sie die Inverse der folgenden Matrix V3. (Die Elemente der Matrix berechnen sich mit der Formel: 1/(m+n-1). m = Zeilennummer.32 (loesung_91) 74 .87 ⎥ ⎥ ⎢ A= ⎢ 5.27 8. Lösung 12. n = Spaltennummer des jeweiligen Elements). -22.75 ⎦ Lösung 12. 0 ⎡2 1 ⎤ A = ⎢0 − 1⎥ ⎥ ⎢ ⎢3 0 ⎥ ⎦ ⎣ 2⎤ ⎡3 ⎥ ⎢ ⎡ 1 3⎤ C = ⎢− 1 − 2⎥ B=⎢ ⎥ ⎢0 2⎥ ⎦ ⎣ ⎣− 1 5⎦ D = [1 2] Führen Sie in MATLAB die folgenden Operationen durch.MATLAB 33. Lösung 12. Vergleichen Sie mit den Kommandos tic und toc die benötigten Zeiten für das Lösen eines linearen Gleichungssystems einmal mit A \ b und zum anderen mit inv ( A ) * b .► Bestimmen Sie die Determinante und die Adjunkte von A = 2 3 4 .5 Adjunkte und Cramersche Regel ⎡1 2 3 ⎤ ⎥ ⎢ 36. ⎣ −1 In welcher Beziehung stehen det( A ) und det( A ) allgemein? Lösung 12.33 (loesung_92) 34. Wählen Sie dazu eine Zufallsmatrix A der Größe n=200 und n=500 sowie eine entsprechende Seite b.► Gegeben sind die folgenden Matrizen V3.36 (loesung_95) 75 .35 (loesung_94) 12. ⎥ ⎢ ⎢1 5 7 ⎥ ⎦ ⎣ Lösung 12.34 (loesung_93) 35. falls sie definiert sind (vorher überlegen!): DB 2 BC T (CB)D T AC T (ACT ) −1 det(B ) det( AC T ) (C T A ) −1 Lösung 12. dass für die Matrix ⎡ 1 −3 4 ⎤ A = ⎢ − 2 8 − 6⎥ ⎥ ⎢ −1 ⎢ 3 − 5 15 ⎥ ⎦ gilt: det( A ) ⋅ det( A ) = 1 .► Zeigen Sie. MATLAB 37. V3.0 Ermitteln Sie nur unter Verwendung von Determinanten die Inverse der Matrix 3 1.1⎤ ⎡2 ⎢ 1 1.1 0.9⎥ A=⎢ ⎥ ⎢0.9 1 0.8⎥ ⎦ ⎣ Lösung 12.37 (loesung_96) 38. Berechnen Sie die Inverse der folgenden Matrix mit Hilfe der Adjunkten. 2 − 1⎤ ⎡1 0 ⎢3 − 2 6 4⎥ ⎥ ⎢ A= ⎢2 2 − 5 6 ⎥ ⎥ ⎢ 3 0⎦ ⎣5 4 Lösung 12.38 (loesung_97) 39. Berechnen Sie die Inverse einer 4x4-Zufallsmatrix A mit Hilfe von Unterdeterminanten. Berechnen Sie danach die Inverse mit dem Befehl inv ( A ) . Vergleichen Sie die beiden Ergebnisse und vergleichen sie die Zeit, die MATLAB braucht, um die Inverse mit den beiden unterschiedlichen Wegen zu berechnen. Berechnen Sie die Anzahl der Gleitpunktoperationen bei der Berechnung der Inversen einer 30x30-Zufallsmatrix. Vergleichen Sie die beiden Berechnungsmöglichkeiten von oben. Für eine n x n-Matrix gelten dabei folgende Formeln: Zur Berechnung der Determinante 2 braucht man 3 Gleitpunktoperationen. 2 ⋅ n3 − 1 ⋅ n2 + 5 ⋅ n − 1 6 und bei der Berechnung der Inversen 8 3 ⋅ n3 − 1 ⋅ n2 − 1 ⋅ n 2 6 Lösung 12.39 (loesung_98) 40.► Lösen Sie das lineare Gleichungssystem nach der Cramer`schen Regel 19 x1 7 x1 11x1 41. + 34 x 2 + 11x 2 + 20 x 2 + 45 x3 + 13 x3 + 30 x3 = 177 = 54 = 108 Lösung 12.40 (loesung_99) Berechnen Sie x mit der Cramer`schen Regel ⎡1 ⎢− 1 ⎢ ⎢2 ⎢ ⎣1 1 1 1 3 2 0 1 1 1⎤ ⎡1⎤ ⎢0 ⎥ ⎥ 1⎥ ⋅x = ⎢ ⎥ ⎢1⎥ 0⎥ ⎢ ⎥ ⎥ 0⎦ ⎣0 ⎦ Lösung 12.41 (loesung_100) 42. Testen Sie die Cramer`sche Regel für eine 4x4-Zufallsmatrix A und einen 4x1Zufallsvektor b . Berechnen Sie die Lösung von Ax = b und vergleichen Sie sie mit der Lösung von A −1 b . Lösung 12.42 (loesung_101) 76 MATLAB V3.0 12.6 Unabhängigkeit, Rang 43.► Gegeben seien die Vektoren ⎡1 ⎤ a = ⎢ 2⎥ , ⎢ ⎥ ⎢1 ⎥ ⎣ ⎦ a, b ⎡ 2⎤ b = ⎢ 4⎥ , ⎢ ⎥ ⎢0 ⎥ ⎣ ⎦ a, b, c ⎡1 ⎤ c = ⎢ 2⎥ , ⎢ ⎥ ⎢ 3⎥ ⎣ ⎦ a, b, d ⎡1⎤ d = ⎢1⎥ ⎢ ⎥ ⎢0 ⎥ ⎣ ⎦ a, b, a a Sind die folgenden Vektorsysteme linear abhängig? a, b, c, d Lösung 12.43 (loesung_102) 44.► Kann der Vektor x durch eine Linearkombination der Vektoren v 1 , v 2 und v 3 dargestellt werden? ⎡ − 6⎤ ⎢4⎥ v1 = ⎢ ⎥ ⎢ − 9⎥ ⎢ ⎥ ⎣4⎦ 45. ⎡8⎤ ⎢− 3⎥ v2 = ⎢ ⎥ ⎢7⎥ ⎢ ⎥ ⎣− 3⎦ ⎡ − 9⎤ ⎢5⎥ v3 = ⎢ ⎥ ⎢ − 8⎥ ⎢ ⎥ ⎣3⎦ ⎡4⎤ ⎢7⎥ x=⎢ ⎥ ⎢ − 8⎥ ⎢ ⎥ ⎣3⎦ Lösung 12.44 (loesung_103) Überprüfen Sie die Spaltenvektoren der Matrizen A und B auf lineare Unabhängigkeit. 4 − 1 6 − 1⎤ ⎡8 ⎢9 5 −4 8 4⎥ ⎥ ⎢ A = ⎢ − 3 1 − 9 4 11 ⎥ ⎥ ⎢ ⎢− 6 − 4 6 − 7 − 8 ⎥ ⎢0 4 − 7 10 − 7⎥ ⎦ ⎣ Lösung 12.45 (loesung_104) ⎡ − 8 8 − 8 1 − 9⎤ ⎢ 7 −7 7 4 3⎥ ⎥ ⎢ B = ⎢ 6 −9 4 9 − 4⎥ ⎥ ⎢ 6 − 1⎥ ⎢ 5 −5 5 ⎢− 7 7 − 7 − 7 0 ⎥ ⎦ ⎣ Bilden die Vektoren jeweils eine Basis des ℜ 5 ? ⎡1 ⎢2 ⎢ 46.► Bestimmen Sie den Rang der Matrix A = ⎢1 ⎢ ⎢5 ⎢3 ⎣ Lösung 12.46 (loesung_105) 2 3 3 6 4 3 1 3 5 4 4 4⎤ 5 − 5⎥ ⎥ 7 2 ⎥. ⎥ 8 − 2⎥ 6 1 ⎥ ⎦ 47. Zeigen Sie, dass der Rang eines Matrizenproduktes den Rang der einzelnen Faktoren nicht übersteigen kann. B ist eine n x m-Matrix, dann ist rang ( AB ) ≤ rang ( A ) rang ( AB ) ≤ rang (B) Lösung 12.47 (loesung_106) 77 MATLAB 48. Zeigen Sie, dass wenn P eine invertierbare m x m-Matrix ist, dann ist V3.0 rang ( PA ) = rang ( A ) rang ( AP ) = rang ( A ) Lösung 12.48 (loesung_107) 12.7 Gleichungssysteme 49.► Finden Sie die allgemeine Lösung des folgenden linearen Gleichungssystems. Verwenden Sie die MATLAB-Funktion rref. − 3x1 2 x1 − 9 x2 + 9 x2 + 6 x3 + x3 = 15 = − 16 Lösung 12.49 (loesung_108) ⎡1 1 0⎤ ⎥ ⎢ 50.► a) Zeigen Sie, daß die folgende Matrix singulär ist: A = 1 2 1 . ⎥ ⎢ ⎢1 3 2⎥ ⎦ ⎣ b) Es sei b = [2 4 6]T . Wie viele Lösungen hat das System Ax = b ? Lösung 12.50 (loesung_109) 51.► Lösen die folgende Reihe linearer Gleichungssysteme, mit der Koeffizientenmatrix A und verschiedenen rechten Seiten b 1 , b 2 und b 3 . ⎡1 0 ⎢2 1 A=⎢ ⎢0 0 ⎢ ⎣1 − 2 1⎤ 0⎥ ⎥ 1⎥ ⎥ 0⎦ ⎛0⎞ ⎜ ⎟ ⎜1⎟ b1 = ⎜ ⎟ −1 ⎜ ⎟ ⎜3⎟ ⎝ ⎠ ⎛ 0 ⎞ ⎜ ⎟ ⎜ 0 ⎟ b2 = ⎜ ⎟ 1 ⎜ ⎟ ⎜ − 5⎟ ⎝ ⎠ ⎛ 0 ⎞ ⎜ ⎟ ⎜ 0 ⎟ b3 = ⎜ ⎟ −3 ⎜ ⎟ ⎜ 5 ⎟ ⎝ ⎠ Lösung 12.51 (loesung_110) 52.► Prüfen Sie, ob die folgenden Gleichungssysteme lösbar sind und bestimmen Sie gegebenenfalls die Lösungsgesamtheit. 15 x1 5 x1 − 2 x2 3x 2 + 17 x3 + 7 x3 − 2 x3 − x3 + 4 x3 x3 + + 5 x3 + 9 x4 + 3x4 + 4 x5 + 2 x5 − x5 = 0 = −1 = 2 x1 − 3x1 2 x1 − 4 x1 x2 + − x2 + 8x2 − 2 x2 = 1 = 2 = 17 = 1 78 6 79 . Die nachfolgende chemische Reaktion kann in einigen industriellen Prozessen verwendet werden. der die Anzahl der Atome jedes Mangan-Molekül (Mn).0 x1 2 x1 3x1 − 4 x2 − 3x 2 − 7 x2 x2 + 2 x3 − x3 x3 + − x3 − 5x4 − 5x4 − x4 = −1 = −7 = −8 = −1 Lösung 12.54 (loesung_113) 55. Arsen-Molekül (As).► Bestimmen Sie die allgemeine Lösung der folgenden linearen Gleichungssysteme. Gleichen Sie die Reaktionsgleichung aus.52 (loesung_111) 53. MnS + As 2 Cr10 O 35 + H 2 SO 4 → HMnO 4 + AsH 3 + CrS 3 O 12 + H 2 O Stellen Sie für jede der 7 Verbindungen einen Vektor im ℜ auf.► Lösen Sie das folgende Gleichungssystem mit dem Gaußschen Verfahren und bestimmen Sie seinen Rang: x1 2 x1 x1 x1 2 x1 + x2 + 2 x2 + x2 + x2 + 2 x2 + x3 − x3 − x3 − 2 x3 + x4 + 5x4 + 2 x4 + x4 + 3x4 + x5 + x5 + 2 x5 + 3 x5 = = = = = 1 2 3 4 7 Lösung 12. wie z.MATLAB V3.B. der Produktion von Arsen. Welche der linearen Gleichungssysteme Ax = b mit Koeffizientenmatrizen A sind für beliebige rechte Seiten b lösbar? 11x1 5 x1 3x1 + 6 x2 + 4 x2 + 4 x3 − 2 x3 + 6 x3 = 1 = 3 = −9 x1 x1 2 x1 2 x1 x1 3 x1 + 2 x2 + 2 x2 + 4 x2 + 3x2 + 4 x2 + 7 x2 + 3x 2 + 4 x2 − 8x2 + 3 x3 + 4 x3 + 7 x3 + 4 x4 + 3x 4 + x4 − 2 x4 + 6 x4 + 4 x4 − = 0 = −2 = −8 − 3 x5 − 3 x5 = 5 = 5 = 10 + 4 x6 + 6 x6 − 13x6 + 3x6 = −1 = −1 = 6 = 9 x3 + − 3 x3 − 2 x3 − 2 x3 − 3 x3 + 6 x3 − x3 x1 x1 − 2 x1 − x1 x4 + 3x 4 + 7 x4 x5 + x5 + + 2 x5 + 3 x5 Lösung 12.53 (loesung_112) 54. Schwefel-Molekül (S). Chrom-Molekül (Cr). 12 Ankunft 18. dass 6 50-Pfenningstücke. Ein Weinhändler verkauft die Hälfte seines Lagervorrats an Sekt und den gesamten Weißwein an A. das sind insgesamt 80 Flaschen. Anschließend will der Weinhändler die Verkaufszahlen so genau wie möglich haben. 80 . 50 Flaschen hatte.MATLAB V3. insgesamt 70 Flaschen.59 (loesung_65) 60.0 Sauerstoff-Molekül (O) und Wasserstoff-Molekül (H) auflistet. Helfen Sie ihm.57 (loesung_116) 58. Lösung 12.5 x1 1.249 = 6. 14 Markstücke. ⎣ ⎦ ⎣2 3⎦ 4. dass er von jeder Sorte ca. bei dem die rechte Seite auf zwei Nachkommastellen gerundet wurde. Durch zwei Messungen wurde festgestellt.10 18. dass das Gewicht proportional mit dem Wert der Münzen zusammenhängt. Schreiben Sie eine Vektorgleichung. Ein Experiment führt zu folgendem Gleichungssystem: ⎡1 − 1⎤ ⎡2 1⎤ ⎥ und B = ⎢2 2 ⎥ . von N R N R über R M M N nach M N R M Abfahrt 14. die der folgenden Gleichung genügt: XA + (I − X )B = I . Dazu wird angenommen. Lösung 12.6 x1 + 3.01 14. Die andere Hälfte des Sektes und den ganzen Rotweinbestand verkauft er an B.01 18.843 Lösen sie das System und lösen Sie auch das nachfolgende System. Aus dem Fahrplan der Bundesbahn ist ersichtlich welche Zeit man zwischen den Orten Regensburg (R). 16 Zweimarkstücke und 3 Fünfer zusammen auch 120g wiegen. er weiß jedoch nur noch.12 Stunden 4 4 4 3 Berechnen Sie welche Zeit man für die Strecke von Regensburg nach München benötigt.► Gegeben sind die Matrizen A = ⎢ Bestimmen Sie die Matrix X .55 (loesung_114) 56.10 14.8 Quadratische Gleichungssysteme 59.1x 2 + 1. so daß die unbekannten Koeffizienten die Reaktion ausgleichen und finden Sie eine ganzzahlige Lösung.58 (loesung_117) 12. Nun soll das Gewicht jeder einzelnen Münze berechnet werden. Lösung 12.21 15. Lösung 12.1x 2 = 19. 8 Zweimarkstücke und 2 Fünfer zusammen 120g wiegen und dass 3 50-Pfenningstücke. 1 Markstück. Lösung 12.56 (loesung_115) 57.21 18. Nürnberg (N) und München (M) benötigt. 7 Einheiten von B und 5 Einheiten von C. Jede Ziege braucht 4 Einheiten von A. eine Tonne des Spray S2 enthält 3 Einheiten von jeder Chemikalie und eine Tonne des Spray S3 enthält 2 Einheiten von A und 5 Einheiten von B.60 (loesung_66) 61.► Bestimmen Sie die Lösungen der folgenden Gleichungssysteme 7 x1 5 x1 8 x1 2 x1 4 x1 x2 − 4 x2 + x2 − 10 x 2 x2 − − 5x2 + 3 x3 − 2 x3 + 3 x3 = 1 = 0 = −2 − 228 x3 − 4 x3 − 14 x3 = − 112 = − 16 = − 56 Lösung 12.63 (loesung_69) 64. Diese Zutaten sind in drei schon gemischten Packungen erhältlich: Eine Tonne des Spray S1 enthält 1.62 (loesung_68) 63. Jedes Schwein verbraucht 4 Einheiten von A. 9 Einheiten von B und 6 Einheiten von C in jedem Monat.0 4. cos β und tan γ und berechnen Sie dann die unbekannten Winkel.1x 2 = 19. Ist die Abweichung der Lösungen entsprechend? Lösung 12. B und C. 8 Einheiten von B und 7 Einheiten von C. Wie viel von jedem herkömmlichen Spray sollte verwendet werden um die exakt benötigte Menge der Chemikalien zu erhalten? Lösung 12.► Lösen Sie das folgende Gleichungssystem für sin α . Es gibt drei verschiedene Futtersorten: A.1x 2 + 1.05 % von den entsprechneden Koeffizienten des ersten Systems ab. Um eine Getreidepest zu kontrollieren wird empfohlen das Getreide mit einer Mischung aus 6 Einheiten der Chemikalie A. 10 Einheiten der Chemikalie B und 8 Einheiten der Chemikalie C zu besprühen. Wie viele Tiere von jeder Art kann die Farm halten.MATLAB V3.64 (loesung_70) 81 .25 = 6. wenn jedes Monat 129 Einheiten des Futter A. Jedes Schaf braucht jeden Monat 3 Einheiten vom Futter A. Ziegen und Schweine.61 (loesung_67) 62. 3 und 4 Einheiten der Chemikalien A.► Eine Farm hat 3 Arten Vieh: Schafe.5 x1 1.6 x1 + 3. 285 Einheiten von B und 210 Einheiten von C zur Verfügung stehen und alles verbraucht werden soll? Lösung 12. − 2 sin α 4 sin α 2 sin α − 3 cos β + 2 cos β − 5 cos β + 5 tan γ − 2 tan γ + 3 tan γ = 1 = 2 = 7 Lösung 12. B und C.84 Die Koeffizienten des zweiten Gleichungssystems weichen um weniger als 0. 0.1129⎦ ⎝ ⎠ Lösung 12.0030 0.35 und 0. ⎡0.65 (loesung_71) 66.0030 0. Berechnen Sie die Kräfte an den 4 Punkten.312 ⎟ ⋅X = ⎜ 0.3678 0.4015 0.0050 0. Das Gesetz von Hooke sagt: y = Df .0050 0.0010 ⎢ ⎣0.1748 ⎢ ⎣ 0.1902 0. Die Einheit ist Zentimeter/Newton. Punkt und keine Abweichung in den anderen 3 Punkten hervorrufen.2251 0. Im Vektor f im ℜ 4 stehen die Kräfte an diesen Punkten und der Vektor y im ℜ 4 listet die Abweichung von der Horizontalen (d.0634⎥ ⎜ 5. die eine Bewegung von 0.67 (loesung_73) 82 . x1 x1 4 x1 x1 x2 + x2 − + 2 x2 + x2 + + x3 x3 − x3 x4 + − x4 + 2 x4 − x4 = 1 = 2 = 7 = 3 Lösung 12.0124 0.30.0030 0.4000 0. greifen in den Punkten 1 bis 4 Kräfte an. Lösen Sie das folgende Gleichungssystem: ⎡0.0005 0.03 cm im 4.25.30 cm.2945⎤ ⎛ 3. ( D ist die Biegsamkeitsmatrix) (Skizze mit 3 Kräften) Die nachfolgende Matrix D ist eine Biegsamkeitsmatrix für 4 Punkte an denen Kräfte angreifen.3925⎥ 1.142 ⎞ ⎜ ⎟ ⎥ 0.0005⎤ 0.2708 0.0030 0.0040⎦ Messungen an den 4 Punkten zeigen Auslenkungen von 0.MATLAB V3.3842 0.3654 ⎢ ⎢0.► Ist das folgende Gleichungssystem lösbar? Bestimmen Sie gegebenenfalls die Lösungsmenge.0010⎥ ⎥ 0.4095 ⎢0. Lösung 12.3718 0. der an den Enden fest aufliegt.312 ⎟ 0.0 65.000 ⎟ ⎜ ⎟ ⎥ ⎜ − 4.66 (loesung_72) 67.0040 ⎢0.h.0010 0. Auf einen horizontalen elastischen Balken. 0.0030 D=⎢ ⎢0. die Bewegung des Balkens) in den vier Punkten auf. Berechnen Sie außerdem die Kräfte.0010 0.0030⎥ ⎥ 0. Zur Lösung dieses Problems untersucht man die Ströme in den einzelnen Maschen. Die Stromstärken I in den Widerständen eines elektrischen Netzwerkes sollen bestimmt werden.69 (loesung_75) 83 . während der 3Ω -Widerstand zur ersten und zweiten Masche gehört. Lösung 12. daß nach den I n gelöst werden kann. Bestimmen Sie die Stromstärke in den einzelnen Maschen der nachfolgenden Netze.68 (loesung_74) 69. folgendermaßen aus: 4Ω * I 1 + 4Ω * I 1 + 3Ω * (I 1 − I 2 ) = 30V Dabei gehören die 4Ω -Widerstände nur zur ersten Masche.0 68.B. Durch Aufstellen der Gleichungen für jede einzelne Masche erhält man ein quadratisches lineares Gleichungssystem.MATLAB V3.► Bestimmen Sie die Lösung des folgenden quadratischen Gleichungssystems 2 x1 − 4 x1 6 x1 2 x1 − 2 x1 − + − − + 3x 2 6 x2 9 x2 4 x2 5x2 + − + + − x3 2 x3 3 x3 3 x3 3 x3 − + − + + 2 x4 5x4 4 x4 2 x4 2 x4 + 4 x5 − 6 x5 + 10 x5 − 3 x5 − x5 = 7 = − 10 = 17 = 5 = 1 Lösung 12. Dabei gilt das Ohmsche Gesetz: U = RI . wenn der Strom in die entgegengesetzte Richtung fließt. Die angelegte Spannung muß negativ angegeben werden. Eine Gleichung innerhalb der ersten Masche sieht dann z. h.10 Kleinste Quadrate 72. Lösung 12. Gegeben sind die Gleichungen 10 x1 − x1 x2 − + 10 x 2 x2 − x3 − + 10 x3 x3 − x4 − + 10 x 4 x4 − x5 − + 10 x5 − x5 x6 − + 10 x6 = = = = = = 10 0 10 0 10 10 Berechnen Sie den Vektor x bis zur 6. Näherung. Es sei das lineare Gleichungssystem Ax = b mit ⎡ 2 −1 0 ⎤ A = ⎢− 1 3 − 1⎥ ⎥ ⎢ ⎢ 0 −1 2 ⎥ ⎦ ⎣ ⎡1⎤ b=⎢ 8 ⎥ ⎢ ⎥ ⎢− 5⎥ ⎣ ⎦ Berechnen Sie x mit dem Gauß-Jacobi-Verfahren und dem Gauß-Seidel-Verfahren bis zur 8.71 (loesung_119) 12.MATLAB V3.70 (loesung_118) 71.0 12. (d. Lösung 12. A T Ax = A T b ). Finden Sie eine Lösung des linearen Systems mit der Methode der kleinsten Quadrate. 1 ⎤ ⎡1 1 1 ⎛ −2 ⎞ ⎟ ⎜ ⎢1 2 4 ⎥ 8 ⎥ ⎜ −7 ⎟ ⎢ ⎜ 8 ⎟ ⎢1 − 1 1 − 1 ⎥ ⎟ ⋅x = ⎜ ⎢ ⎥ 1 −2 4 −8 ⎥ ⎜ 1 ⎟ ⎢ ⎜ −4 ⎟ ⎢1 3 9 27 ⎥ ⎟ ⎜ ⎢ ⎥ ⎜ − 22 ⎟ ⎢1 − 3 9 − 27⎥ ⎠ ⎣ ⎦ ⎝ Lösung 12. Der Startvektor ist der Nullvektor. Näherung mit dem Gesamtschrittverfahren.9 Iteration 70.72 (loesung_120) 84 . Lösung 12.010 N 2O 4 92. -4). dass die Kurve p (t ) = x1 sin t + x 2 cos t + x3 sin 2t + x 4 cos 2t die beste Näherung für die Punkte (-2. die 110g Kalorien. 8). V3. (2.25g Protein. Proteine.4g Fett.MATLAB 73. (-1. Aus den gemessenen Molekulargewichten NO 30. 24g Kohlenhydrate und 1g Fett enthält? Wenn ja. Kohlenhydrate und Fett ergibt. 25g Kohlenhydrate und 0.0 Berechnen Sie die Lösung der Gleichung Ax = b mit der Methode der kleinsten ⎡1 ⎢1 ⎢ ⎢1 Quadrate.73 (loesung_121) 74.006 N 2O 3 76. die in einer Mischung von 3 Portionen Crunchy Nuts und 2 Portionen Crispis enthalten sind.76 (loesung_124) 85 . A = ⎢ ⎢1 ⎢1 ⎢ ⎢1 ⎣ 1 1 0 0 0 0 0 0 1 1 0 0 0⎤ 0⎥ ⎥ 0⎥ ⎥ 0⎥ 1⎥ ⎥ 1⎥ ⎦ ⎡− 3⎤ ⎢ − 1⎥ ⎢ ⎥ ⎢0⎥ b=⎢ ⎥ ⎢2⎥ ⎢5⎥ ⎢ ⎥ ⎢1⎥ ⎣ ⎦ Lösung 12. Sie wollen ein Frühstück mit mehr Protein als in Crispis aber weniger Fett als in Crunchy Nuts. so daß Bu die Summe der Kalorien. (0. -4). wie lautet die Mischung? Lösung 12. Lösung 12.011 Sollen die Atomgewichte von Stickstoff und Sauerstoff bestimmt werden. Stellen Sie eine Matrix B und einen Vektor u auf.006 N 2O 44. 3g Protein. 2.74 (loesung_122) 75. 21g Kohlenhydrate und 3g Fett. (1.75 (loesung_123) 76. Zeichnen Sie das Ergebnis und die Punkte in das gleiche Koordinatensystem. -2). (3. 16) ist.013 NO 2 46. 2). Ist es möglich eine Mischung der beiden Kellogg`s-Sorten zusammenzustellen. Eine Portion Kellogg`s Crispis enthält 110 Kalorien. Berechnen Sie die xi so. 2g Protein. Eine Portion (28g) Kellogg’s Crunchy Nuts enthält 110 Kalorien.012 N 2O 5 108. ► Überprüfen Sie ob x oder y Eigenvektoren der Matrix A sind. Berechnen sie dann den zugehörigen Eigenwert.78 (loesung_126) 79.01 Bestimmen Sie den Typ der Umlaufbahn und sagen Sie vorher wo der Komet bei ϑ = 4. ⎡2 1 1 ⎤ A = ⎢2 3 2⎥ ⎢ ⎥ ⎢1 1 2⎥ ⎣ ⎦ ⎡− 1⎤ x=⎢1⎥ ⎢ ⎥ ⎢0⎥ ⎣ ⎦ ⎡− 1⎤ y=⎢0⎥ ⎢ ⎥ ⎢1⎥ ⎣ ⎦ Lösung 12. Lösung 12.14 1. Die Position ( r . Hinweis: Die Formel muß zunächst linearisiert werden.11 Eigenwerte 78.► Gegeben seien die Matrizen ⎡ 3 2 2⎤ 1⎢ B = ⎢2 2 0⎥ ⎡2 16 ⎤ ⎥ 3 A=⎢ ⎢ 2 0 4⎥ 1 − 4⎥ und ⎦.ϑ ) in Polarkoordinaten kann mit der Formel ϑ r 0. ⎣ ⎣ ⎦ Ermitteln Sie ihre Eigenwerte und geben Sie jeweils einen dazugehörigen normierten Eigenvektor an.77 (loesung_125) 12.79 (loesung_127) 80.► Bestimmen Sie für die folgende Matrix die Eigenwerte und die zu den jeweiligen Eigenwerte gehörenden Eigenräume. wobei β eine Konstante und e die Exzentrität der Umlaufbahn ist: 0 ≤ e ≤ 1 bei einer Ellipse.0 77.MATLAB V3. Zeichnen Sie die Umlaufbahn.42 1. eine Parabel oder eine Hyperbel als Umlaufbahn (Anziehungen anderer Planeten aufgrund der Gravitation r = β + e( r ⋅ cos ϑ ) berechnet werden.30 1. e = 1 bei einer Parabel und e > 1 bei einer Hyperbel.00 1. Beobachtungen eines neu entdeckten Kometen liefern die folgenden Daten: werden ignoriert).* Nach Kepler`s erstem Gesetz hat ein Komet entweder eine Ellipse.25 2.6 sein wird.80 (loesung_128) 86 . Lösung 12. Ist die Matrix diagonalähnlich? ⎡ − 3 1 − 1⎤ A = ⎢− 7 5 − 1 ⎥ ⎢ ⎥ ⎢ − 6 6 − 2⎥ ⎣ ⎦ Lösung 12.65 1.77 1.88 3.10 2. 0 81. ⎢ ⎥ ⎢ 3 ⎥ ⎢− 1⎥ ⎢0⎥ ⎢0⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎣− 1⎦ ⎣ 0 ⎦ ⎣0⎦ ⎣0⎦ Lösung 12.MATLAB V3. finden Sie Matrizen V und D mit A = VDV −1 aus den Eigenwerten und Eigenvektoren von A. Berechnen Sie das charakteristische Polynom. ⎢ ⎥.81 (loesung_129) 82. Berechnen Sie die Eigenwerte der folgenden Matrizen. ⎡10 ⎢7 A=⎢ ⎢8 ⎢ ⎣7 7 8 7⎤ 5 6 5⎥ ⎥ 6 10 9 ⎥ ⎥ 5 9 10⎦ ⎡5 2 ⎢2 − 4 ⎢ B = ⎢0 3 ⎢ ⎢0 0 ⎢0 0 ⎣ 0 3 0 6 0 0 0 6 4 1 0⎤ 0⎥ ⎥ 0⎥ ⎥ 1⎥ 5⎥ ⎦ Lösung 12.82 (loesung_130) 1 −1 2 ⎤ ⎡2 ⎢1 3 2 − 3⎥ ⎢ ⎥ B= ⎢− 1 2 1 − 1⎥ ⎢ ⎥ ⎣ 2 − 3 −1 4 ⎦ 83. 0 und 3 hat und deren zugehörige Eigenvektoren folgende sind: ⎡ 1 ⎤ ⎡ 4 ⎤ ⎡3⎤ ⎡1⎤ ⎢ 2 ⎥ ⎢ 2 ⎥ ⎢1⎥ ⎢0⎥ ⎢ ⎥ . 4 − 10 − 4⎤ ⎡ 11 − 6 ⎢− 3 5 −2 4 1⎥ ⎢ ⎥ A = ⎢− 8 12 − 3 12 4⎥ ⎢ ⎥ 6 −2 3 − 1⎥ ⎢1 ⎢ 8 − 18 8 − 14 − 1⎥ ⎣ ⎦ Lösung 12.h. Bestimmen Sie die Eigenwerte und die Eigenvektoren der folgenden Matrix. die die Eigenwerte 2. ⎡ 2 −1 0 0 ⎤ ⎢− 1 2 − 1 0 ⎥ ⎥ A=⎢ ⎢ 0 − 1 2 − 1⎥ ⎢ ⎥ ⎣ 0 0 −1 2 ⎦ Lösung 12. Finden Sie in jedem Fall auch die Matrix P der Eigenvektoren und berechnen Sie P −1 AP . ⎢ ⎥. Finden Sie eine 4x4-Matrix. d. -3. Diagonalisieren Sie die Matrix A.83 (loesung_131) 84.84 (loesung_132) 85.85 (loesung_133) 87 . ⎡− 4 − 4 ⎢ 14 12 ⎢ B=⎢ 6 4 ⎢ ⎢ 11 7 ⎢ 18 12 ⎣ 20 − 8 − 1⎤ − 46 18 2 ⎥ ⎥ − 18 8 1⎥ ⎥ − 37 17 2 ⎥ − 60 24 5 ⎥ ⎦ Lösung 12. die Eigenwerte und wenn möglich eine reguläre Diagonalisierungsmatrix. . . 2.87 (loesung_135) 12. 10 Lösung 12.► Ermitteln Sie alle Eigenwerte von A und überprüfen Sie. Lösung 12.88 (loesung_5) 89.5 ⋅ I A2 + 3⋅ A − 4 ⋅I A2 − 3⋅ A + 4 ⋅I Die Ergebnisse geben Ihnen sicher Anlass zu einigen Vermutungen. 5 − 3⎥ ⎥ 1 1⎦ Lösung 12.12 Komplexe Zahlen 88. ⎡0 ⎢2 ⎢ ⎢3 ⎢ 4 A=⎢ ⎢5 ⎢ ⎢6 ⎢7 ⎢ ⎢8 ⎣ 1 1 3 4 5 6 7 8 1 2 2 4 5 6 7 8 1 2 3 3 5 6 7 8 1 2 3 4 4 6 7 8 1 2 3 4 5 5 7 8 1 2 3 4 5 6 6 8 1⎤ 2⎥ ⎥ 3⎥ ⎥ 4⎥ 5⎥ ⎥ 6⎥ 7⎥ ⎥ 7⎥ ⎦ 6 − 6⎤ 5 − 5⎥ ⎥. A A −1 A2 = A ⋅ A A − 0.MATLAB V3.► Bestimmen Sie Real.89 (loesung_136) 88 .86 (loesung_134) 87..und Imaginärteil von a) b) c) d) 1 2 2 2 +i 2 2 + 3i 2 − 3i z= + 4 − i 1 + 4i z = sin(1 + 3 1 − i ) z= z = 1 + sin 2 + i Lösung 12. ob A diagonalähnlich ist. ⎡− 2 ⎢− 5 Gegeben ist die Matrix A = ⎢ ⎢−1 ⎢ ⎣−1 0 3 1 1 Bestimmen Sie die Eigenwerte und dazugehörigen Eigenvektoren der folgenden Matrizen.0 86.► Berechnen Sie i n für n = 1.. MATLAB 90.► Bestimmen Sie alle Lösungen der Gleichung iz 2 − (2 − i ) z + (1 + 3i ) = 0 Lösung 12. 179.91 (loesung_138) 92.01 bzw.0 z4 −1 = 0 z4 +1 = 0 z 5 = 32i Lösung 12.90 (loesung_137) 91.99 und berechnen Sie erneut die 89 . Lösung 12.92 (loesung_139) 93. Berechnen Sie mit der MATLAB-Funktion eig die Eigenwerte der Matrix ⎡− 149 − 50 − 154⎤ A = ⎢ 537 180 546 ⎥ ⎥ ⎢ ⎢ − 27 − 9 − 25 ⎥ ⎦ ⎣ Ändern Sie das Matrixelement Eigenwerte. Geben Sie eine Lösung der Gleichung z i = 1 + i an! Lösung 12. Überprüfen Sie die folgenden Aussagen T e z1 ⋅ e z 2 = e z1+ z 2 e i⋅ z1 = cos( z1) + i ⋅ sin( z1) Lösung 12.94 (loesung_141) 95.► Berechnen Sie für die komplexen Zahlen z = 3 + 2i und w = 4 − 5i die folgenden Werte: z+w z+w 2 z − 3w z+w zw z⋅w zz ⎡z ⎤ ⎡z⎤ ⎢ w ⎥ ⎢ w⎥ ⎣ ⎦ ⎣ ⎦ Lösung 12. Lösen Sie die Gleichungen V3.93 (loesung_140) 94.95 (loesung_142) a 22 zu 180. Lösung 12. Vergleichen Sie den Wert der Determinante mit dem Produkt der Eigenwerte. daß A und A T das gleiche charakteristische Polynom haben (die gleichen Eigenwerte). Lösung 12.99 (loesung_146) 90 . Bestimmen Sie die Eigenwerte und die Eigenvektoren der folgenden Matrix. Haben Sie auch die gleichen Eigenvektoren? Überprüfen Sie die Annahmen auch bei größeren Zufallsmatrizen. Das charakteristische Polynom der Matrix A lautet: λ 4 + 5λ3 + 3λ 2 − 7 λ + 11 und das der Matrix B lautet: λ5 + 3λ 4 − 5λ 2 − 11λ + 5 .0 96.97 (loesung_144) 98. Erzeugen Sie eine 4x4-Zufallsmatrix A und zeigen Sie. −9 −7 8 2 ⎤ ⎡4 ⎢− 7 − 9 0 7 14 ⎥ ⎥ ⎢ A=⎢ 5 10 5 − 5 − 10⎥ ⎥ ⎢ 7 0 4 ⎥ ⎢− 2 3 ⎢ − 3 − 13 − 7 10 11 ⎥ ⎦ ⎣ Lösung 12.98 (loesung_145) 99.MATLAB V3. Lösung 12. Erzeugen Sie eine 6x6-Zufallsmatrix A. Berechnen Sie det( A ) und die Eigenwerte von A.96 (loesung_143) 97. Berechnen Sie die Determinante und die Spur der beiden Matrizen. B.1 getestet. und das benutzen einfacher Funktionen vorausgesetzt. StudentInnen. die im Folgenden Kapitel beschrieben werden. können Sie die im Text markierten Programme ablaufen lassen.B.B. dass ein selbstständiges erarbeiten der Thematik möglich ist. Bei Aufgaben mit einem Stern (z. so dass man auch einen Eindruck von der Leistungsfähigkeit von MATLAB bekommt.►) versehen.0 13 Vorwort – Aufbaukurs Sie haben bereits erste grundlegende Erfahrungen mit MATLAB gemacht und suchen einen Leitfaden zum effektiven Einstieg. dann tippen Sie einfach [Strg][C] und es bleibt erhalten. sowie aller Ingenieursdisziplinen ausgerichtet ist. sondern auch vielen den Berufseinstieg erleichtert. 91 . der Ihnen einen Überblick über die wichtigsten Funktionalitäten bietet? Dann sind Sie hier richtig. 3. In diesem Aufbaukurs wird der Umgang mit der MATLAB-Oberfläche. Durch Eingabe einer beliebigen Taste wird das MATLAB-Befehlsfenster wieder geschlossen. Nach dem erfolgreichen durcharbeiten des Kurses wird sich der/die Studierende über die wichtigsten syntaktischen Eigenschaften von MATLAB erfreuen. 4.MATLAB V3. Voraussetzung hierfür sind allerdings 2 Installationsmaßnahmen. Diese Aufgaben können auch mit Papier und Bleistift gelöst werden. Hierzu tragen neben der Beschreibung von syntaktischen Besonderheiten auch viele Übungsaufgaben mit Lösungsvorschlägen zum sicheren Verständnis bei. B.*) ist der Aufwand zur Lösung etwas höher. z. Diese Unterlagen sind nun in der dritten überarbeiteten Form. ebenso wie Kommandos zum erzeugen von Matrizen. Informatik. ohne diese zuvor abzutippen. sollten auch hier keine Probleme haben zu Recht zu kommen. um vielleicht noch etwas auszuprobieren. Wie bereits erwähnt werden Kenntnisse über grundlegende MATLAB-Eigenschaften vorausgesetzt. so dass schon von Anfang an auf Themen eingegangen wird. welche zur Umsetzung praxisbezogener Problemstellungen nicht wegzudenken sind. Dadurch öffnet sich ein MATLAB-Befehlsfenster. Hinweise Alle Beispiele wurden mit MATLAB Version 7. welche nicht nur das weitere Studium positiv beeinflussen werden. wobei gerade bei den letzten Umgestaltungen besonderes darauf geachtet wurde. wenn Sie einfach auf ein markiertes Programm (DateiName) klicken. Es genügt. C/C++ oder Java sammeln konnten. als Prüfungsvorbereitung für Lineare Algebra. Einige der Übungsaufgaben sind mit einem Pfeil (z. Wenn Sie es aber ausnahmsweise offen lassen wollen. da dieses Tool in der Industrie weit verbreitet ist und deshalb auch der Umgang damit für einige unumgänglich sein wird. weshalb dieser Aufbaukurs für StudntInnen der Studiengänge Mathematik. die jedoch bereits Erfahrungen in anderen Programmiersprachen wie z. in dem die Befehlsfolge abläuft. welche im Kurs aufgeführt werden stammen teilweise aus unterschiedlichen Arbeitsfeldern. Die Beispiele und Übungsaufgaben. Wenn auf Ihrem Computer MATLAB installiert ist. .0 14 Kursspezifische MATLAB Konfigurationen Um die vorbereiteten Verknüpfungen zu MATLAB über Programm funktionsfähig zu machen. Im Fenster Systemeigenschaften können dann auf der Registerkarte Erweitert die Umgebungsvariablen eingestellt werden. Zum Abschluss der Einstellungen drücken Sie den Button Save. in dem die ProgrammDateien stehen. In Windows XP geschieht dies z. über Start / Einstellungen / Systemsteuerung / System.. Dazu erscheint folgendes Fenster. Dazu öffnet man in MATLAB den Path-Browser (s. unter Windows In MATLAB muss ein Pfadeintrag auf den Ordner verweisen. in dessen unterer Zeile der Pfadeintrag markiert wurde. 2.) über File / Set Path.B.MATLAB V3. Drücken Sie nun den Button AddFolder… und navigieren Sie zu dem Pfad in welchem Beispiele zu diesen Tutorial zu finden sind. in dem die Datei matlab. also etwa C:\Programme\Matlab\bin. 92 . sind folgende beiden Schritte erforderlich: 1. Der System-Pfad muss den Ordner enthalten.exe steht. Dialogfenster zur Veränderung verlinkter MATLAB-Pfade.u. Nach Klick auf Bearbeiten kann man ihn vollständig lesen.0 Windows-Dialogfenster zum einstellen der Umgebungsvariablen. Sofern noch kein Verweis auf MATLAB vorliegt. also z. durch . wird der vorhandene Pfad-Eintrag ergänzt durch den Pfad zu Ihrer Datei matlab.exe.MATLAB V3.C:\Programme\Matlab\bin 93 .B. d. Sie arbeiten mit den Daten im Workspace (und entsprechen den MATLAB-Befehlen wie sie auch in das Befehlsfenster eingegeben werden). Interne Variablen sind lokal in der Funktion vorhanden. etwa mit Hilfe der Funktion plot. In der Regel steht eine selbst geschriebene Datei vor den MATLAB-Funktionen. mit addpath oder entfernen mit rmpath.m. führt MATLAB diejenige Datei aus. heißen M-Files. for n = 3:32 r(n) = rank(magic(n)). Dafür sorgt addpath.h. Falls Sie ein Neuling in der MATLAB . addpath c:\MyFiles rmpath c:\MyFiles Falls Funktions. Sie können M-Files mit Hilfe eines beliebigen Texteditors erstellen und diese dann wie jede andere MATLAB-Funktion oder wie einen MATLAB-Befehl aufrufen. Es gibt folgende zwei Arten von M-Files: Skripte akzeptieren keine Eingabeargumente und geben keine Ergebnisse zurück.1 Skripte Wenn Sie ein Skript aufrufen. verbleiben alle innerhalb des Skripts erstellten Variablen im Workspace. Funktionen akzeptieren Eingabeargumente und liefern Ergebnisse zurück. etwa myfunction. der eine übersichtliche Programmierung durch intelligentes Formatieren des Codes unterstützt und Schlüsselwörter farbig hervorhebt (Dieser wird automatisch geöffnet.) Wenn Sie häufig eigene M-Files entwickeln wollen. erstellen Sie eine Datei mit dem Namen magicrank. addpath c:\MyFiles -end stellt das Directory ans PfadendeUm den Inhalt eines M-Files anzuzeigen. end 94 . deren Namen Sie in MATLAB zum Suchpfad hinzufügen können. z. Selbstverständlich stellt auch MATLAB einen optimierten Editor zur Verfügung. Skripte können auch graphische Ausgaben erzeugen.).MATLAB V3. (Meistens ist C:\Matlab\work voreingestellt. führt MATLAB an dieser Stelle einfach die in der Datei gefundenen Befehle aus. indem es eigene Ordner dem MATLABPfad voranstellt. Skripte arbeiten mit bereits vorhandenen Daten im Workspace. Als Beispiel. um für weitere Berechnungen zur Verfügung zu stehen. r = zeros(1. wenn m-Files in MATLAB geöffnet werden.Programmierung sind. die die folgenden MATLAB Anweisungen enthält. sollten Sie diese in mehreren Verzeichnissen und in persönlichen Toolboxen ablegen. Obwohl Skripte keine Rückgabewerte liefern.32). benutzen Sie type myfunction 15. die MATLAB-Quellcode enthalten. die es zuerst im Suchpfad findet. Dateien.B.oder Skriptnamen im Pfad mehrfach vorhanden sind.0 15 Skripte und Funktionen MATLAB ist sowohl eine Programmiersprache als auch eine interaktive Rechenumgebung. können Sie M-Files einfach im aktuellen Verzeichnis („Current Directory“) erstellen.m. außerhalb nicht definiert. getrennt von dem Workspace. Der Name eines M-Files muss mit dem Namen der darin beschriebenen Funktion übereinstimmen. Funktionen arbeiten mit eigenen lokalen Variablen in ihrem separaten Workspace. den Sie von der MATLAB Kommandozeile ansprechen können. 35 30 25 20 15 10 5 0 0 5 10 15 20 25 30 35 15. den Rang der ersten 30 magischen Quadrate zu berechnen und die Ergebnisse als Histogramm darzustellen.2 Funktionen Funktionen sind M-Files.h. können Sie nun im Befehlsfenster vom MATLAB den „neuen“ Befehl magicrank eingeben und veranlassen damit MATLAB die Befehle auszuführen. Sie können sich die Datei mit type rank ansehen und erhalten die Ausgabe 95 .1 (Beispiel_magicrank) V3.m ist im Verzeichnis C:\Matlab\toolbox/matlab/matfun oder einem ähnlich aufgebauten Pfad gespeichert. d.0 Haben Sie die Datei in einem für MATLAB bekanntem Pfad (path) oder in der Current Directory abgespeichert. Nachdem die Abarbeitung der Datei erfolgt ist. Das zugehörige M-File rank.MATLAB r bar(r) Beispiel 15. die in diesem Skript gespeichert sind. deren Quellcode Sie ansehen können. bleiben die Variablen n und r im Workspace erhalten. Als Beispiel betrachten wir die MATLAB-Funktion rank. die Eingabeargumente akzeptieren und Ergebnisse zurückgeben können. MATLAB V3.0 function r = rank(A,tol) %RANK % % % % % % % Matrix rank. RANK(A) provides an estimate of the number of linearly independent rows or columns of a matrix A. RANK(A,tol) is the number of singular values of A that are larger than tol. RANK(A) uses the default tol = max(size(A)) * norm(A) * eps. Copyright (c) 1984-98 by The MathWorks, Inc. $Revision: 5.7 $ $Date: 1997/11/21 23:38:49 $ s = svd(A); if nargin==1 tol = max(size(A)') * max(s) * eps; end r = sum(s > tol); Beispiel 15.2 (Beispiel_rank) Die erste Zeile der Funktion im M-File beginnt mit dem Schlüsselwort function. Sie gibt der Funktion einen Namen und legt die Reihenfolge der Argumente fest. In unserem Fall gibt es zwei Eingabeparameter A und tol sowie einen Rückgabewert r. Die Werte der Eingabeparameter erhält die Funktion bei ihrem Aufruf vom rufenden Programm, also z.B. aus dem MATLAB-Befehlsfenster oder von einem MATLAB-Skript. Rückgabewerte liefert die Funktion nach ihrem Aufruf an das rufende Programm. Die nächsten Zeilen bis hin zur ersten Leer- oder ausführbaren Zeile, sind Kommentare, die eine Beschreibung der Funktion ermöglichen. Diese Zeilen werden ausgegeben, wenn Sie z.B. help rank eingeben. (Kommentare beginnen immer mit einem %-Zeichen und reichen bis zum Zeilenende.) Beispiel 15.3 (Beispiel_help_rank) Die erste Zeile des Hilfetexts ist die H1-Zeile, eine Kommentarzeile, welche MATLAB ausgibt, wenn Sie das lookfor Kommando oder help zu einer Toolbox benutzen. help rank dagegen zeigt alle Kommentarzeilen ab der H1-Zeile bis zur ersten Leerzeile. Der Rest der Datei ist ausführbarer MATLAB-Quellcode, der die Arbeitsweise der Funktion festlegt. Die Variable s wird innerhalb der Funktion eingeführt, ebenso die Parameter r, A und tol. Alle vier sind lokale Variablen in rank, außerhalb vom MATLAB Workspace. Besonders wichtig ist die Wertzuweisung an die Ausgabevariable der Funktion, in unserem Fall ist das r. Der letzte an r zugewiesene Wert wird beim Funktionsaufruf an das rufende Programm übergeben. Das rank-Beispiel zeigt auch eine Eigenschaft von MATLAB-Funktionen die normalerweise nicht in anderen Programmiersprachen zu finden ist: Bei Funktionsaufrufen ist eine variable 96 MATLAB V3.0 Anzahl von Argumenten erlaubt. Die rank-Funktion kann nämlich auf verschiedene Arten aufgerufen werden, z.B. rank(A) r = rank(A) % 1 Parameter, keine Wertzuweisung % 1 Parameter + Wertzuweisung r = rank(A,1.e-6) % 2 Parameter + Wertzuweisung Beispiel 15.4 (Beispiel_rank_funk) Viele vorgefertigte M-Files arbeiten nach diesem Prinzip. Falls beim Funktionsaufruf keine Wertzuweisung an eine Variable erfolgt, wird das Ergebnis in ans gespeichert. Wenn definierte Eingabeargumente fehlen, muss die Funktion dafür einen Standardwert einsetzen können. Dies funktioniert allerdings nur dann, wenn ein sinnvoller Default-Wert möglich ist und die Funktion auch dafür ausgelegt ist. MATLAB arbeitet zur Umsetzung dieser Funktionalität mit zwei automatisch vordefinierten Variablen mit den Namen nargin und nargout, welche innerhalb jeder Funktion verfügbar sind. Diese enthalten jeweils die tatsächliche Anzahl der Ein- und Ausgabeparameter des aktuellen Funktionsaufrufs. Die rank-Funktion benutzt nur nargin, denn nargout spielt in diesem Zusammenhang keine Rolle. Es muss also für jeden Wert der im Funktionskopf angegeben auch ein Wert zur Verfügung stehen, wenn diese Variable verwendet wird. Mit nargin z.B. ist es ein einfaches abzuprüfen, wie viele Eingabewerte tatsächlich übergeben wurden und die fehlenden Übergabeparameter mit Default-Werten zu belegen (vgl. folgende Beispielfunktion). function [ret_a, ret_b, ret_c] = Hilfsfunktion_nargin(a, b, c) if nargin <= 2 c = 3; end if nargin == 1 b = 2; end ret_a = a; ret_b = b; ret_c = c; Folgende Funktionsaufrufe sind nun also denkbar, wobei der letzte wie erwartet fehlschlagen muss, da für a kein Wert festgelegt ist, welcher ret_a zugewiesen werden kann. [a, b, c] = Hilfsfunktion_nargin(1,2,3) [a, b, c] = Hilfsfunktion_nargin(1,2) [a, b, c] = Hilfsfunktion_nargin(1) [a, b, c] = Hilfsfunktion_nargin() %Inkorrekter Aufruf Auch bei den Ausgabeparametern wird eine unterschiedliche Anzahl von Argumenten akzeptiert. Hier werden die Werte von links nach rechts von der Deklarationsreihenfolge nacheinander ausgegeben. Aus diesem Grund sind auch folgende Aufrufe erlaubt. 97 MATLAB V3.0 Hilfsfunktion_nargin(1,2,3) [a] = Hilfsfunktion_nargin(1,2,3) [a, b] = Hilfsfunktion_nargin(1,2,3) [a, b, c] = Hilfsfunktion_nargin(1,2,3) Beispiel 15.5 (Beispiel_nargin) Für den aufmerksamen Studenten sollte noch erwähnt sein: Mehr Übergabeparamter als festgelegt sind, werden nie akzeptiert. 15.3 Globale Variablen Falls Sie eine Variable in mehreren Funktionen benutzen wollen, definieren Sie einfach die Variable als global in allen diesen Funktionen, ebenso in der Kommandozeile des MATLABBefehlsfensters, wenn Sie auf die Variable auch im Befehlsfenster Zugriff haben wollen. Die globale Deklaration muss aber unbedingt zuerst erfolgen, d.h. bevor die Variable zum ersten Mal benutzt wird. Zur Unterscheidung von anderen Variablen benutzt man für globale Variablen gerne Großbuchstaben. Das ist zwar nicht vorgeschrieben, trägt aber dazu bei, dass man sie leicht von anderen (lokalen) Variablen unterscheiden kann. Erstellen Sie ein M-File mit dem Namen falling.m, das die Höhe eines Punktes anhand der Fallzeit eines Steins ermittelt. Man benötigt dazu die Erdbeschleunigung, die als globale Variable GRAVITY geführt wird. Je nachdem, ob Sie Entfernungen in Foot oder Meter messen, hat GRAVITY den Wert 32 (Foot/sec2) oder 9.81 (m/sec2). Dieses Detail können Sie außerhalb der Funktion falling einstellen, indem Sie GRAVITY vor Aufruf von falling mit dem passenden Wert belegen. function h = falling(t) global GRAVITY h = 1/2 * GRAVITY * t.^2; Geben Sie im Befehlsfenster die Anweisungen ein: global GRAVITY GRAVITY = 32; y = falling((0:.1:5)'); Beispiel 15.6 (Beispiel_falling) Die beiden global Anweisungen legen im Befehlsfenster von MATLAB den Wert fest und machen ihn innerhalb der Funktion verfügbar. Sie können nun die Variable GRAVITIY jederzeit ändern und abfragen, ohne irgendwelche Dateien zu editieren. 15.4 Dualität zwischen Kommandos und Funktionen MATLAB Kommandos sind Befehle wie load help Viele Befehle arbeiten auch mit Operanden, etwa load August17.mat 98 8 (Beispiel_int2str) 15. eval(s) Beispiel 15.0 type rank Alternativ kann man die Operanden auch als Parameter angeben. Grundsätzlich kann jeder Befehl ebenso gut in der Funktionsform geschrieben werden. sonne = []. Der Einlesevorgang im vorletzten Beispiel könnte auch mit folgendem Code gelöst werden. sonne = [ sonne day]. die aus mehreren Bestandteilen zusammengesetzt sind. weil er für eval den kompletten Interpreter benötigt. den in der Zeichenkette s enthaltenen Befehl zu erkennen und auszuführen. sonne_pro_tag = mean(sonne) Im Beispiel wollen wir davon ausgehen.MATLAB help magic V3. for d=1:31 s = [ 'August' int2str(d) '.5 Die eval-Funktion und inline-Funktionen Die eval-Funktion arbeitet mit Textvariablen deren Inhalte als arithmetische Ausdrücke interpretiert werden. % Datei s laden und Inhalt an Vektor sonne anhaengen load(s). Das folgende Beispiel verarbeitet mehrere Dateien. diese konvertiert eine ganze Zahl in eine Zeichenkette. usw.dat.dat. dass jede unserer Dateien als einzige Zahl die Anzahl Sonnenstunden an diesem Tag des Ferienmonats August enthält.7 (Beispiel_kommando) Beide Schreibweisen sind gleichwertig. Es verwendet die Funktion int2str. s='7+x^2'.mat' ]. Aus den 3 Textstücken in eckigen Klammern wird ein Dateiname zusammengesetzt.9 (Beispiel_eval_funk) benutzt den MATLAB-Interpreter. dann aber in Klammern. Beispiel 15. sind die Parameter Zeichenketten und man kann anstelle der Befehle Funktionsaufrufe formulieren load('August17. nicht 99 .mat') help('magic') type('rank') Beispiel 15. Außerdem kann man bei der funktionsschreibweise auch Variablennamen für Zeichenketten verwenden. Der Befehl x=3. um den in der Zeichenkette s enthaltenen Ausdruck auszuwerten bzw. Da es sich um Text handelt. obwohl dieser nicht zweckmäßig ist. Der Vorteil der Funktionsschreibweise zeigt sich bei Zeichenketten. Ausgegeben wird die mittlere Sonnenscheindauer. August2. wie bei Funktionen üblich. August1. end sonne. MATLAB durchsucht hierfür selbstständig die inline-Funktion nach isolierten Kleinbuchstaben nach der Alphabetischen Reihenfolge ungleich i und j. so kann man diese anschließend noch definieren. 2.y.var3) = var3 + var1 . deren Name vom eingegebenen Wert für d abhängt.z) = (z+y)/x % Definition der Funktion f(1. bei denen eine Definition als m-File-Funktion übertrieben erscheint.z.MATLAB V3.z und nicht etwa y.y. wie das abschließende who zeigt.var2 f(1.mat' ]. Die Ausgabe zeigt dann die Reihenfolge der Eingabeparameter an. Deshalb ist in diesem Fall die Reihenfolge der Eingabeparameter x. 3) ans = 2 Beispiel 15. Für diesen Fall stellt MATLAB neben eval die inline-Funktionen zur Verfügung. d = input('Ein Tag im August: ').12 (Beispiel_inline2) 100 . Will man jedoch komplexere Variablen-Namen angeben oder die Reihenfolge explizit festlegen. 'var3') f = Inline function: f(var1.var2. s = [ load 'August' int2str(d) '. Beispiel 15. eval(s). 3) ans = 5 % Aufruf der Funktion Beispiel 15. f = inline('var3 + var1 . who Nebenbei haben Sie auch die Arbeitsweise der MATLAB-Funktion input kennengelernt.10 (Beispiel_input) Oftmals benötigt man in einem Programm auch kleinere Funktionen. 'var1'. muss man MATLAB nicht explizit die Eingabevariablen angeben.x wie sie in der Funktion auftauchen. f = inline('(y+z)/x') f = Inline function: f(x. 'var2'.var2'. Der Aufruf dieser Funktionen ist gleich zu dem von m-FileFunktionen. Außerdem steht das Resultat nun in einer Variablen.0 nur einen Funktionsaufruf von load.11 (Beispiel_inline1) Wie man in diesem Beispiel erkennen kann. die Übergabeparameter werden also nur lokal übernommen und müssen nicht extern festgelegt werden. 2. Ein einfaches Beispiel: t = 0.oder do-Schleifen benötigen. Ihre Algorithmen zu vektorisieren. for k = 1:1000 x(k) = t. 101 . wo immer möglich.01:100. y = log10(x). Wenn Geschwindigkeit wichtig ist. Dort. Das bringt gewöhnlich einen Geschwindigkeitsvorteil gegenüber der Schleifentechnik. end plot(x. sollte man in MATLAB Algorithmen „vektorisieren“.1:.y) Beispiel 15.1. wo andere Programmiersprachen vielleicht for. kann MATLAB meistens Vektor.13 (Beispiel_for_schleife_1) Die vektorisierte Version des gleichen Codes sieht folgendermaßen aus: x = 0.oder Matrix-Operationen ausführen. y(k) = log10(t).14 (Beispiel_vek_vers_cod) Für komplizierteren Code ist Vektorisierung nicht immer von Vorteil. t = t + 0. sollten Sie aber immer versuchen.MATLAB V3.y) Beispiel 15. plot(x. weil die Formulierung zu komplex werden kann.0 15.6 Vektorisierung Um höchstmögliche Arbeitsgeschwindigkeit zu erreichen.1. 1). Die Funktionenfunktionen beinhalten z. end r Beispiel 15.7 Vorbelegung Falls Sie ein Stück Code nicht vektorisieren können.^2+. Der Code im folgenden Beispiel verwendet die Funktion zeros um den Vektor r vorzubelegen. 15. oder „Funktionale“ hat als Parameter wieder Funktionen.ä. r = zeros(32. genannt „Funktionenfunktionen". for n=1:32 r(n) = rank(magic(n)).01)+1. erweitert der MATLAB Interpreter den r-Vektor bei jedem Schleifendurchlauf um eins.3)./((x-. Vorbelegung eliminiert diesen Schritt und das Ergebnis ist eine schnellere Ausführungsgeschwindigkeit./((x-.9). in das dann die Ergebnisse geschrieben werden. [ [x(1:5) x(497:501)]' [y(1:5) y(497:501)]' ] Beispiel 15.h.15 (Beispiel_zeros) Ohne die Vorbelegung im vorherigen Beispiel. Dies macht die Schleife wesentlich schneller.8 Funktionen als Eingabeparameter Eine Klasse von Funktionen. können Sie die Schleifen schneller machen wenn Sie jeden Vektor oder jedes Feld vorbelegen.16 (Beispiel_humps) Diese Funktion wird über einer Reihe von 501 Rasterpunkten im Intervall von 0 < × < 1 ausgewertet x = linspace(0. • • • • Nullstellenbestimmung Extremwertbestimmung Integration Lösung gewöhnlicher Differentialgleichungen MATLAB stellt Funktionen als M-Files zur Verfügung. die über ein vorgegebenes Intervall (in unserem Fall das Intervall [0.1. y = humps(x).0 15. der in der for-Schleife erzeugt wird. D.04)-6.): function y = humps(x) y = 1.17 (Beispiel_humps_2) Dazu wurde die Funktion linspace verwendet. 1]) ein äquidistantes Punktraster legt.B.^2+.501). eine Funktion arbeitet mit einer anderen Funktion.MATLAB V3. Beispiel 15. Es folgt die vereinfachte Version der Funktion humps aus dem Ordner C:\Matlab\demos (o. Beachten Sie die 102 . dass die Funktion ein lokales Minimum nahe 0.4 0.6) p = 0.y) grid on Beispiel 15.8 0.5 0.3 0. und das zweite Argument ist ein Wert. in dessen Nähe ein Minimum gesucht werden soll. Der @-Operator gefolgt vom Funktionsnamen entspricht also dem Zeiger auf eine Funktion.6 0.2528 103 .2 0. welche in einer anderen Funktion verwendet werden soll.0 ungerade Punktanzahl 501.MATLAB V3.6370 Beispiel 15.7 0. wo das Minimum der Funktion liegt. Die Funktion fminsearch findet die Stelle p. Da beide Ränder des Intervalls mitgezählt werden.02 als Schrittweite. Also schreiben wir p = fminsearch(@humps.18 (Beispiel_linspace) 100 90 80 70 60 50 40 30 20 10 0 0 0. In der dritten Zeile des Beispiels werden die ersten und die letzten 5 Wertepaare tabellarisch ausgegeben.19 (Beispiel_fminsearch) Um den Funktionswert im Minimum zu berechnen.0.6 hat. werden Zeiger auf Funktionen in MATLAB mit dem @-Operator eingeleitet. Der Graph von humps wird nun gezeichnet wie folgt plot(x. schreibt man humps(p) ans = 11. Das erste Argument von fminsearch ist ein Zeiger auf die Funktion. Wie man im nachfolgenden sehen kann. die minimiert werden soll.1 0.9 1 Er zeigt. ergibt sich die „glatte“ Zahl 0. 21 (Beispiel_max_suche) V3. dass humps in Bild nirgends Null wird. * Die Binomialkoeffizienten lassen sich leicht mit Hilfe des Pascal`schen Dreiecks berechnen.9 Übungsaufgaben 1.B.1 (loesung_29) 2.23 (Beispiel_humps_zero) 15. Das gesuchte Maximum von humps(x) liegt gerade dort.8927 max = 21.1) Q = 29. werden feststellen.9).5) und Sie. dass eine Nullstelle außerhalb des Bildes liegt: z = -0.MATLAB Beispiel 15. Der Graph zeigt. Der Befehl Q = quadl(@humps. MATLABs Quadratur-Routinen heißen quad und quadl. ⎡1 ⎢1 ⎢ z. 0. max = humps(y) y = 0. 0. Schreiben Sie ein Funktion-File (M-File).1316 Beispiel 15. Falls Sie nach einer Nullstelle z suchen wollen.20 (Beispiel_fminsearch_2) Leider gibt es keine Funktion zur Maximumsuche. schreiben Sie einfach z = fzero(@humps.22 (Beispiel_quadl) berechnet das Integral der Funktion humps zwischen 0 und 1.0 Die inline-Funktion erlaubt die direkte Eingabe einer Funktion als Zeichenkette (inline liefert also bereits einen Funktionszeiger zurück). wo –humps(x) ein Minimum hat. Stattdessen kann man aber schreiben y = fminsearch(inline('-humps(x)'). A = ⎢1 ⎢ ⎢1 ⎢1 ⎣ 0 1 2 3 4 0 0 1 3 6 0 0 0 1 4 0⎤ 0⎥ ⎥ 0⎥ ⎥ 0⎥ 1⎥ ⎦ Lösung 15. „Quadratur“ ist ein anderes Wort für „Integralberechnung“ oder „Integration“.0.7346 Beispiel 15.8583 Beispiel 15. um folgende Funktion zu berechnen: 104 . Schreiben Sie dazu ein Programm (M-File). das in Abhängigkeit von n die Binomialkoeffizienten in einer n x n-Matrix A berechnet. um folgende Funktionen zu berechnen: a) b) ⎧1 x ≤ 0. Suchen Sie ein Minimum der Funktion. Zeichnen Sie die Funktion f über dem Intervall [−3.MATLAB V3.3] . Lösung 15. Lösung 15.3 (loesung_31) 4. Lösung 15.5 h( x ) = ⎨ ⎩0 sonst ⎧ 0 x<0 ⎪ π ⋅x g ( x) = ⎨sin( ) 0 ≤ x ≤1 2 ⎪ 1 x >1 ⎩ Zeichnen Sie die Funktionen über dem Intervall [-2. Schreiben Sie jeweils ein Funktion-File (M-File). Die Funktion f lautet: Zeichen Sie die Funktion wenn λ ∈ [−5. 2]. Suchen Sie die Nullstellen der Funktion. * Erzeugen f (λ ) = det( A − λ⋅ B) Sie zwei 5x5-Zufallsmatrizen A und B. 2 und 6.4 (loesung_32) 105 .2 (loesung_30) 3. 1.5.5] .0 ⎧x ⎪ f ( x) = ⎨ x 2 ⎪4 ⎩ x<0 0≤ x<2 x≥2 Testen Sie Ihre Funktion für die Werte x = -2. Jede Spalte in einem Datensatz repräsentiert eine Variable und jede Zeile eine Stichprobe. 16.4990 2. Zum Beispiel um den Mittelwert mean und die Standardabweichung std jeder Spalte zu erhalten: mu = mean(D).0000 69.0000 156.4800 106 .0000 3.8000 3. Nun können Sie viele von MATLAB's Analysefunktionen auf diesen Datensatz anwenden.0000 170.4000 1. Vektoren und Felder Die folgenden Abschnitte zeigen Ihnen mehr über den Umgang und die Arbeit mit Matrizen und Vektoren in Zusammenhang mit Begriffen der linearen Algebra und Statistik.0 16 Matrizen.1000 2.2000 134 201 156 148 170 3.5 7.2000 3. Als Beispiel betrachten wir einen Datensatz mit drei Variablen: Gewicht Herzschlagzahl Übungsstunden pro Woche Nach fünf Beobachtungen schaut das Ergebnisfeld vielleicht wie folgt aus: D = [ 72 81 69 82 75 D = 72.6303 25.0000 75.1 2.2107 Beispiel 16.0000 148. n)-te Element ist die m-te Stichprobe für die n-te Variable.8000 sigma = 5.0000 201.2 3.MATLAB V3.4 1.0000 134.1 (Beispiel_mean_std) Um eine Liste aller statistischen Analysefunktionen in MATLAB zu erhalten geben sie 161.0000 82. Das (m.1 Multivariate Daten MATLAB verwendet Spalten für multivariate statistische Daten.0000 81. die Herzschlagzahl und die Übungsstunden pro Woche des ersten Patienten.2 ] Die erste Zeile enthält nacheinander das Gewicht.5000 7. die zweite Zeile enthält die Daten für den zweiten Patienten usw. sigma = std(D) mu = 75. sum .One-dimensional digital filter.Histogram. Sound and audio. fftn . prod .N-dimensional discrete Fourier Transform. fft2 . Filtering and convolution. readsnd . fft .Largest component.Difference and approximate derivative. Fourier transforms. conv .Read Microsoft WAVE (". filter .Cumulative sum of elements. cumtrapz . Audio file inport/export. trapz . ifftn . speak . std . recordsound . auread .Standard deviation. max .Sort in ascending order.Histogram count.Two-dimensional convolution. convn .au") sound file. sound . deconv .Sound capabilities (Macintosh only). cov .Product of elements. var . sortrows . lin2mu .Read SND resources and files (Macintosh only).Two-dimensional discrete Fourier transform.Two-dimensional digital filter.Sort rows in ascending order. writesnd . cumprod .Inverse discrete Fourier transform. histc .Trapezoidal numerical integration.Autoscale and play vector as sound. Finite differences. ifft2 . 107 .Smallest component. del2 . wavread . hist .Discrete Fourier transform.Cumulative trapezoidal numerical integration.Record sound (Macintosh only).wav") sound file. sort .au") sound file. Correlation.Variance. conv2 .MATLAB help datafun ein.Deconvolution and polynomial division.N-dimensional inverse discrete Fourier Transform. V3.Convolution and polynomial multiplication. wavwrite .Shift DC component to center of spectrum.Discrete Laplacian. min . soundsc .Approximate gradient.Cumulative product of elements.Write NeXT/SUN (".Write Microsoft WAVE (". Data analysis and Fourier transforms.Inverse FFTSHIFT. auwrite . gradient . corrcoef .Read NeXT/SUN (".Linear trend removal. ifftshift .Convert linear signal to mu-law encoding.N-dimensional convolution. mean .Play vector as sound.Write SND resources and files (Macintosh only). median . fftshift .Convert input string to speech (Macintosh only).Sum of elements. filter2 . ifft .Correlation coefficients.Angle between subspaces.Two-dimensional inverse discrete Fourier transform. diff .Average or mean value. detrend . subspace . cumsum .Median value.Covariance matrix. soundcap .wav") sound file.0 Basic operations. MATLAB Beispiel 16.2 (Beispiel_analysefunk) Falls Sie die Statistic Toolbox implementiert haben, geben Sie help stats Beispiel 16.3 (Beispiel_stat_toolbox) ein, um die zusätzlichen Analysefunktionen dieser Toolbox kennen zu lernen. V3.0 16.2 Verwendung von Skalaren Matrizen und Skalare können auf verschiedene Arten und Weisen kombiniert werden. Zum Beispiel kann ein Skalar zu einer Matrix elementweise addiert oder subtrahiert werden. Der durchschnittliche Wert aller Elemente unseres magischen Quadrats A ist 8.5, so dass B = A-8.5 eine Matrix B erzeugt, deren Spaltensummen alle 0 ergeben. B = 7.5 -3.5 0.5 -4.5 sum(B) ans = 0 0 0 0 Beispiel 16.4 (Beispiel_skalaren) Die mathematisch korrekte Schreibweise wäre B = A–8.5*ones(size(A)) wobei ones(size(A)) eine Matrix aus Einsen darstellt, die das Format von A hat. Da die KurzSchreibweise B = A – 8.5 aber keine Verwechslung zulässt, ist sie in MATLAB erlaubt. Man kann auf diese Weise auch Teilbereichen einer Matrix skalare Werte zuweisen. So setzt z.B. B(1:2,2:3) = 0 den angegebenen Bereich in der Matrix B auf Null. B = 7.5 -3.5 0.5 -4.5 0 0 -2.5 6.5 0 0 -1.5 5.5 4.5 -0.5 3.5 -7.5 -5.5 1.5 -2.5 6.5 -6.5 2.5 -1.5 5.5 4.5 -0.5 3.5 -7.5 Beispiel 16.5 (Beispiel_one_size) 108 MATLAB V3.0 109 MATLAB V3.0 16.3 Logische Indizierung Felder, die von logischen und relationalen Operationen erzeugt werden, können als Verweise auf Teilfelder dienen. Feldelemente ungleich 0 stehen für „wahr“, Nullen für „falsch“. Nehmen Sie an, X ist eine beliebige Matrix oder ein Vektor und L ist ein Feld im selben Format wie X. Mit X(L) werden diejenigen Elemente von X herausgegriffen, in deren Positionen Elemente von L ungleich 0 sind. Beispiel: Angenommen, Sie haben die folgende Datenreihe vorliegen: x = [2.1, 1.7, 1.6, 1.5, NaN, 1.9, 1.8, 1.5, 5.1, 1.8, 1.4, 2.2, 1.6, 1.8] NaN ist ein Kennzeichnen für eine fehlende Stichprobe. Um fehlende Daten mit Hilfe von logischer Indizierung zu löschen, kann man die logische Funktion finite verwenden. finite(x) ist „wahr“ für alle endlichen Zahlenwerte und „falsch“ für NaN und Inf. L = finite(x); x = x(L) entfernt das NaN-Element aus x: x = 2.1 1.7 1.6 1.5 1.9 1.8 1.5 5.1 1.8 1.4 2.2 1.6 1.8 Diese Art der Indizierung kann auch direkt in einem Schritt erfolgen, ohne dass explizit ein Feld L erzeugt wird: x = x(finite(x)) hätte die gleiche Wirkung gehabt. Nun gibt es noch eine Stichprobe, die etwas von den anderen abweicht: 5.1 ist ein „Ausreißer“. Der folgende Ausdruck löscht Ausreißer. In unserem Beispiel wollen wir diejenigen Elemente entfernen, die mehr als die dreifache Standardabweichung vom Mittelwert entfernt sind. x = x( abs(x-mean(x)) <= 3*std(x) ) x = 2.1 1.7 1.6 1.5 1.9 1.8 1.5 1.8 1.4 2.2 1.6 1.8 Die Relation < wird in MATLAB wie in anderen Programmiersprachen durch <= ausgedrückt. Angewandt auf Matrizen wirkt sie elementweise. Beachten Sie, dass in unserem Beispiel intern ein Vektor L = abs(x-mean(x)) <= 3*std(x) erzeugt wurde, der in all denjenigen Positionen eine 1 enthält, in denen die angegebene Bedingung erfüllt ist, und sonst nur aus Nullen besteht. Mehr über Relationen erfahren Sie im nächsten Kapitel. Ein weiteres Beispiel ist die Markierung der Primzahlen in Dürers magischem Quadrat. Alle anderen Matrixelemente wollen wir aus A entfernen. Hierzu verwendet man die logische Funktion isprime folgendermaßen A(~isprime(A)) = 0 A = 0 5 0 0 3 0 0 0 2 11 7 0 13 0 0 0 110 welche in A gefunden wurden. wird dabei die eindimensionale Indizierung verwendet. in allen anderen Positionen eine 0.MATLAB Beispiel 16. entsteht ans = 5 3 2 11 7 13 k kann also als Indexvektor bei einem Zuweisungsausdruck verwendet werden. Das Folgende Kapitel beschäftig sich genauer mit der Funktion find. 16. Also werden durch A(L) diejenigen Positionen von A ausgewählt. die in allen Primzahl-Positionen von A eine 1 enthält.6 (Beispiel_isprime) V3. k = 2 5 9 10 11 13 Beispiel 16. In seiner einfachsten Form liefert find einen Spaltenvektor von Indizes zurück. Für das Benutzen dieser Funktion ist das Verständnis der logischen Indizierung Gundlage.4 Die find Funktion Die find-Funktion legt die Indizes von Elementen eines Feldes fest. Um etwa alle Primzahlen in A zu löschen kann man schreiben A(k) = NaN und erhält A = 0 NaN 0 0 NaN 0 0 0 NaN NaN NaN 0 NaN 0 0 0 Beispiel 16. Der Operator ~ („not“) invertiert diese Wahrheitswerte: In der intern erzeugten Matrix L = ~isprime(A) stehen überall dort Einsen.8 (Beispiel_find_funk_2) Die Matrixstruktur von A bleibt bei diesem Vorgehen erhalten. und Nullen in den PrimzahlPositionen. welche bestimmten logischen Bedingungen unterliegen. den wir aber gerade noch zum Zeilenvektor transponiert haben. Beispiel: k = find(isprime(A))' ermittelt die Positionen der Primzahlen im magischen Quadrat. schreiben Sie einfach Primzahlen = A(k) Da A spaltenweise indiziert wird. Folgerichtig wäre auch k ein Spaltenvektor.7 (Beispiel_find_funk) Wie Sie sehen. wo das entsprechende Element von A keine Primzahl ist. die keine Primzahl enthalten. Um die Primzahlen. in der durch k festgelegten Reihenfolge auszugeben. 111 .0 Die Funktion isprime(A) liefert eine Matrix im Format von A. Die Elemente einer Matrix A werden einfach Spalte für Spalte fortlaufend durchnummeriert. 3 (loesung_35) 4.1 (loesung_33) 2. falls möglich.5 sind. Wir betrachten die folgende Matrix A: 0. B.3⎥ ⎥ ⎢ ⎢ 0. ⎥ ⎢ ⎣5 − 2 7⎦ ⎢ 1 − 2 − 3⎥ ⎦ ⎣ Berechnen Sie.3 ⎥ ⎥ ⎢ A = ⎢− 0.4 (loesung_36) 112 .5 7.2 (loesung_34) 3.4 3.► Berechnen Sie mit den Matrizen A.5 Übungsaufgaben 1. BA. ⎡1 3 ⎤ A = ⎢ 2 4⎥ ⎥ ⎢ ⎢3 1 ⎥ ⎦ ⎣ A+B a) B + C b) DA c) 2A . C und D folgende Matrizenalgebra.4 − 4.3 4. AB. Lösung 16.1 ⎤ ⎡ 5.7 ⎥ ⎦ ⎣ Geben Sie den Rang dieser Matrix an.3B d) A T e) C 2 ⎡− 1 2 ⎤ B = ⎢ 4 − 2⎥ ⎥ ⎢ ⎢ 7 − 1⎥ ⎦ ⎣ ⎡ 1 5⎤ C=⎢ ⎥ ⎣− 5 3⎦ ⎡ 4 3 − 2⎤ D = ⎢1 0 5⎥ ⎥ ⎢ ⎢2 − 1 6 ⎥ ⎦ ⎣ Lösung 16.MATLAB V3. Lösung 16. dann mit Matlab nachprüfen).0 16. deren Matrixelemente 5.5 ⎢ 9.0 5.0 ⎥ ⎢ 5.6 − 4.6 9. ► ⎡ 2 − 2 − 4⎤ ⎡1 0 3⎤ ⎢ Gegeben seien die beiden Matrizen A = − 1 3 4 ⎥ und B = ⎢ ⎥. Erzeugen Sie die folgende Matrix: 4 8 16 32 ⎤ ⎡1 2 ⎢2 4 8 16 32 64 ⎥ ⎥ ⎢ ⎢ 4 8 16 32 64 128 ⎥ A=⎢ ⎥ ⎢ 8 16 32 64 128 256 ⎥ ⎢16 32 64 128 256 512 ⎥ ⎥ ⎢ ⎢32 64 128 256 512 1024⎥ ⎦ ⎣ Lösung 16. A 2 und B 2 (Vorher überlegen.4 5. Wie kann man in MATLAB die Größe von A bestimmen? Geben Sie alle Indizes an.5 3. ⎥ ⎢ ⎢3 − 5 2⎥ ⎦ ⎣ Zeigen Sie. Es sei A die folgende Matrix: A = 3 6 2 ⎥ ⎢ ⎢0 2 4⎥ ⎦ ⎣ Bestimmen Sie die drei Eigenwerte der Matrix A. Berechnen Sie det( A − λI ) und zeigen Sie. Berechnen Sie die Matrix X aus folgender Gleichung: V3. Zeigen Sie die Gültigkeit von AQ = QD. Bestimmen Sie zu jedem Eigenwert einen zugehörigen Eigenvektor. daß dies für die Eigenwerte Null ist. und D die Diagonalmatrix mit den Eigenwerten in der Diagonalen. wobei Q diejenige Matrix ist. Lösung 16. daß B 3 − 2B 2 + 5B − 3I = 0 . Berechnen Sie die Inversen der folgenden Matrizen: ⎡2 ⎢3 A=⎢ ⎢2 ⎢ ⎣4 4 3 2⎤ 6 5 2⎥ ⎥ 5 2 − 3⎥ ⎥ 5 14 14 ⎦ 3 3⎤ ⎡3 3 ⎢3 − 5 1 1⎥ 1 ⎥ B= ⎢ 6 ⎢3 1 − 5 1 ⎥ ⎥ ⎢ 1 − 5⎦ ⎣3 1 ⎡1 ⎢2 C=⎢ ⎢− 3 ⎢ ⎣4 0 1 5 2 0 0 1 3 0⎤ 0⎥ ⎥ 0⎥ ⎥ 1⎦ Lösung 16.8 (loesung_40) ⎡0 1 0 ⎤ ⎥ ⎢ 9.6 (loesung_38) 7.7 (loesung_39) ⎡4 3 0⎤ ⎥ ⎢ 8.MATLAB 5. Lösung 16.0 ⎡ 5 0 0⎤ ⎡3 2 1⎤ ⎢1 0 2 ⎥ ⋅ X = ⎢ 3 7 0 ⎥ ⎥ ⎢ ⎥ ⎢ ⎢10 15 5⎥ ⎢ 4 1 3⎥ ⎦ ⎣ ⎦ ⎣ Lösung 16.► Berechnen Sie a) ⎡1 ⎢7 det ⎢ ⎢ 4 ⎢ ⎣− 2 0 3 − 2⎤ 5 4 3⎥ ⎥ 1 −6 2 ⎥ ⎥ 3 0 9 ⎦ b) 5 2 ⎡4 ⎢3 9 5 det ⎢ ⎢− 2 − 3 − 1 ⎢ 5 8 ⎣1 1⎤ 7⎥ ⎥ 0⎥ ⎥ 2⎦ Lösung 16. in deren Spalten die Eigenvektoren stehen. Berechnen Sie das charakteristische Polynom der Matrix B = 0 0 1 .9 (loesung_41) 113 .5 (loesung_37) 6. 4. Und so erzeugt A = magic(4).:)). In den letzten beiden Beispielen kann das (m.0 17 Andere Datenstrukturen Dieses Kapitel führt Sie in erweiterte Datenstrukturen von MATLAB ein. n. for k = 1:24 M(:. rand oder randn erzeugt werden. die Temperatur in einem Zimmer.2 (Beispiel_normvert_zufallsz) erzeugt alle 4! = 24 Permutationen der Zahlen 1:4.:. ones. MATLABs und Dürers Version des magischen Quadrates der Ordnung 4 unterscheiden sich durch eine Vertauschung von 2 Spalten.3 (Beispiel_k_te_permut) eine Folge von 24 magischen Quadraten in einem dreidimensionalen Feld M. Sie können durch die Funktionen zeros. k) erreicht werden.B.B. M = zeros(4. Es kann natürlich auch eine Folge von Matrizen A(k) oder eine zeitabhängige Matrix A(k) darstellen.:). end Beispiel 17.4. wie z.p(k.MATLAB V3. Unterschiedliche magische Quadrate können durch weitere Vertauschung von Spalten erzeugt werden.24). Das Format von M ist size(M) 114 . Die k-te Permutation ist der Zeilenvektor p(k. Der Ausdruck p = perms(1:4). Solch ein dreidimensionales Feld kann z. Beispiel: R = randn(3. Beispiel 17.1 (Beispiel_mehrd_felder) erzeugt ein Feld im Format 3x4x5 mit 60 normalverteilten Zufallszahlen.1 Mehrdimensionale Felder Als mehrdimensionale Felder werden in MATLAB Felder mit mehr als 2 Indizes bezeichnet. n)-te Element der k-ten Matrix durch A(m. Es beinhaltet: Mehrdimensionale Felder Zellenfelder Zeichen und Text Strukturen 17. Daten aus der realen dreidimensionalen Welt repräsentieren. Beispiel 17.5).k) = A(:. . . .:.3) = ans(:. . . Im Prinzip ist das zwar eine Matrix. .22) ans = 16 5 9 3 10 6 2 11 7 13 8 12 4 15 14 1 Der Ausdruck sum(M. . . Also ist z. . .0 ans = 4 4 24 Beispiel 17. . . ausgegeben wird aber 24-mal derselbe Zeilenvektor. Warum? ans(:.MATLAB V3.B.d) berechnet Summen über den Index Nr. ans(:.4 (Beispiel_size_m) M= 16 5 9 4 2 11 7 14 3 10 6 15 13 8 12 1 13 3 13 8 12 1 3 10 6 15 13 2 11 7 14 2 2 16 5 9 4 3 16 5 9 4 16 5 9 4 Es zeigt sich.1) ein dreidimensionales Feld im Format 1x4x24. 34 34 34 .:.2) = ans(:. . d im Feld M.:. .:. . . . . sum(M. . dessen Elemente als Summen über den ersten Index von M entstehen.23) = 115 . . .:. 34 34 34 . . dass die 22ste Matrix in dieser Reihe die Dürer-Matrix ist: M(:.1) = 34 34 34 . . 34 34 34 . 24) = Beispiel 17.5 (Beispiel_index_v_m) Summe über die erste Dimension. Anders bei Summation über den 2. Formal handelt es sich bei sum(M.:. MATLAB gibt drei. deren einzelne Matrizen sich durch Variation der ersten beiden Indizes ergeben. Index nur einen einzigen Wert an.MATLAB 34 34 34 34 34 34 34 34 V3. ans(:.2) Summe über die zweite Dimension. Index. In unserem Fall nimmt der 1.0 ans(:. also erscheint unser dreidimensionales Feld als Folge von Zeilenvektoren. sum(M. ergibt ein Feld im Format 4x1x24.1) = 34 34 34 116 .1) immer noch um ein dreidimensionales Feld. Mit der gleichen Argumentation wird diesmal eine Folge von 24 Spaltenvektoren ausgegeben.und mehrdimensionale Felder als MatrixFolgen aus. da 3 unabhängige Indizes vorliegen.:. .:. .0 ans(:.:. . . 34 34 34 34 ans(:. . .23) = 117 . . V3.24) = 34 34 34 34 Beispiel 17. . .2) = 34 34 34 34 ans(:.3) = 34 34 34 34 . .6 (Beispiel_sum_m_1) Schließlich liefert S=sum(M.:.:.3) .MATLAB 34 ans(:. passt explizit in eine Zeile. Die geschweiften Klammern werden außerdem in Verbindung mit Indizes benutzt. 1. die ausgegeben wird wie folgt. um auf den Inhalt unterschiedlicher Zellen zuzugreifen. An dieser Stelle noch mal zwei Punkte. Diesmal hat die Matrix-Folge als einziges Element eine 4x4-Matrix S. Ein Zellenfeld aus leeren Matrizen kann durch den cell-Befehl erzeugt werden. Auf diese Weise ermöglicht es MATLAB z.0 Summe über die dritte Dimension. die auch unterschiedliche Formate haben können. die drei Variablen C{1} = A. Häufiger werden Zellenfelder jedoch durch eine Ansammlung unterschiedlicher Daten in geschweiften Klammern { } erzeugt. C{2} = sum(A).7 (Beispiel_matrix_s) 17. die man nicht vergessen sollte. Hier ein einfaches Beispiel zum erzeugen eines Zellenfeldes: C = {A sum(A) prod(prod(A))} Hier wird also ein 1x3-Zellenfeld generiert oder wenn man so will. benutzt man Indizes in geschweiften Klammern. weil nur Formatangaben der Zellen erfolgen und lediglich die letzte Zelle in Form eines Zahlenwertes erscheint. und C{3} = prod(prod(A)). erscheint C = [4x4 double] [1x4 double] [20922789888000] Diese Darstellung ist ungewöhnlich. Zum Beispiel liefert C{1}. welche mit den gegebenen Programmierwerkzeugen leicht handhabbar sind. dass diese Variablen durch Indizes unterschieden werden. das magische Quadrat A und C{3} den Wert 16!. 118 . die Summe aller 24 Matrizen. Wenn C ausgegeben wird. Das Feld wird deshalb so komprimiert in einer Zeile dargestellt. den Zeilenvektor seiner Spaltensummen und das Produkt aller Elemente von A. Im Endeffekt sind Zellenfelder Felder von Variablen denen man wie anderen Variablen auch jeden beliebigen MATLAB-Wert zuweisen kann. weil die Zellen sowieso nicht in ein gemeinsames Schema passen. S = 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 Beispiel 17.MATLAB V3.2 Zellenfelder Zellenfelder sind in MATLAB mehrdimensionale Felder. Um den Inhalt einer der Zellen zu kennzeichnen. Der Vorteil ist. ein Feld S im Format 4x4x1. Nur der dritte Wert. deren Elemente Kopien von anderen Feldern sind. B verschiedenste Variablen in einer Schleife zu durchlaufen. welche auch als Feld gehandhabt werden können. Die drei unterschiedlich großen Zellen enthalten das magische Quadrat A. 16!. for n = 1:8 M{n} = magic(n). Sie werden in einem Zellenfeld M gespeichert. Zum Beispiel erzeugt folgender MATLAB-Code eine Folge von Magischen Quadraten in ansteigendem Format. n) erlaubt natürlich beliebige Anordnung der Zellen. 119 .9 (Beispiel_cell) Die folgende Skizze soll das Zellenfeld M veranschaulichen.8 (Beispiel_zellenfelder) Die Vereinbarung cell(m. end M Weil die Zellen von M in einer Spalte M angeordnet sind. Unsere Dürer Matrix A entsteht diesmal als M{4} ans = 16 5 9 4 2 11 7 14 3 10 6 15 13 8 12 1 Beispiel 17. Wenn im Feld A etwas verändert wird. Dreidimensionale Felder können zum Speichern von Folgen von Matrizen gleichen Formats verwendet werden.1). Zellenfelder enthalten Kopien von Feldern und keine Zeiger auf diese Felder. M = cell(8. wird ausgegeben M = [ 1] [2x2 double] [3x3 double] [4x4 double] [5x5 double] [6x6 double] [7x7 double] [8x8 double] Beispiel 17.MATLAB V3. so ändert sich nichts in C.0 2. Zellenfelder können auch zum Speichern von Matrix-Folgen mit unterschiedlichen Formaten Verwendung finden. Das Ergebnis ist a = 72 97 108 108 111 Beispiel 17. 120 . Beispiel: s = 'Hallo' s = Hallo Beispiel 17. nicht im Gleitpunktformat. Intern werden die Zeichen als ganze Zahlen gespeichert.3 Zeichen und Text Um Text in MATLAB zu kennzeichnen. s ist ein Zeichenfeld im Format 1x5.10 (Beispiel_hochkomma) Das Ergebnis ist nicht die gleiche Art von Matrix wie wir sie bisher kennen gelernt und verwendet haben.12 (Beispiel_ausdruck) macht die Umwandlung rückgängig. werden Hochkommas verwendet.MATLAB M= 64 9 17 40 32 41 49 8 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 16 2 3 13 8 3 4 8 1 4 1 3 2 1 5 9 1 6 7 2 6 2 55 47 26 34 23 15 58 3 54 46 27 35 22 14 59 61 12 20 37 29 44 52 5 60 13 21 36 28 45 53 4 6 51 43 30 38 19 11 62 7 50 42 31 39 18 10 63 57 16 24 33 25 48 56 1 V3.11 (Beispiel_ascII_code) Der Ausdruck s = char(a) s = Hallo Beispiel 17. Der Ausdruck a = double(s) wandelt das Zeichenfeld in eine Matrix aus Gleitpunktzahlen um. Dabei wird der ASCII-Code als Grundlage verwendet.0 17. .-. so kommt es auf den aktuell verwendeten Zeichensatz an.) Diese Nummern werden in einem 6x16-Feld angeordnet durch F = reshape(32:127. Die normal darstellbaren Zeichen im ASCII-Zeichensatz werden durch die Nummern von 32:127 repräsentiert..16. Die darstellbaren Zeichen des erweiterteten ASCII-Zeichensatzes werden durch F+128 repräsentiert. Dann erhalten Sie folgende Ausgabezeilen ans = !"#$%&'()*+. welche Zeichen Sie darstellen./ 0123456789:. h = [s. (Nummern kleiner als 32 stellen nichtdarstellbare Kontrollzeichen dar.0 Das Umwandeln von Zahlen in Zeichen bietet eine gute Möglichkeit.. s = 'Hallo'. Durch aneinanderreihen in eckigen Klammern werden längere Zeichenketten erzeugt. ' Leute!'] führt zu h = Hallo Leute! Beispiel 17. Versuchen Sie die Schriften Symbol und Wingdings. Geben sie die Zeilen char(F) char(F+128) ein und verändern Sie die Einstellung des Zeichensatzes in Ihrem MATLAB-KommandoFenster durch die Menüpunkte Tools / Font.<=>? @ABCDEFGHIJKLMNO PQRSTUVWXYZ[\]^_ `abcdefghijklmno pqrstuvwxyz{|}~ ans = ¡¢£¤¥¦§¨©ª«¬-®¯ °±²³´µ¶·¸¹º»¼½¾¿ ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏ ÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞß àáâãäåæçèéêëìíîï ðñòóôõö÷øùúûüýþÿ Beispiel 17.MATLAB V3. wenn sie installiert sind.6)'.13 (Beispiel_tools_font) Textvariablen kann man verbinden.14 (Beispiel_laeng_zeichenk) Der Ausdruck 121 . die unterschiedlichen zur Verfügung stehenden Zeichensätze auszuprobieren. die Ihr Computer zur Verfügung hat. Werden diese Nummern als Zeichen interpretiert. '} erzeugt ein 5x1 Zellenfeld.'speichert'.15 (Beispiel_ausdruck_2) Man beachte: Beim ersten Ausdruck ist ein Leerzeichen vor dem L nötig. C = '1' 'Byte' 'speichert' 'ein' 'Textsymbol.'speichert'.'ein'. Alternativ kann man den Text in einem Zellenfeld abspeichern („Ausgefranztes Feld“). Die Funktion char akzeptiert jegliche Anzahl von Zeilen und fügt automatisch Leerzeichen an jede Zeile um sie alle gleich lang zu machen.Die resultierenden Felder sind jedes mal Zeichenfelder. und beim zweiten Ausdruck müssen beide Zeichenketten gleich lang sein.'ein'.') erzeugt zum Beispiel ein aufgefülltes 5x9-Feld aus gleich langen Zeilen.0 Beispiel 17. S = 1 Byte speichert ein Textsymbol.16 (Beispiel_char) In den ersten vier Zeilen sind genügend viele Leerzeichen automatisch von der Funktion angehängt worden. S = char('1'.17 (Beispiel_ausgef_feld) Man kann ein Zeichenfeld in ein Zellenfeld umwandeln durch C = cellstr(S) C = 122 .'Byte'. Beispiel 17.MATLAB v = [s. Zu Auffüllen eines Zeichenfeldes benutzt man char. C = {'1'. damit die Speicherung in einer Matrix erfolgen kann! .'Textsymbol. 'Leute'] führt zu v = Hallo Leute V3. h ist ein Zeilenvektor im 1x11-Format und v ist eine 2x5-Matrix.'Byte'.' Beispiel 17. um alle Zeilen gleich lang zu machen. Um Textinhalte mit unterschiedlicher Längen zu manipulieren hat man zwei Möglichkeiten: Ein aufgefülltes Zeichenfeld oder Ein Zellenfeld aus Zeichenketten. um die beiden Wörter zu trennen.'Textsymbol. name = 'Robert Wittl'.B. S.' Beispiel 17.0 17.punkte = 91. oder auch durch einen einzigen Ausdruck anhängen. Diese Komponenten werden nicht über Indizes. denen man jederzeit weitere Elemente hinzufügen kann.MATLAB '1' 'Byte' 'speichert' 'ein' 'Textsymbol. sondern über Komponentennamen angesprochen. Beispiel 17.note = '2+'. Beispiel: S. wie die dritte Struktur 123 .name = 'Ulf Wilke'.19 (Beispiel_zellenf_umwand) V3.punkte = 83. erzeugt eine skalare Struktur mit drei Komponenten.4 Strukturen Strukturen sind Felder mit Komponenten unterschiedlichen Typs. S(2). S(2). werden auch Strukturen immer von vorneherein als Feldelemente betrachtet. S. Sie trägt den Index 2 und lautet z. Eine zweite Struktur kann man S elementweise hinzufügen.18 (Beispiel_zeichenf_umwand) und umgekehrt ein Zellenfeld in ein aufgefülltes Zeichenfeld S = char(C) S = 1 Byte speichert ein Textsymbol. Sie wird ausgegeben durch den Aufruf S S = name: 'Robert Wittl' punkte: 83 note: '2+' Beispiel 17. Jedes solche Feldelement ist eine komplette Struktur mit den vorgegebenen Komponenten.20 (Beispiel_skalare_struk) Wie alle anderen Daten in MATLAB.note = '1-'. S(2). punkte.punkte] 124 .0 Die Ausgabe eines Strukturen-Feldes S erfolgt nur summarisch. Sie basieren alle auf der Schreibweise von durch Kommas getrennten Listen.punkte.'punkte'.22 (Beispiel_komp_strukt) entspricht dies im Einzelnen der Liste S(1).21 (Beispiel_struk_feld_s) Es gibt mehrere Wege.MATLAB S(3) = struct('name'.'Hans Wagner'.punkte. Wenn Sie eintippen S. da solch ein Feld zu komplex aufgebaut ist: S S = 1x3 struct array with fields: name punkte note Beispiel 17. S(2).23 (Beispiel_komp_strukt_2) Ohne Zusätze macht diese Liste wenig Sinn. [S.70.'3') zeigt. S(2).'note'.punkte ans = 83 ans = 91 ans = 70 Beispiel 17. denn es werden nur die drei punkteKomponenten nacheinander der Variablen ans zugewiesen und ausgegeben. Komponenten einer Struktur in andere Feldtypen zu überführen. Wenn Sie aber eine Komponente des Strukturen-Feldes in eckige Klammern setzen. V3.punkte ans = 83 ans = 91 ans = 70 Beispiel 17.punkte.punkte] ans = 83 91 70 entspricht dies dem Zeilenvektor [S(1). S(3). S(3). 26 (Beispiel_ans) so entsteht ein Zellenfeld ans im Format 1x3. welches die drei Namen beinhaltet. um so ein aufgefülltes Zeichenfeld ans zu erzeugen ans = 'Ulf Wilke' 'Hans Wagner' Robert Wittl Ulf Wilke Hans Wagner Beispiel 17.name ans = Robert Wittl ans = Ulf Wilke ans = Hans Wagner Beispiel 17.MATLAB mit den Inhalten der 3 Elemente.0 Beispiel 17.name) die char-Funktion mit drei Argumenten auf.24 (Beispiel_punkte_komp) Das Gleiche gilt für S.25 (Beispiel_punkte_komp_2) nacheinander werden die Inhalte ans zugewiesen. ans = 83 91 70 V3. Schließlich ruft char(S.name} ans = 'Robert Wittl' Beispiel 17.27 (Beispiel_char_funk) 125 . Wird der Ausdruck aber in geschweiften Klammern geschrieben {S. lassen sich die Matrizen X und Y leicht mit Hilfe der meshgrid– Funktion erzeugen.).Y. Als Parameter werden einfach die Rastervektoren angegeben (s.und Flächen-Graphiken MATLAB definiert eine Fläche durch z-Koordinaten über einem Gitter in der xy-Ebene. surf zeigt die Verbindungslinien mit eingefärbten Zwischenräumen. Anschließend werden diese Matrizen benutzt.5:8). so erhält man mit Z = f(X. 18. generiert man zwei Matrizen X und Y. Benachbarte Raumpunkte werden durch Linien verbunden.2 Visualisierung von Funktionen zweier Variabler Um eine Funktion z = f(x. r = sqrt(X. Die Funktionen mesh und surf stellen Oberflächen dreidimensional dar. 18. Oberflächen und anderen Graphikobjekten zur Verfügung.^2) +eps. mesh erzeugt ein 3D-Gitter aus farbigen Linien./r. Y) die Matrix der z-Koordinaten über dem Raster in der xy-Ebene.u.Y] = meshgrid(-8:.y) von zwei Variablen graphisch darzustellen.0 18 Manipulation von Graphiken MATLAB stellt einige Funktionen für die Erzeugung und Manipulation von Linien. Dieses Graphiksystem nennt sich Handle Graphics®. welche das gleiche Format wie X besitzt. Beispiel: Um die rotationssymetrische Funktion sin(r)/r mit r = Sie folgendes ein: [X. geben 126 . X enthält dabei nur die x-Koordinaten und die Matrix Y.MATLAB V3. mesh(X. um die Funktion auszuwerten und graphisch darzustellen.Z) x 2 + y 2 graphisch darzustellen. welche die Koordinaten der Rasterpunkte in der xy-Ebene enthalten.und y-Richtung übereinstimmt.^2 + Y. Wenn die Rasterung in x. Sind X und Y berechnet.1 Gitter. genügt sogar ein einziger Parametervektor in meshgrid. Z = sin(r). Soll die Funktion über einem rechteckigen Gebiet dargestellt werden. die dazugehörigen y-Koordinaten. dass die Datei durer. Durch Addition der kleinst möglichen Zahl eps wird vermieden.MATLAB V3. die als Farbpaletten-Index für map dienen. Die Anweisungsfolge image(X) colormap(map) 127 .3 Bilder Zweidimensionale Felder können als Bilder dargestellt werden. wobei die Feldelemente die Helligkeit oder Farbe der Bildpunkte festlegen.mat im Verzeichnis demo eine 648x509-Matrix X und eine 128x3-Matrix map enthält. Die Elemente von X sind ganze Zahlen zwischen 1 und 128. 18. dass dieser undefinierte Funktionswert im Raster vorkommt. Der Nullpunkt liegt genau im Mittelpunkt des Rasters und ausgerechnet an dieser Stelle hätte unsere Funktion den undefinierten Wert 0/0.1 (Beispiel_meshgrid) In unserem Beispiel ist r der Abstand vom Nullpunkt.0 Beispiel 18. load durer whos zeigt. welcher Wert der Matrix X in welchem Farbton darzustellen ist. Achsenobjekte existieren wiederum nur innerhalb von Bildobjekten. dass keine Achsenoptimierung zu machen ist (welche das Bild verzerren würde) fügt man noch den Befehl axis image ein. Das Root Objekt wird von MATLAB automatisch zum Beginn einer Sitzung erzeugt. Achsenobjekte definieren einen Bereich innerhalb eines Abbildungsfensters und richten Unterobjekte innerhalb dieses Bereiches aus. auch für schwarz/weiß-Ausgabegeräte. Jedoch unterstützen nicht alle Postscript-Drucker den Level 2. Linienobjekte benötigen z.eps Es ist wichtig zu wissen. Abbildungsobjekte sind Fenster auf dem Root-Bildschirm. Achsenobjekte als Bezugsrahmen. Damit MATLAB weis. welchen Standard Ihr Drucker unterstützt. sowie das print-Kommando drucken MATLAB-Graphiken.MATLAB V3. Das Resultat kann direkt zum Drucker geschickt werden oder in einer angegebenen Datei gespeichert werden. 128 . Radio-Buttons und Sliders sind z. bevor sie das printKommando verwenden. von M-Files aus zu drucken. Uicontrol-Objekte (User Interface Control Objects) dienen zur Kontrolle und führen eine Funktion aus. Der Befehl image gibt also die Anweisung. die Matrix X als Bild auszugeben. Die Eingabe colormap(hot) versieht den Kupferstich aus dem 16. Das folgende Kommando sichert den Inhalt des aktuellen Bildfensters als Farb-EncapsulatedLevel 2-Postscript in einer Datei mit dem Namen magicsquare.0 axis image reproduziert Dürers Kupferstich der am Anfang des Skripts gezeigt wurde. steht zur Verfügung. Geben sie load detail ein und benutzen Sie die „Pfeil-nach oben“-Taste auf der Tastatur um das image-. print –descp2 magicsquare. die die Abhängigkeiten der einzelnen Objekte zueinander regelt. Eine Vielfalt von Ausgabeformaten. 18. Jahrhundert mit einer modernen Farbgebung. sobald der Benutzer das Objekt aktiviert. Es gibt 11 Arten von Handle-Graphics-Objekten: Das Root Objekt ist die Spitze der Hierarchie. definiert man mit colormap die zu verwendende Farbpalette.5 Graphische Objekte Graphische Objekte sind die einfachsten Zeichnungselemente in MATLABs Graphik-System. Um MATLAB nun noch mitzuteilen. MATLAB erzeugt eine stufenlose Ausgabe von Oberflächen und Farbverläufen. damit die Achsen gleichmäßig skaliert ausgegeben werden. colormapund axis-Kommando nochmals auszuführen. welche Möglichkeiten Ihr Drucker bietet. inklusive PostScript.4 Drucken von Graphiken Die Print-Option im Datei-Menü. solche Objekte. daher sollten Sie zuerst herausfinden.eps. Level 2-Postscript-Dateien sind generell kleiner und gestatten eine schnellere Druckausgabe als Level 1-Postscript-Dateien. 18. Das print-Kommando bietet mehr Flexibilität in der Art der Ausgabe und erlaubt es Ihnen. Das Print-Menü zeigt eine Dialogbox an.B. Push-Buttons. Funktionen und Text werden immer in schwarz/weiß gedruckt. Ein hochaufgelöstes Bild des Magischen Quadrats ist in einer anderen Datei zu finden. Diese Objekte sind in einer Baumhierarchie organisiert.B. die Sie zwischen den Druckoptionen auswählen lässt. um sich später einen leichteren Zugriff auf Graphische Objekte zu ermöglichen. Lichtobjekte legen Lichtquellen fest. A das Magische Quadrat von Dürer. MATLAB benutzt die Elemente eines rechteckigen Feldes. dabei werden die Feldelemente als Indizes bezüglich einer Farbtabelle verwendet. Sie werden in einem xyz-Raum gezeichnet.0015 75. h = 72.0005 Beispiel 18. Handles in Variablen zu speichern. sind also aus mehreren Objekten zusammengesetzt worden. wenn nichts anderes eingestellt wurde. h ist ein Vektor mit 4 Handles als Komponenten. h(2) auf die zweite usw. Es kann sich bei aufwendigeren Graphiken als sinnvoll erweisen. Alle anderen Objekthandles sind Gleitpunktzahlen. Line-Objekte (Linienobjekte) werden für das zweidimensionale Zeichnen verwendet.. Text-Objekte sind Zeichenketten zur Bildbeschriftung. Patch-Objekte (Flickenobjekte) werden zum Zeichnen von ausgefüllten Polygonen mit Kanten verwendet.2 (Beispiel_rootobjekt) Die Zahlenwerte in diesem Beispiel spielen keine Rolle. Der Handle einer Figur ist eine ganze Zahl die. um sie darzustellen. eine für jede Spalte von A. Surface-Objekte (Oberflächenobjekte) sind dreidimensionale Repräsentanten von Matrizen. entweder mit fest vorgegebenen oder interpolierten Farben. h = plot(A) eine Liniendarstellung aus 4 Linien. z. Ein einzelner Flicken kann mehrere Ansichten haben. als Fensterüberschrift erscheint. Dieser wird als Handle (Griff. Einige Graphiken enthalten mehrere Kurven. MATLAB stellt mehrere Funktionen für den Zugriff auf häufig verwendete Handles zur Verfügung: 129 . Ist z. h(1) beinhaltet den Handle auf die erste Linie.0 Uimenu-Objekte (User Interface Menu Objects) sind in einem Figurenfenster am oberen Rand platziert. die MATLAB-interne Informationen beinhalten. Sie beeinflussen alle Objekte bis hinauf zu den Achsenobjekten.B. 18.6 Umgang mit Objekten Jedes einzelne Graphikobjekt bekommt von MATLAB bei der Erzeugung einen eindeutigen Bezeichner zugewiesen. Der Handle des Rootobjekts ist immer Null. dann erzeugt A = magic(4). Beispiel: nr = figure(3) erzeugt Bildfenster 3 und zeigt die in der Fensterüberschrift an.0005 76.0002 74.MATLAB V3. von denen jedes seinen eigenen Handle hat. sie werden automatisch von MATLAB erzeugt und sind von Mal zu Mal verschieden.B. Henkel) bezeichnet. Jede wird unterschiedlich eingefärbt. Image-Objekte (Bildobjekte) sind zweidimensional. [16 26]. [8 -2 0].0] f = figure ('name'. . plot und surf. liefern den Handle (oder einen Vektor mehrerer Handles) zu jedem dieser Objekte zurück.1 20. Der Funktion wird als Funktionsargument der zu löschende Handle übergeben.9 21. temp) set(gca. Die Ausnahme ist das Root-Objekt. Niedere Funktionen erzeugen einfach eins der elf oben beschriebenen Graphikobjekte. Achsenhandles benötigen.1 22. wenn sie erzeugt werden.4.'Sa'] temp = [21. Alle MATLAB-Funktionen. Objekteigenschaften können durch die Funktionen gesetzt werden.u. die genauso heißt wie das gewünschte Objekt. die Figuren.MATLAB gcf gca gco Get Handle to current figure Get Handle to current axis Get Handle to current object V3. Höhere Funktionen in MATLAB. verwenden sie die Funktion delete (löschen).B. 'Color'. Die Handles der anderen Objekte erhält man. Beispiel: line([1 3 6]. Objekte erzeugt und deren Voreinstellungen überschrieben werden: days = ['Su'.'Fr'. 'position'. verwendet man die set-Funktion. die Funktion figure erzeugt ein Abbildungsobjekt usw.4. welche das Objekt erzeugen.2.7 Funktionen zur Erzeugung von Objekten Die meisten Graphikobjekte können mit einer Funktion erzeugt werden. 'Xtick'. 'Erste axes') a = axes('YLim'.0 Sie können diese Funktionen als Aufrufargumente für andere Funktionen verwenden.4 23. wie z. MATLAB bietet zwei Möglichkeiten die Eigenschaftswerte zu setzen. rufen die benötigten niederen Funktionen zum Zeichnen auf. . 'red') 18.. Zum Beispiel wird das aktuelle Achsenobjekt und all seine "Kinder" mit dem folgenden Befehl gelöscht: delete(gca) 18.'We'. die Objekte erzeugen. welches nur beim Start von MATLAB erzeugt werden kann. 'XTickLabel'. 1:7. days) h = line(1:7.3 23. .B.'Th'.7]) days = Su Mo Tu We Th Fr Sa 130 .2 19. Die folgenden Zeilen zeigen wie z. Sollen sie erst nach der Erzeugung gesetzt werden.'Mo'. Um ein Objekt zu löschen. Zum Beispiel erzeugt die Funktion text ein Textobjekt. [.8 Objekteigenschaften Jedes Objekt besitzt Eigenschaften um seine Darstellung zu kontrollieren.'Tu'. 3 23.4 23. Die Achsen existieren innerhalb der Figur und erhalten voreingestellte Skalierungen. Xtick und XTickLabel festlegt. wobei das „Property“ name auf „Erste axes“ gesetzt wird (wiederzufinden in der blauen Kopfzeile des Ausgabedialoges). 131 .2 19. Das Bildfenster wurde durch die Funktion figure erzeugt. a und h gespeichert. Die drei Objekthandles werden in den Variablen f.1 20 V3.0 Ausgabe des aufgeführten Beispiels. Beachten Sie auch die Funktion axes (im Unterschied zu axis). Für anschließende Veränderungen der Eigenschaften von axes wird einfach die Funktion set wie bereits erwähnt benutzt (vgl.1 f = 2 a = 180 h = 181 22. welche die Bildachsen definiert.9 21.3 (Beispiel_set_funk) In diesem Beispiel ist days ein Textfeld mit den Wochentagkürzeln (in Englisch) und temp ist ein Vektor mit Temperaturen als Komponenten. Beispiel 18. um sie später wieder zu verwenden. den folgenden Abschnitt).MATLAB temp = 21. hierfür werden die voreingestellten Eigenschaften (Default) verwendet. indem sie die „Properties“ YLim. Beispiel: set(h) Color EraseMode: [ {normal} | background | xor | none ] LineStyle: [ {-} | -.4 (Beispiel_set_get) Die Funktion get zeigt alle momentan eingestellten Eigenschaften eines Objekts.0 18.8] (RGB-Werte) und die Linienbreite auf 3.'LineWidth'. MarkerFaceColor: [ {none} | auto ] -or. XData YData ZData ButtonDownFcn Children Clipping: [ {on} | off ] CreateFcn DeleteFcn BusyAction: [ {queue} | cancel ] HandleVisibility: [ {on} | callback | off ] HitTest: [ {on} | off ] Interruptible: [ {on} | off ] Parent Selected: [ on | off ] SelectionHighlight: [ {on} | off ] Tag UIContextMenu UserData Visible: [ {on} | off ] Beispiel 18.8 0.a ColorSpec. ruft man set mit dem Handle als alleinigem Parameter auf. | none ] LineWidth Marker: [ + | o | * | .8]. werden deren Handles benötigt. die Eigenschaftsbezeichnung und dessen neuer Wert angegeben werden. Die Funktion set erlaubt es alle Eigenschaften des angesprochenen Objektes zu verändern.MATLAB V3.9 Set und get Um Objekteigenschaften zu verändern.a ColorSpec.'Color'. Dabei muss der Handle. entspricht hier einem line Element) die Farbe auf [0 0.8 . set(h.[0 .| : | -. | x | square | diamond | v | ^ | > | < | pentagram | hexagram | {none} ] MarkerSize MarkerEdgeColor: [ none | {auto} ] -or.3) verändert im Linienobjekt (Handle h. Um sich eine Liste von allen prinzipiell einstellbaren Eigenschaften eines Objekts anzeigen zu lassen. Beispiel: 132 . MATLAB get(h) Color = [0 0 1] EraseMode = normal LineStyle = LineWidth = [0.5] Marker = none MarkerSize = [6] MarkerEdgeColor = auto MarkerFaceColor = none XData = [ (1 by 7) double array] YData = [ (1 by 7) double array] ZData = [] ButtonDownFcn = Children = [] Clipping = on CreateFcn = DeleteFcn = BusyAction = queue HandleVisibility = on HitTest = on Interruptible = on Parent = [180] Selected = off SelectionHighlight = on Tag = Type = line UIContextMenu = [] UserData = [] Visible = on Beispiel 18.5 (Beispiel_get_funk) V3.0 133 MATLAB V3.0 Um einen speziellen Eigenschaftswert zu erfragen, verwendet man get(h,'Color') ans = 0 0 1 Beispiel 18.6 (Beispiel_get_funk_2) Das Achsenobjekt beinhaltet viele detaillierte Eigenschaftsangaben zur ganzen Graphik. Der Titel ist zum Beispiel eines der Unterobjekte des Achsenobjekts. Man erhält durch folgenden Ausdruck den Wert zu diesem Unterobjekt. t = get(a,'title') Diese Variable kann nun natürlich weiterverwendet werden und verändert auch wieder dem jeweiligen Attribut übergeben werden. set(a,'title', t) Beispiel 18.7 (Beispiel_get_funk_3) Für Namensänderungen macht dies eventuell wenig Sinn, aber um Graphiken oder Werte automatisch anpassen zu können, ist dies eben das Mittel der Wahl. 18.10 Graphische Benutzerschnittstellen (MATLAB – GUI Entwicklung) Es folgt ein einfaches Beispiel, das zeigt, wie mit Handle Graphics eine Benutzerschnittstelle erzeugt werden kann. Der Ausdruck b = uicontrol('Style', 'pushbutton', 'Units', 'normalized',... 'Position', [.5 .5 .2 .1], 'String', 'click here'); erzeugt einen Schaltknopf in der Mitte eines Bildfensters und gibt einen Handle zurück. Wenn auf den Button geklickt wird passiert aber noch nichts. Der Ausdruck s = 'set(b,''Position'',[.8*rand .9*rand .2 .1])'; erzeugt eine Zeichenkette, die ein Kommando enthält, welches die Position des Buttons verändert. Wiederholtes Ausführen von eval(s) verschiebt den Button an unterschiedliche Positionen. Schließlich installiert set(b,'Callback',s) Beispiel 18.8 (Beispiel_gui_button) s als die auszuführende Aktion, so dass bei jedem Klick auf den Button, dieser seine Position verändert. Obwohl die vorgestellte Funktionalität für sich dynamisch verändernde Oberflächen sehr hilfreich ist, ist sie für statische Benutzeroberflächen wenig komfortabel, sodass MATLAB auch die Toolbox GUIDE zur Verfügung stellt. Dieses Tool lässt sich einfach starten, indem Sie den Befehl guide in das Befehlsfenster eingeben. Nach kurzem Laden erscheint der GUIDE Quick Start dessen Bedienung zwar mit etwas Vorkenntnis intuitiv möglich ist, hier allerdings doch etwas zu weit führen würde. 134 MATLAB V3.0 18.11 Animationen MATLAB stellt eine Reihe von Möglichkeiten zur Verfügung, Graphiken zu bewegen oder zu animieren. Die Eigenschaft EraseMode ist für lange Folgen einfacher Graphiken angebracht, in deren Verlauf sich von Bild zu Bild nur wenig ändert. Im folgenden Beispiel wird die Brownsche Bewegung simuliert. Zuerst wird die Anzahl von Punkten festgelegt, etwa n = 20; dann eine Temperatur oder Geschwindigkeit, wie z.B. s = .02; Die optimalen Werte für diese beiden Parameter hängen von der Arbeitsgeschwindigkeit Ihres Computers ab. Nun erzeugen wir n zufällige gleichverteilte Punkte mit xy-Koordinaten zwischen -1/2 und +1/2 x = rand(n,1)-0.5; y = rand(n,1)-0.5; Wir zeichnen diese Punkte in ein Quadrat mit Seiten von -1 bis +1, speichern den Handle des Punktvektors und setzen die Eigenschaft EraseMode auf xor. Diese Einstellung teilt MATLAB mit, dass es nicht immer die komplette Darstellung neu zeichnen soll, wenn sich nur ein Punkt verändert hat. Durch xor wird nur der geänderte Hintergrund wieder hergestellt. h = plot(x,y,'.'); axis([-1 1 -1 1]) axis square set(h,'EraseMode','xor','MarkerSize',18); Nun beginnen wir, die Animation zu erstellen. Hier benutzen wir eine for-Schleife. Sollte Ihnen die Animation mit 1000 Durchläufen zu langen dauern, drücken Sie einfach [Strg][C]. Bei jedem Schleifendurchlauf wird eine zufällig gewählte normalverteilte Störung zu den Koordinaten jedes einzelnen Punktes hinzuaddiert. Anstatt nun eine vollständig neue Graphik zu erzeugen, werden nur die XData- und YData-Eigenschaften des Bildes verändert. for m = 1:1000 drawnow x = x + s*randn(n,1); y = y + s*randn(n,1); set(h,'XData',x,'YData',y) end Beispiel 18.9 (Beispiel_animation) 18.12 Filme Wenn Sie nun die Anzahl der Punkte in der Brownschen Bewegung auf einen größeren Wert, z.B. n = 500, erhöhen, ist die Bewegung nicht mehr länger flüssig, sondern erscheint abgehackt. Es dauert einfach zu lange, jeden Zeitabschnitt zu zeichnen. Jetzt wird es effektiver eine vorgegebene Anzahl von Bildern als Bitmap zu speichern und sie später als Film abzuspielen. Zuerst muss man sich auf die Anzahl der Bilder (Frames) festlegen, sagen wir 135 Können Sie die Ergebnisse erklären? Lösung 18. In unserem folgenden Beispiel werden allerdings nur 6 Megabyte benötigt. weil etwas kleinere Achsen für das Quadrat verwendet werden. Für 50 Bilder mit den oben eingestellten Achsenwerten würden 7. P3 ( x3 . x = rand(n. dass die Eigenschaft EraseMode nicht verwendet wird. Als nächstes bereiten wir die Darstellung vor wie oben.MATLAB V3. Dies ergibt eine riesige Matrix mit nframes Spalten. um den kompletten Film aufzunehmen. Die ausmultiplizierte Form dieses Polynoms ist x 6 − 6 x 5 + 15 x 4 − 20 x 3 + 15 x 2 − 6 x + 1 und ist mathematisch äquivalent zu obigem Term. set(h.10 (Beispiel_movie) 18. Das Polynom ( x − 1) 6 ist im Punkt x = 1 Null und sonst positiv. mit dem einzigen Unterschied. y = y + s*randn(n.x.1)-0.y) M(:. Jede Spalte ist groß genug. h = plot(x. y 2 ) . Berechnen und zeichnen Sie die Werte dieses Polynoms für beide Darstellungen im Intervall [0.995. aber unabhängig von der Komplexität der entsprechenden Darstellung.5 Megabyte Speicher benötigt. y = rand(n. Die Fläche eines Dreiecks mit den Eckpunkten P1 ( x1 . y 3 ) errechnet sich folgendermaßen: ( x3 − x1 ) y1 + y 3 y + y3 y + y2 + ( x 2 − x3 ) 2 − ( x 2 − x1 ) 1 2 2 2 Es kann leicht nachvollzogen werden.13 Übungsaufgaben 1.30) Beispiel 18. y1 ) .5.'YData'.y. um ein komplettes Bild zu speichern. axis([-1 1 -1 1]) axis square.k) = getframe.005] für 101 im gleichen Abstand befindliche Punkte.'XData'.1).').1 (loesung_42) 2. for k = 1:nframes x = x + s*randn(n. dass dies der folgende Ausdruck ist: 136 . Wir generieren nun den Film und verwenden die Funktion getframe für die Erfassung eines jeden Bildes. grid off Nun wird genügend Speicher reserviert. M = moviein(nframes).1)-0.1). P2 ( x 2 .5.1. Die Größe des gesamten benötigten Speichers ist proportional zu nframes und den Achsenabschnitten. ergibt aber nicht die gleichen numerischen Ergebnisse.0 nframes = 50.'. end Zum Schluß wird der Film 30 mal abgespielt mit movie(M. 104.5 Sekunden. (3. Zeichen Sie mit der Funktion ezplot die Sinus. 471. In einem Graphikfenster sollen untereinander zuerst die Sinusfunktion.6 (loesung_47) 7.7. Die Positionen (in Fuß) betragen: 0. (2. die am besten zwischen den folgenden Punkte liegt: (1.16 0. Fertigen Sie in einem zweiten Bild eine normale Zeichnung der komplexen Zahlen.5.7.Grades und vergleichen Sie die Ergebnisse.0 ⎡ x1 1 ⋅ det ⎢ x 2 ⎢ 2 ⎢ x3 ⎣ y1 1⎤ y 2 1⎥ ⎥ y 3 1⎥ ⎦ In dieser Form ist offensichtlich.0 1. -1). 2.8) und zeichnen Sie das Dreieck. a) z= sin( 2 + i ) 2+i 137 . 2. Verwenden Sie dazu die MATLAB-Funktion compass. Berechnen Sie die Geschwindigkeit des Flugzeuges nach t = 4.0 1.16 0. 3). (2. Lösung 18.und Kosinusfunktion im Intervall [−2π .00 0. -3). 62. 809.► Berechnen Sie von den folgenden komplexen Zahlen den Real.1) . 159.04 0.2 0. Finden Sie die Kurve der kleinsten Quadrate y = a + bt + ct 2 + dt 3 für diese Daten. (2. 380.2π ] .1. Lösung 18.4 1.0.9.00 y 0.8 1.8 2. Beschriften Sie auch die einzelnen Koordinatensysteme. 3.64 0.MATLAB V3. Zeichnen Sie das Ergebnis. Finden Sie eine Ebene.36 0.und Imaginärteil und zeichnen Sie die Ergebnisse in unterschiedlichen Farben in ein Koordinatensystem ein.1) .4. Um den Start eines Flugzeuges zu überwachen.64 sollen nach der Methode der kleinsten Quadrate durch eine Funktion der Form f ( x) = a ⋅ 1 + b ⋅ x + c ⋅ ex x approximiert werden. 5). 294.4 (loesung_45) 5.2.0. 222. Approximieren Sie die Wertepaare anschließend durch ein Polynom 2.04 0. 29.6 1.8. dass das Vorzeichen der Fläche davon abhängt. Berechnen Sie die Fläche des folgenden Dreiecks: P1 (1. Zeichnen Sie das Ergebnis. Lösung 18.5 (loesung_46) 6. Die Wertepaare x 0. dann die Kosinusfunktion und dann beide zusammen gezeichnet werden. Zeichnen Sie die Kurve.36 0. wie die Punkte in die Determinante genommen werden.6 0. wird die horizontale Position des Flugzeuges jede Sekunde von t = 0 bis t = 12 gemessen.1. 8.8. 8). P3 (1. 1. 686. 571.2 1. Lösung 18.4 0. 2.3 (loesung_44) 4.2 (loesung_43) 3. P2 (3. Lösung 18. e iπ / 2 und ihre Summe Lösung 18.8 (loesung_49) 138 .MATLAB b) c) d) V3. Zeichnen Sie e iπ / 4 .0 z = e − i + (−i ) e z= e π (1+i ) sin(π (1 + i )) z = (1 − i ) (1−i ) Lösung 18.7 (loesung_48) 8. Detailliertere Beschreibungen und Erklärungen. MATLAB Toolboxen sind Sammlungen von M-Files für die unterschiedlichsten technischen Bereiche und erweitern die fachspezifischen Möglichkeiten von MATLAB. der in diesem Buch angeschnittenen Themen.und Darstellungswerkzeuge. Communications Control Systems Financial Computation Frequency-Domain System Identification Fuzzy Logic Higher-Order Spectral Analysis Image Processing Linear Matrix Inequalities Model Predictive Control Mu-Analysis and Synthesis Numerical Algorithms Neural Networks Optimization Partial Differential Equations Quantitative Feedback Theory Robust Control Signal Processing Simulation (Simulink) 139 . wie man C/C++. enthalten folgende Handbücher „The MATLAB Installation Guide“ beschreibt wie MATLAB richtig installiert wird. „Using MATLAB Graphics“ beschreibt die Verwendung von MATLAB's Graphik. „MATLAB Product Family New Features“ bietet Informationen über die Unterschiede der verschiedenen Versionen und gibt Hilfestellungen beim Wechsel von einer Version zu einer anderen. Für die Toolboxen gibt es entsprechende Bücher.oder FortranProgramme in Interaktion mit MATLAB benutzt.MATLAB V3. „The MATLAB Application Program Interface Guide“ beschreibt.0 19 Weiterführendes Material und Literatur: Um mehr MATLAB-Beispiele zu erhalten.B. wählen sie Beispiele und Demos im Menü oder geben Sie demo ein. Starten Sie die gewünschten Demos und folgen sie den dort angezeigten weiteren Anweisungen. die Arbeitsumgebung und die mathematischen Möglichkeiten von MATLAB. „Using MATLAB“ gibt einen tiefen Einblick in die Sprache. Einige Toolboxen sind z. mathworks. Viel Spaß. 140 .0 Die neuesten Informationen über MATLAB und andere MathWorks-Produkte finden Sie auf unserer Homepage im Internet: http://www.MATLAB Es gibt weitere Bücher über MATLAB von anderen Verlagen. Sie haben einen ausführlichen Einstieg hinter sich und werden viel Freude mit MATLAB haben. dann gratulieren wir Ihnen. ihr MATLAB-Team. alles gelesen und die Übungen gemacht.com Mit ihrem Internet News Leser haben Sie Zugriff auf die Newsgroup comp. Haben Sie es bis hierher geschafft.soft-sys. informieren Sie sich in Ihrer Buchhandlung oder holen Sie sich die Broschüre „MATLAB-Based Books“ von The MathWorks oder im Internet über unsere Homepage.MATLAB Splines Statistics Symbolic Mathematics System Identification Wavelets V3. 1 (loesung_95) 2. Berechnen Sie die Inverse der folgenden Matrix mit Hilfe der Adjunkten. Mit Zuhilfenahme der MATLABHilfe oder im Zweifelsfall der Einsicht des Lösungsvorschlages.1⎤ ⎡2 ⎢ 1 1. 20.3 (loesung_97) 4. In diesem Kapitel sind auch Aufgaben enthalten. bleibt also hier jedem selbst überlassen. Berechnen Sie die Inverse einer 4x4-Zufallsmatrix A mit Hilfe von Unterdeterminanten.9⎥ A=⎢ ⎥ ⎢0.2 (loesung_96) 3.1 Vorbemerkung Die folgenden Übungsaufgaben entsprechen einer Sammlung von Aufgaben aus verschiedenen Fachbereichen. für welche die zur Lösung benötigte Theorie noch nicht vollständig behandelt wurde.4 (loesung_98) 141 .2 Adjunkte und Cramersche Regel ⎡1 2 3 ⎤ ⎢ ⎥ 1.MATLAB V3. welche Aufgaben bearbeitbar sind oder nicht. Vergleichen Sie die beiden Ergebnisse und vergleichen sie die Zeit. Vergleichen Sie die beiden Berechnungsmöglichkeiten von oben. 2 − 1⎤ ⎡1 0 ⎢3 − 2 6 4⎥ ⎥ A=⎢ ⎢2 2 − 5 6 ⎥ ⎢ ⎥ 3 0⎦ ⎣5 4 Lösung 20. nicht alle Aufgaben von jedem/jeder Student/in lösbar.► Bestimmen Sie die Determinante und die Adjunkte von A = 2 3 4 .0 20 Übungen aus verschiedenen Themenbereichen 20. Ermitteln Sie nur unter Verwendung von Determinanten die Inverse der Matrix 3 1. Demnach sind evtl. ⎢ ⎥ ⎢1 5 7 ⎥ ⎣ ⎦ Lösung 20. die MATLAB braucht. sollten aber auch diese Aufgaben zu bewältigen sein.8⎥ ⎣ ⎦ Lösung 20. Für eine n x n-Matrix gelten dabei folgende Formeln: Zur Berechnung der Determinante 2 braucht man 3 Gleitpunktoperationen. Die Entscheidung.9 1 0. Berechnen Sie die Anzahl der Gleitpunktoperationen bei der Berechnung der Inversen einer 30x30-Zufallsmatrix. weshalb wir sie Ihnen nicht vorenthalten möchten. 2 ⋅ n3 − 1 ⋅ n2 + 5 ⋅ n − 1 6 und bei der Berechnung der Inversen 8 3 ⋅ n3 − 1 ⋅ n2 − 1 ⋅ n 2 6 Lösung 20. um die Inverse mit den beiden unterschiedlichen Wegen zu berechnen. auch wenn die nötigen MATLAB Grundlagen verstanden wurden. Berechnen Sie danach die Inverse mit dem Befehl inv ( A ) .1 0. 0 19 x1 7 x1 11x1 6.6 (loesung_100) 7. Rang 8. b.3 Unabhängigkeit. c. b ⎡ 2⎤ b = ⎢ 4⎥ .5 (loesung_99) Berechnen Sie x mit der Cramer`schen Regel ⎡1 ⎢− 1 ⎢ ⎢2 ⎢ ⎣1 1 1 1 3 2 0 1 1 1⎤ ⎡1⎤ ⎥ ⎢0 ⎥ 1⎥ ⋅x = ⎢ ⎥ ⎢1⎥ 0⎥ ⎥ ⎢ ⎥ 0⎦ ⎣0 ⎦ Lösung 20.8 (loesung_102) 9. ⎢ ⎥ ⎢1 ⎥ ⎣ ⎦ a. Testen Sie die Cramer`sche Regel für eine 4x4-Zufallsmatrix A und einen 4x1Zufallsvektor b . ⎢ ⎥ ⎢ 3⎥ ⎣ ⎦ a. b. b.► Lösen Sie das lineare Gleichungssystem nach der Cramer`schen Regel V3.► Kann der Vektor x durch eine Linearkombination der Vektoren v 1 . ⎢ ⎥ ⎢0 ⎥ ⎣ ⎦ a. b. + 34 x 2 + 11x 2 + 20 x 2 + 45 x3 + 13 x3 + 30 x3 = 177 = 54 = 108 Lösung 20. d ⎡1⎤ d = ⎢1⎥ ⎢ ⎥ ⎢0 ⎥ ⎣ ⎦ a. c ⎡1 ⎤ c = ⎢ 2⎥ .► Gegeben seien die Vektoren ⎡1 ⎤ a = ⎢ 2⎥ . v 2 und v 3 dargestellt werden? ⎡ − 6⎤ ⎢4⎥ v1 = ⎢ ⎥ ⎢ − 9⎥ ⎢ ⎥ ⎣4⎦ ⎡8⎤ ⎢− 3⎥ v2 = ⎢ ⎥ ⎢7⎥ ⎢ ⎥ ⎣− 3⎦ ⎡ − 9⎤ ⎢5⎥ v3 = ⎢ ⎥ ⎢ − 8⎥ ⎢ ⎥ ⎣3⎦ ⎡4⎤ ⎢7⎥ x=⎢ ⎥ ⎢ − 8⎥ ⎢ ⎥ ⎣3⎦ Lösung 20. Lösung 20. a a Sind die folgenden Vektorsysteme linear abhängig? a. Berechnen Sie die Lösung von Ax = b und vergleichen Sie sie mit der Lösung von A −1 b .MATLAB 5.9 (loesung_103) 142 . d Lösung 20.7 (loesung_101) 20. Verwenden Sie die MATLAB-Funktion rref. 4 − 1 6 − 1⎤ ⎡8 ⎢9 5 −4 8 4⎥ ⎢ ⎥ A = ⎢ − 3 1 − 9 4 11 ⎥ ⎢ ⎥ ⎢− 6 − 4 6 − 7 − 8 ⎥ ⎢0 4 − 7 10 − 7⎥ ⎣ ⎦ Lösung 20. V3. − 3 x1 2 x1 − 9 x2 + 9 x2 + 6 x3 + x3 15 = = − 16 Lösung 20.14 (loesung_108) 143 . dass wenn P eine invertierbare m x m-Matrix ist.13 (loesung_107) 20.► Bestimmen Sie den Rang der Matrix A = ⎢1 ⎢ ⎢5 ⎢3 ⎣ Lösung 20. dass der Rang eines Matrizenproduktes den Rang der einzelnen Faktoren nicht übersteigen kann. Zeigen Sie.► Finden Sie die allgemeine Lösung des folgenden linearen Gleichungssystems. B ist eine n x m-Matrix. dann ist rang ( PA ) = rang ( A ) rang ( AP ) = rang ( A ) Lösung 20.4 Gleichungssysteme 14. ⎥ 8 − 2⎥ 6 1 ⎥ ⎦ 12. Zeigen Sie.12 (loesung_106) 13.10 (loesung_104) ⎡ − 8 8 − 8 1 − 9⎤ ⎢ 7 −7 7 4 3⎥ ⎢ ⎥ B = ⎢ 6 −9 4 9 − 4⎥ ⎢ ⎥ 6 − 1⎥ ⎢ 5 −5 5 ⎢− 7 7 − 7 − 7 0 ⎥ ⎣ ⎦ Bilden die Vektoren jeweils eine Basis des ℜ 5 ? ⎡1 ⎢2 ⎢ 11. dann ist rang ( AB ) ≤ rang ( A ) rang ( AB ) ≤ rang (B) Lösung 20.MATLAB 10.11 (loesung_105) 2 3 3 6 4 3 1 3 5 4 4 4⎤ 5 − 5⎥ ⎥ 7 2 ⎥.0 Überprüfen Sie die Spaltenvektoren der Matrizen A und B auf lineare Unabhängigkeit. Wie viele Lösungen hat das System Ax = b ? Lösung 20. daß die folgende Matrix singulär ist: A = 1 2 1 . Welche der linearen Gleichungssysteme Ax = b mit Koeffizientenmatrizen A sind für beliebige rechte Seiten b lösbar? 11x1 5 x1 3 x1 + 6 x2 + 4 x2 + 4 x3 − 2 x3 + 6 x3 1 = 3 = = −9 x1 x1 2 x1 + 2 x2 + 2 x2 + 4 x2 + 3 x3 + 4 x3 + 7 x3 + 4 x4 + 3x 4 x4 + 0 = = −2 = −8 144 . ob die folgenden Gleichungssysteme lösbar sind und bestimmen Sie gegebenenfalls die Lösungsgesamtheit. 15 x1 5 x1 − 2 x2 3x 2 + x2 − x2 + 8x2 − 2 x2 − 4 x2 − 3x 2 − 7 x2 x2 + 17 x3 + 7 x3 − 2 x3 − x3 + 4 x3 + x3 + 5 x3 + 9 x4 + 3x4 + 4 x5 + 2 x5 x5 − 0 = = −1 = 2 x1 − 3x1 2 x1 − 4 x1 x1 2 x1 3 x1 = 1 = 2 = 17 = 1 − 5x4 − 5x4 − x4 = −1 = −7 = −8 = −1 + 2 x3 − x3 + x3 − x3 Lösung 20.0 ⎡1 1 0⎤ ⎢ ⎥ 15.MATLAB V3. ⎡1 0 ⎢2 1 A=⎢ ⎢0 0 ⎢ ⎣1 − 2 1⎤ 0⎥ ⎥ 1⎥ ⎥ 0⎦ ⎛0⎞ ⎜ ⎟ ⎜1⎟ b1 = ⎜ ⎟ −1 ⎜ ⎟ ⎜3⎟ ⎝ ⎠ ⎛ 0 ⎞ ⎜ ⎟ ⎜ 0 ⎟ b2 = ⎜ ⎟ 1 ⎜ ⎟ ⎜ − 5⎟ ⎝ ⎠ ⎛ 0 ⎞ ⎜ ⎟ ⎜ 0 ⎟ b3 = ⎜ ⎟ −3 ⎜ ⎟ ⎜ 5 ⎟ ⎝ ⎠ Lösung 20. b 2 und b 3 .► a) Zeigen Sie. ⎢ ⎥ ⎢1 3 2⎥ ⎣ ⎦ b) Es sei b = [2 4 6]T .17 (loesung_111) 18.► Lösen die folgende Reihe linearer Gleichungssysteme. mit der Koeffizientenmatrix A und verschiedenen rechten Seiten b 1 .16 (loesung_110) 17.► Bestimmen Sie die allgemeine Lösung der folgenden linearen Gleichungssysteme.► Prüfen Sie.15 (loesung_109) 16. 01 14. Nürnberg (N) und München (M) benötigt. MnS + As 2 Cr10 O 35 + H 2 SO 4 → HMnO 4 + AsH 3 + CrS 3 O 12 + H 2 O Stellen Sie für jede der 7 Verbindungen einen Vektor im ℜ auf.12 Ankunft 18. Aus dem Fahrplan der Bundesbahn ist ersichtlich welche Zeit man zwischen den Orten Regensburg (R). Sauerstoff-Molekül (O) und Wasserstoff-Molekül (H) auflistet.19 (loesung_113) 20.► Lösen Sie das folgende Gleichungssystem mit dem Gaußschen Verfahren und bestimmen Sie seinen Rang: x1 2 x1 x1 x1 2 x1 + x2 + 2 x2 + x2 + x2 + 2 x2 + x3 − x3 − x3 − 2 x3 + x4 + 5x4 + 2 x4 + x4 + 3x4 + x5 + x5 + 2 x5 + 3 x5 = = = = = 1 2 3 4 7 Lösung 20. Die nachfolgende chemische Reaktion kann in einigen industriellen Prozessen verwendet werden.21 (loesung_115) 145 .12 Stunden 4 4 4 3 Berechnen Sie welche Zeit man für die Strecke von Regensburg nach München benötigt.B.18 (loesung_112) 19. Arsen-Molekül (As). Chrom-Molekül (Cr).21 15. so daß die unbekannten Koeffizienten die Reaktion ausgleichen und finden Sie eine ganzzahlige Lösung.20 (loesung_114) 21. 6 Lösung 20.MATLAB V3.10 14. der Produktion von Arsen. Schreiben Sie eine Vektorgleichung. von N R N R über R M M N nach M N R M Abfahrt 14.10 18.21 18. Schwefel-Molekül (S).01 18. Lösung 20.0 2 x1 x1 3 x1 + 3x2 + 4 x2 + 7 x2 + 3x2 + 4 x2 − 8 x2 + x3 − 3 x3 − 2 x3 − 2 x3 − 3 x3 + 6 x3 − x3 − 2 x4 + 6 x4 + 4 x4 − x4 − 3 x5 − 3 x5 + x5 + x5 + 2 x5 + 3 x5 = 5 = 5 = 10 + 4 x6 + 6 x6 − 13x6 + 3x6 = −1 = −1 6 = = 9 x1 x1 − 2 x1 − x1 + 3x4 + 7 x4 Lösung 20. der die Anzahl der Atome jedes Mangan-Molekül (Mn). wie z. Gleichen Sie die Reaktionsgleichung aus. 1x 2 = 19. dass 6 50-Pfenningstücke. Lösung 20.► Gegeben sind die Matrizen A = ⎢ Bestimmen Sie die Matrix X .1x 2 + 1.05 % von den entsprechneden Koeffizienten des ersten Systems ab.6 x1 + 3. ⎣2 3⎦ ⎣ ⎦ 4. 14 Markstücke. Dazu wird angenommen.5 x1 1.MATLAB V3.26 (loesung_67) 146 . 1 Markstück. Die andere Hälfte des Sektes und den ganzen Rotweinbestand verkauft er an B. das sind insgesamt 80 Flaschen. Anschließend will der Weinhändler die Verkaufszahlen so genau wie möglich haben. Ist die Abweichung der Lösungen entsprechend? Lösung 20. 16 Zweimarkstücke und 3 Fünfer zusammen auch 120g wiegen.24 (loesung_65) 25. Lösung 20. Nun soll das Gewicht jeder einzelnen Münze berechnet werden.0 22.84 Die Koeffizienten des zweiten Gleichungssystems weichen um weniger als 0.249 = 6. Durch zwei Messungen wurde festgestellt.1x 2 + 1. insgesamt 70 Flaschen.1x 2 = 19. Ein Weinhändler verkauft die Hälfte seines Lagervorrats an Sekt und den gesamten Weißwein an A.23 (loesung_117) 20.25 (loesung_66) 26.► Bestimmen Sie die Lösungen der folgenden Gleichungssysteme 7 x1 5 x1 8 x1 2 x1 4 x1 x2 − 4 x2 + x2 − 10 x 2 x2 − − 5x2 + 3 x3 − 2 x3 + 3 x3 1 = 0 = = −2 − 228 x3 4 x3 − − 14 x3 = − 112 = − 16 = − 56 Lösung 20. 8 Zweimarkstücke und 2 Fünfer zusammen 120g wiegen und dass 3 50-Pfenningstücke.6 x1 + 3. er weiß jedoch nur noch. die der folgenden Gleichung genügt: XA + (I − X )B = I . bei dem die rechte Seite auf zwei Nachkommastellen gerundet wurde.5 x1 1. Ein Experiment führt zu folgendem Gleichungssystem: ⎡2 1⎤ ⎡1 − 1⎤ ⎥ und B = ⎢2 2 ⎥ . 50 Flaschen hatte.22 (loesung_116) 23. Helfen Sie ihm.25 = 6.5 Quadratische Gleichungssysteme 24. dass er von jeder Sorte ca.843 Lösen sie das System und lösen Sie auch das nachfolgende System. dass das Gewicht proportional mit dem Wert der Münzen zusammenhängt. Lösung 20. 4. 4000 0. Wie viel von jedem herkömmlichen Spray sollte verwendet werden um die exakt benötigte Menge der Chemikalien zu erhalten? Lösung 20.27 (loesung_68) 28. Es gibt drei verschiedene Futtersorten: A.142 ⎞ ⎜ ⎟ ⎥ 0. 3 und 4 Einheiten der Chemikalien A. − 2 sin α 4 sin α 2 sin α − 3 cos β + 2 cos β − 5 cos β + 5 tan γ − 2 tan γ + 3 tan γ = 1 = 2 = 7 Lösung 20.2251 0.29 (loesung_70) 30. Jedes Schwein verbraucht 4 Einheiten von A.► Ist das folgende Gleichungssystem lösbar? Bestimmen Sie gegebenenfalls die Lösungsmenge.0124 0.0634⎥ ⎜ 5.2945⎤ ⎛ 3.31 (loesung_72) 147 .30 (loesung_71) 31.1129⎦ ⎝ ⎠ Lösung 20.3718 0. Wie viele Tiere von jeder Art kann die Farm halten. 10 Einheiten der Chemikalie B und 8 Einheiten der Chemikalie C zu besprühen. Um eine Getreidepest zu kontrollieren wird empfohlen das Getreide mit einer Mischung aus 6 Einheiten der Chemikalie A. B und C. wenn jedes Monat 129 Einheiten des Futter A. 9 Einheiten von B und 6 Einheiten von C in jedem Monat.1748 ⎢ ⎣ 0.28 (loesung_69) 29. cos β und tan γ und berechnen Sie dann die unbekannten Winkel.► Eine Farm hat 3 Arten Vieh: Schafe. Ziegen und Schweine.000 ⎟ ⎜ ⎟ ⎥ ⎜ − 4.MATLAB V3.► Lösen Sie das folgende Gleichungssystem für sin α . B und C.312 ⎟ ⋅X = ⎜ 0. Diese Zutaten sind in drei schon gemischten Packungen erhältlich: Eine Tonne des Spray S1 enthält 1.2708 0. Jede Ziege braucht 4 Einheiten von A. eine Tonne des Spray S2 enthält 3 Einheiten von jeder Chemikalie und eine Tonne des Spray S3 enthält 2 Einheiten von A und 5 Einheiten von B.1902 0.0 27.4095 ⎢0. 7 Einheiten von B und 5 Einheiten von C. 285 Einheiten von B und 210 Einheiten von C zur Verfügung stehen und alles verbraucht werden soll? Lösung 20. x1 x1 4 x1 x1 + x2 − x2 + 2 x2 + x2 + + x3 x3 − x3 + x4 − x4 + 2 x4 − x4 = 1 = 2 = 7 = 3 Lösung 20.3842 0.4015 0. Jedes Schaf braucht jeden Monat 3 Einheiten vom Futter A.3678 0. Lösen Sie das folgende Gleichungssystem: ⎡0. 8 Einheiten von B und 7 Einheiten von C.3925⎥ 1.312 ⎟ 0.3654 ⎢ ⎢0. Auf einen horizontalen elastischen Balken. Berechnen Sie außerdem die Kräfte.03 cm im 4. Eine Gleichung innerhalb der ersten Masche sieht dann z.0005 0. 148 .0005⎤ 0. Durch Aufstellen der Gleichungen für jede einzelne Masche erhält man ein quadratisches lineares Gleichungssystem. folgendermaßen aus: 4Ω * I 1 + 4Ω * I 1 + 3Ω * (I 1 − I 2 ) = 30V Dabei gehören die 4Ω -Widerstände nur zur ersten Masche. während der 3Ω -Widerstand zur ersten und zweiten Masche gehört. die Bewegung des Balkens) in den vier Punkten auf.0040 ⎢0. 0. ⎡0. Die Stromstärken I in den Widerständen eines elektrischen Netzwerkes sollen bestimmt werden. Dabei gilt das Ohmsche Gesetz: U = RI .0030 0.32 (loesung_73) 33. Die angelegte Spannung muß negativ angegeben werden.0010 ⎢ ⎣0. Zur Lösung dieses Problems untersucht man die Ströme in den einzelnen Maschen. daß nach den I n gelöst werden kann.MATLAB V3.33 (loesung_74) 34. ( D ist die Biegsamkeitsmatrix) (Skizze mit 3 Kräften) Die nachfolgende Matrix D ist eine Biegsamkeitsmatrix für 4 Punkte an denen Kräfte angreifen.0010⎥ ⎥ 0.0030 0.0050 0.0030⎥ ⎥ 0.0030 0.30. die eine Bewegung von 0.25. Im Vektor f im ℜ 4 stehen die Kräfte an diesen Punkten und der Vektor y im ℜ 4 listet die Abweichung von der Horizontalen (d.0030 0.35 und 0.B. Punkt und keine Abweichung in den anderen 3 Punkten hervorrufen.0030 D=⎢ ⎢0. der an den Enden fest aufliegt.0040⎦ Messungen an den 4 Punkten zeigen Auslenkungen von 0.30 cm. 0.0050 0. Berechnen Sie die Kräfte an den 4 Punkten. Lösung 20. greifen in den Punkten 1 bis 4 Kräfte an.0 32.► Bestimmen Sie die Lösung des folgenden quadratischen Gleichungssystems 2 x1 − 4 x1 6 x1 2 x1 − 2 x1 − + − − + 3x 2 6 x2 9 x2 4 x2 5 x2 + − + + − x3 2 x3 3 x3 3 x3 3 x3 − + − + + 2 x4 5x4 4 x4 2 x4 2 x4 + 4 x5 − 6 x5 + 10 x5 − 3 x5 − x5 = 7 = − 10 = 17 5 = = 1 Lösung 20.0010 0.0010 0. Das Gesetz von Hooke sagt: y = Df . wenn der Strom in die entgegengesetzte Richtung fließt. Die Einheit ist Zentimeter/Newton.h. 0 Lösung 20.MATLAB Bestimmen Sie die Stromstärke in den einzelnen Maschen der nachfolgenden Netze. Gegeben sind die Gleichungen 10 x1 − x1 − x2 + 10 x 2 − x2 − x3 + 10 x3 − x3 − x4 + 10 x 4 − x4 − x5 + 10 x5 − x5 − x6 + 10 x 6 = = = = = = 10 0 10 0 10 10 Berechnen Sie den Vektor x bis zur 6. Näherung.36 (loesung_119) 149 .6 Iteration 35. Lösung 20. Es sei das lineare Gleichungssystem Ax = b mit ⎡ 2 −1 0 ⎤ A = ⎢− 1 3 − 1⎥ ⎢ ⎥ ⎢ 0 −1 2 ⎥ ⎣ ⎦ ⎡1⎤ b=⎢ 8 ⎥ ⎢ ⎥ ⎢− 5⎥ ⎣ ⎦ Berechnen Sie x mit dem Gauß-Jacobi-Verfahren und dem Gauß-Seidel-Verfahren bis zur 8.35 (loesung_118) 36.34 (loesung_75) 20. Der Startvektor ist der Nullvektor. V3. Näherung mit dem Gesamtschrittverfahren. Lösung 20. MATLAB V3. 21g Kohlenhydrate und 3g Fett.013 NO 2 46.4g Fett.h. so daß Bu die Summe der Kalorien. Stellen Sie eine Matrix B und einen Vektor u auf.012 N 2O 5 108. Eine Portion Kellogg`s Crispis enthält 110 Kalorien. Ist es möglich eine Mischung der beiden Kellogg`s-Sorten zusammenzustellen. Berechnen Sie die Lösung der Gleichung Ax = b mit der Methode der kleinsten ⎡1 ⎢1 ⎢ ⎢1 Quadrate. Kohlenhydrate und Fett ergibt.39 (loesung_122) 40. Lösung 20. die in einer Mischung von 3 Portionen Crunchy Nuts und 2 Portionen Crispis enthalten sind.006 N 2O 44. Eine Portion (28g) Kellogg’s Crunchy Nuts enthält 110 Kalorien.010 N 2O 4 92. 24g Kohlenhydrate und 1g Fett enthält? Wenn ja. wie lautet die Mischung? Lösung 20. 2g Protein.25g Protein.7 Kleinste Quadrate 37. Aus den gemessenen Molekulargewichten NO 30. 1 ⎤ ⎡1 1 1 ⎛ −2 ⎞ ⎜ ⎟ ⎢1 2 4 ⎥ 8 ⎥ ⎜ −7 ⎟ ⎢ ⎜ 8 ⎟ ⎢1 − 1 1 − 1 ⎥ ⎟ ⎢ ⎥⋅x = ⎜ 1 −2 4 −8 ⎥ ⎜ 1 ⎟ ⎢ ⎜ −4 ⎟ ⎢1 3 9 27 ⎥ ⎜ ⎟ ⎢ ⎥ ⎜ − 22 ⎟ ⎢1 − 3 9 − 27⎥ ⎣ ⎦ ⎝ ⎠ Lösung 20. Finden Sie eine Lösung des linearen Systems mit der Methode der kleinsten Quadrate. (d.0 20. A T Ax = A T b ). Sie wollen ein Frühstück mit mehr Protein als in Crispis aber weniger Fett als in Crunchy Nuts. die 110g Kalorien.37 (loesung_120) 38.40 (loesung_123) 150 . 2. A = ⎢ ⎢1 ⎢1 ⎢ ⎢1 ⎣ 1 1 0 0 0 0 0 0 1 1 0 0 0⎤ 0⎥ ⎥ 0⎥ ⎥ 0⎥ 1⎥ ⎥ 1⎥ ⎦ ⎡− 3⎤ ⎢ − 1⎥ ⎢ ⎥ ⎢0⎥ b=⎢ ⎥ ⎢2⎥ ⎢5⎥ ⎢ ⎥ ⎢1⎥ ⎣ ⎦ Lösung 20.006 N 2O 3 76.38 (loesung_121) 39.011 Sollen die Atomgewichte von Stickstoff und Sauerstoff bestimmt werden. 3g Protein. Proteine. 25g Kohlenhydrate und 0. 88 3. ⎣ ⎣ ⎦ Ermitteln Sie ihre Eigenwerte und geben Sie jeweils einen dazugehörigen normierten Eigenvektor an. Hinweis: Die Formel muß zunächst linearisiert werden. (3.01 Bestimmen Sie den Typ der Umlaufbahn und sagen Sie vorher wo der Komet bei ϑ = 4.25 2.30 1. Lösung 20.42 (loesung_125) 20.* Nach Kepler`s erstem Gesetz hat ein Komet entweder eine Ellipse. Die Position ( r .MATLAB V3. (2.ϑ ) in Polarkoordinaten kann mit der Formel ϑ r 0. (0. ⎡2 1 1 ⎤ A = ⎢2 3 2⎥ ⎢ ⎥ ⎢1 1 2⎥ ⎣ ⎦ ⎡− 1⎤ x=⎢1⎥ ⎢ ⎥ ⎢0⎥ ⎣ ⎦ ⎡− 1⎤ y=⎢0⎥ ⎢ ⎥ ⎢1⎥ ⎣ ⎦ Lösung 20.► Überprüfen Sie ob x oder y Eigenvektoren der Matrix A sind.6 sein wird. wobei β eine Konstante und e die Exzentrität der Umlaufbahn ist: 0 ≤ e ≤ 1 bei einer Ellipse.65 1.44 (loesung_127) 151 . Berechnen sie dann den zugehörigen Eigenwert. Beobachtungen eines neu entdeckten Kometen liefern die folgenden Daten: werden ignoriert).00 1. (1.77 1.► Gegeben seien die Matrizen ⎡ 3 2 2⎤ 1⎢ B = ⎢2 2 0⎥ ⎡2 16 ⎤ ⎥ 3 A=⎢ ⎢ 2 0 4⎥ 1 − 4⎥ und ⎦.10 2.43 (loesung_126) 44. Zeichnen Sie die Umlaufbahn. -4). Zeichnen Sie das Ergebnis und die Punkte in das gleiche Koordinatensystem.41 (loesung_124) 42. 16) ist. eine Parabel oder eine Hyperbel als Umlaufbahn (Anziehungen anderer Planeten aufgrund der Gravitation r = β + e( r ⋅ cos ϑ ) berechnet werden. 2).8 Eigenwerte 43. -4). e = 1 bei einer Parabel und e > 1 bei einer Hyperbel. Lösung 20. Berechnen Sie die xi so. dass die Kurve p (t ) = x1 sin t + x 2 cos t + x3 sin 2t + x 4 cos 2t die beste Näherung für die Punkte (-2. 8).42 1.0 41. -2). Lösung 20.14 1. (-1. ⎡ 2 −1 0 0 ⎤ ⎢− 1 2 − 1 0 ⎥ ⎥ A=⎢ ⎢ 0 − 1 2 − 1⎥ ⎢ ⎥ ⎣ 0 0 −1 2 ⎦ Lösung 20. ⎢ ⎥ ⎢ 3 ⎥ ⎢− 1⎥ ⎢0⎥ ⎢0⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎣− 1⎦ ⎣ 0 ⎦ ⎣0⎦ ⎣0⎦ Lösung 20. ⎢ ⎥. 0 und 3 hat und deren zugehörige Eigenvektoren folgende sind: ⎡ 1 ⎤ ⎡ 4 ⎤ ⎡ 3 ⎤ ⎡1 ⎤ ⎢ 2 ⎥ ⎢ 2 ⎥ ⎢1⎥ ⎢0⎥ ⎢ ⎥. die Eigenwerte und wenn möglich eine reguläre Diagonalisierungsmatrix.45 (loesung_128) 46.► Bestimmen Sie für die folgende Matrix die Eigenwerte und die zu den jeweiligen Eigenwerte gehörenden Eigenräume. Ist die Matrix diagonalähnlich? ⎡ − 3 1 − 1⎤ A = ⎢− 7 5 − 1 ⎥ ⎢ ⎥ ⎢ − 6 6 − 2⎥ ⎣ ⎦ Lösung 20.0 45. Bestimmen Sie die Eigenwerte und die Eigenvektoren der folgenden Matrix. ⎡− 4 − 4 ⎢ 14 12 ⎢ B=⎢ 6 4 ⎢ ⎢ 11 7 ⎢ 18 12 ⎣ 20 − 8 − 1⎤ − 46 18 2 ⎥ ⎥ − 18 8 1⎥ ⎥ − 37 17 2 ⎥ − 60 24 5 ⎥ ⎦ Lösung 20. Finden Sie in jedem Fall auch die Matrix P der Eigenvektoren und berechnen Sie P −1 AP .49 (loesung_132) 152 . Finden Sie eine 4x4-Matrix. ⎢ ⎥. ⎡10 ⎢7 A=⎢ ⎢8 ⎢ ⎣7 7 8 7⎤ 5 6 5⎥ ⎥ 6 10 9 ⎥ ⎥ 5 9 10⎦ ⎡5 2 ⎢2 − 4 ⎢ B = ⎢0 3 ⎢ ⎢0 0 ⎢0 0 ⎣ 0 3 0 6 0 0 0 6 4 1 0⎤ 0⎥ ⎥ 0⎥ ⎥ 1⎥ 5⎥ ⎦ Lösung 20.47 (loesung_130) 1 −1 2 ⎤ ⎡2 ⎢1 3 2 − 3⎥ ⎢ ⎥ B= ⎢− 1 2 1 − 1⎥ ⎢ ⎥ ⎣ 2 − 3 −1 4 ⎦ 48.48 (loesung_131) 49.46 (loesung_129) 47. Berechnen Sie das charakteristische Polynom. -3. Berechnen Sie die Eigenwerte der folgenden Matrizen.MATLAB V3. die die Eigenwerte 2. 51 (loesung_134) 52.MATLAB V3.► Ermitteln Sie alle Eigenwerte von A und überprüfen Sie.5 ⋅ I A2 + 3⋅ A − 4 ⋅I A2 − 3⋅ A + 4 ⋅I Die Ergebnisse geben Ihnen sicher Anlass zu einigen Vermutungen. ob A diagonalähnlich ist. ⎡0 ⎢2 ⎢ ⎢3 ⎢ 4 A=⎢ ⎢5 ⎢ ⎢6 ⎢7 ⎢ ⎢8 ⎣ 1 1 3 4 5 6 7 8 1 2 2 4 5 6 7 8 1 2 3 3 5 6 7 8 1 2 3 4 4 6 7 8 1 2 3 4 5 5 7 8 1 2 3 4 5 6 6 8 1⎤ 2⎥ ⎥ 3⎥ ⎥ 4⎥ 5⎥ ⎥ 6⎥ 7⎥ ⎥ 7⎥ ⎦ 6 − 6⎤ 5 − 5⎥ ⎥.h. finden Sie Matrizen V und D mit A = VDV −1 aus den Eigenwerten und Eigenvektoren von A.50 (loesung_133) 51. Lösung 20. A A −1 A2 = A ⋅ A A − 0.0 50. 4 − 10 − 4⎤ ⎡ 11 − 6 ⎢− 3 5 −2 4 1 ⎥ ⎢ ⎥ A = ⎢− 8 12 − 3 12 4⎥ ⎢ ⎥ −2 − 1⎥ 6 3 ⎢1 ⎢ 8 − 18 8 − 14 − 1⎥ ⎣ ⎦ Lösung 20. Diagonalisieren Sie die Matrix A. 5 − 3⎥ ⎥ 1 1⎦ Lösung 20.52 (loesung_135) 153 . ⎡− 2 ⎢− 5 Gegeben ist die Matrix A = ⎢ ⎢−1 ⎢ ⎣−1 0 3 1 1 Bestimmen Sie die Eigenwerte und dazugehörigen Eigenvektoren der folgenden Matrizen. d. 2.► Berechnen Sie für die komplexen Zahlen z = 3 + 2i und w = 4 − 5i die folgenden Werte: z+w 2 z − 3w z+w z+w zw z⋅w zz ⎡z ⎤ ⎡z⎤ ⎢ w ⎥ ⎢ w⎥ ⎣ ⎦ ⎣ ⎦ Lösung 20. Überprüfen Sie die folgenden Aussagen T e z1 ⋅ e z 2 = e z1+ z 2 e i⋅ z1 = cos( z1) + i ⋅ sin( z1) Lösung 20.► Bestimmen Sie alle Lösungen der Gleichung iz 2 − (2 − i ) z + (1 + 3i ) = 0 Lösung 20.0 20.56 (loesung_139) 57.► Berechnen Sie i n für n = 1... Geben Sie eine Lösung der Gleichung z i = 1 + i an! Lösung 20.54 (loesung_137) 55. . Lösen Sie die Gleichungen z4 −1 = 0 z4 +1 = 0 z 5 = 32i Lösung 20.55 (loesung_138) 56.MATLAB V3. 10 Lösung 20.9 Komplexe Zahlen 53..53 (loesung_136) 54.58 (loesung_141) 59.57 (loesung_140) 58. Berechnen Sie mit der MATLAB-Funktion eig die Eigenwerte der Matrix ⎡− 149 − 50 − 154⎤ A = ⎢ 537 180 546 ⎥ ⎢ ⎥ ⎢ − 27 − 9 − 25 ⎥ ⎣ ⎦ 154 . 179. Haben Sie auch die gleichen Eigenvektoren? Überprüfen Sie die Annahmen auch bei größeren Zufallsmatrizen. Berechnen Sie det(A ) und die Eigenwerte von A. Das charakteristische Polynom der Matrix A lautet: λ 4 + 5λ3 + 3λ 2 − 7 λ + 11 und das der Matrix B lautet: λ5 + 3λ 4 − 5λ 2 − 11λ + 5 . Lösung 20. Erzeugen Sie eine 6x6-Zufallsmatrix A. Bestimmen Sie die Eigenwerte und die Eigenvektoren der folgenden Matrix. Lösung 20. Lösung 20.63 (loesung_146) 155 .61 (loesung_144) 62. Berechnen Sie die Determinante und die Spur der beiden Matrizen. Erzeugen Sie eine 4x4-Zufallsmatrix A und zeigen Sie.99 und berechnen Sie erneut die 60. Lösung 20.01 bzw. Vergleichen Sie den Wert der Determinante mit dem Produkt der Eigenwerte.59 (loesung_142) a 22 zu 180.MATLAB V3. 2 ⎤ −9 −7 8 ⎡4 ⎢− 7 − 9 0 7 14 ⎥ ⎢ ⎥ A=⎢ 5 10 5 − 5 − 10⎥ ⎢ ⎥ 7 0 4 ⎥ ⎢− 2 3 ⎢ − 3 − 13 − 7 10 11 ⎥ ⎣ ⎦ Lösung 20.0 Ändern Sie das Matrixelement Eigenwerte. daß A und A T das gleiche charakteristische Polynom haben (die gleichen Eigenwerte).62 (loesung_145) 63.60 (loesung_143) 61. Die Matrix C ist symmetrisch. Also muss eine Näherungslösung x gefunden werden. derart dass Bx − b = min wird.9 156 . Dazu wird die Adjazenzmatrix A des Graphen benötigt. N. N ⇒ WÜ. 5=PA. 4=N. x 2 . dass es von Hof nach Ingolstadt 2 Strecken gibt.9 IN 11. das überbestimmt ist. IN (N = Nürnberg) (PA = Passau) (IN = Ingolstadt) Die Firmen wollen künftig zusammenarbeiten und gegenseitig Fracht übernehmen. die die xy-Koordinaten der Knoten enthält. Geben Sie die Bewertungsmatrix C aus. PA ⇒ HO. Für die Fahrtzeiten werden von den Firmen folgende Angaben (in Minuten) gemacht: WÜ ⇒ HO: 130 R ⇒ HO: 125 HO ⇒ R: 130 M ⇒ WÜ: 150 WÜ ⇒ N: 100 R ⇒ N: 90 HO ⇒ N: 80 M ⇒ N: 100 M ⇒ R: 80 M ⇒ IN: 40 WÜ ⇒ M: 160 R ⇒ IN: 40 WÜ ⇒ PA: 180 R ⇒ PA: 70 Unter Beachtung des skizzierten Streckennetzes kann man aus diesen 14 Angaben lineare Gleichungen für die Fahrtzeiten x1 . PA ⇒ R. IN. x8 auf den skizzierten Strecken aufstellen.. 2=IN. Um mit einem einheitlichen Preisniveau arbeiten zu können. Hof (HO) und München (M) befördern eilige Sendungen zwischen verschiedenen Städten und zwar: WÜ R HO M ⇒ HO.. 6 = x1 + x 2 Beachten Sie.. Die Städte aus Aufgabe 1 seien alphabetisch durchnumeriert: 1=HO. deren Komponenten a m . Die MATLAB-Funktion gplot zeichnet einen Graphen. Es genügt deshalb. N. 7=WÜ. sollen die Sendung nach durchschnittlicher Fahrtdauer und Gewicht berechnet werden. N.1 WÜ 9.n die Fahrtdauer zwischen Stadt m und Stadt n steht. R. Die kürzere von beiden ist in C einzutragen. Regensburg (R).MATLAB V3. Als dritten Parameter kann man ein Plot-Symbol angeben.5 N 11. Beispiel: München-Regensburg: c3. Unsere 7 Städte haben die Koordinaten: Längengrad HO 11. andernfalls ist a m . 6=R. Matrizenrechnung und lineare Gleichungssysteme Vier Kurierdienste mit Sitz in Würzburg (WÜ). Zweiter Parameter von gplot ist eine 2-spaltige Matrix P. Berechnen Sie diese Lösung x. wenn Knoten m mit Knoten n direkt verbunden ist. M. Informieren Sie sich mit help gplot. die Komponenten im rechten oberen Dreieck von C zu berechnen und dann C mit der Transponierten C’ zusammenzusetzen.3 R 12. dass diese nur auf Spalten wirkt.0 20. damit jeder Kurierdienst jede der genannten Städte schnell beliefern kann. Verwenden Sie an dieser Stelle die MATLAB-Funktion min und beachten Sie. in deren Komponente c m . So entsteht ein lineares Gleichungssystem Bx = b .1 PA 13.4 M 11. 3=M.n = 1 sind..n = 0 .10 *Programmieraufgaben 64. Als geeignete Position zur Anbringung der Entfernungsangabe empfiehlt sich der Mittelpunkt zwischen den Endknoten des betreffenden Weges. ihre Spaltennummern den Nummern der Wege (vergl. dass die Längengrade ca.k und j 2 . Um die Zahlenwerte auch im vorhandenen Bild mit Hilfe der Funktion text einzubringen. Mit Hilfe der Funktion text können Sie das Bild mit den Ortsnamen beschriften. 75 km entsprechen.3 48. mit Hilfe der Funktion sprintf bewerkstelligt werden. die Verbindungen als blaue Linien.0 V3.und Ausgabe funktioniert in MATLAB analog zu den entsprechenden C-Anweisungen fscanf. Lösung 20. sind alle Tabellenwerte in Kilometer umzurechnen. damit beide Achsen mit gleichen Einheiten skaliert erscheinen. k . Speichern Sie deren Nummern in einer zweizeiligen Matrix J. k . Wir wollen die Entfernungskilometer zwischen unseren Orten in Luftlinie messen und diese Werte den entsprechenden Wegen zuordnen. help sprintf). Es gilt nur imn = 1 .64 (loesung_147) 157 . Das kann z.1 − P j2 . 2 − P j2 . die nach dem Vorbild der entsprechenden C-Funktion arbeitet (vergl. Die Inzidenzmatrix I eines Graphen kennzeichnet. ist ihre vorherige Konversion in Zeichenketten nötig. welche Wege die einzelnen Knoten verbinden.B. Breitengrade dagegen ca. n im Knoten m beginnt und imn = −1 .6 49.2 49. falls der Weg Nr. Sie benötigen dazu zwei Aufrufe von gplot mit unterschiedlichen Plotsymbolen.4 48. damit das erste Bild nicht gelöscht wird. falls er dort endet. Folglich gibt es in jeder Spalte von I genau eine 1 und eine –1. Um diesen Unterschied auszugleichen. 111 km. Ihre Zeilennummern entsprechen den Knotennummern. 2 ) 2 Berechnen Sie diese Luftlinien und geben Sie die Entfernungen aus. Skizze).MATLAB Breitengrad 50. Dazu benötigen wir die Angaben aus der Matrix P (s.8 48. Übrigens: Formatierte Ein. k . welche Knoten jeder Weg verbindet. Außerdem muss nach den gplot-Befehlen axis equal angegeben werden. Zunächst wird mit der MATLAB-Funktion find anhand I festgestellt. bevor sie in die Matrix P übernommen werden.1 ) 2 + (P j1. fprintf. Stellen Sie die Inzidenzmatrix I zu unserem Graphen auf. Aufgabenteil c).8 Zeichnen Sie das Straßennetz als Graph. Dazwischen muss hold on stehen.0 49. k . Beachten Sie. Jede Spalte k von J enthält damit die beiden Nummern der Endknoten des Weges k. Die Luftlinie ergibt sich nun für jeden Weg k als Abstand der Knoten j1. Die Elemente von I sind fast alle = 0.k : d k = ( P j1. die Städte darin als kleine Kreise. 5% aller Elemente von B liegen im Intervall [ -2s. Prüfen Sie folgende Behauptungen durch MATLAB-Anweisungen nach: i) 68. s]. Stellen Sie fest. Stellen Sie fest. randn sowie fix und round. Mit der Standardabweichung s = 10. Lösung 20. F = AT A + BTB Berechnen Sie die Ränge und Determinanten dieser 4 Matrizen und geben Sie diese 8 Zahlen in Form von 2 Zeilenvektoren aus. Da die Daten in A gleichverteilt sind. ii) 95.7% aller Elemente von B liegen im Intervall [ -3s. Zeichnen Sie im Bild 1 den Mittelwert aller Komponenten von a als horizontale schwarze Linie ein. 2s]. um eine ansehnliche Matrix-Größe zu erhalten. bmin und bmax heißen. für a einen Stern. welche der 4 Matrizen symmetrisch sind. Für diese Aufgabe eignen sich besonders die MATLAB-Funktionen find und length. Bei der Berechnung von A wird fix benötigt. Die Zahlen in A sollen gleichverteilt sein im Intervall [0. Zeichnen Sie die beiden Häufigkeitsverteilungen a und b in 2 getrennten Bildern mit Hilfe der MATLAB-Funktionen plot und figure. MATLAB: hold on verwenden.65 (loesung_148) 158 . D = A.0 Wir wollen mit quadratischen Matrizen arbeiten. Außerdem ist es zweckmäßig. bei B round.MATLAB 65. b. mit ganzzahligen Zufallszahlen. wird der Kurvenverlauf von b in Bild 2 durch folgende Funktion charakterisiert: f (t ) = N2 s 2π −t 2 e 2s 2 Zeichnen Sie diese Funktion ins vorhandene Bild als rote Linie ein. Geben Sie in Ihrem MATLAB-Code zunächst die Zahl N = 100 ein. Sie benötigen dazu die MATLAB-Funktionen rand. Benutzen Sie dazu die MATLABFunktion all oder any. . dass die meisten Werte in der Nähe von Null liegen und die Häufigkeiten nach außen rasch abnehmen. E = ATB + BT A .B + B. Grundbegriffe aus der linearen Algebra und Statistik V3. Berechnen Sie die folgenden Matrizen (.A . bedeutet „elementweise“): C = AB + BA .10) . Warum? Geben Sie das minimale und das maximale Element jeder dieser beiden Matrizen aus (MATLAB-Funktionen max und min richtig anwenden). Achten Sie auch auf die richtige Skalierung der xAchse. Zufallszahlen. Verwenden Sie als Plotsymbol für b einen Punkt. amax. Die Normalverteilung der Komponenten von B sollte sich im Bild 2 dadurch äußern. mit einer for-Schleife zu arbeiten.Die Ergebnisse sollen amin. die in B sollen normalverteilt sein mit Mittelwert 0 und Standardabweichung 10. Verwenden Sie für t ein Raster mit Zehntel-Schritten zwischen den Endpunkten bmin und bmax der horizontalen Achse. wie oft jedes Matrixelement vorkommt und speichern Sie diese Häufigkeiten in Vektoren a bzw.3% aller Elemente von B liegen im Intervall [ -s. sollte in allen Komponenten von a immer in etwa die gleiche Zahl stehen. iii) 99. Erzeugen Sie 2 NxN-Matrizen A und B. 3s]. die wir oben eingeführt haben. um das Bild nicht zu zerstören. Um diese Linie müssen die Werte gleichmäßig streuen. B. Sie sollen damit einige Analysen durchführen. Die Linie soll bis zum Jahresende (365 Tage) reichen. Graphische Ausgabe des Kursverlaufs als blaue Kurve in Figur 1. Zeichnen Sie seinen Jahresendwert als blauen Stern ins vorhandene Bild.66 (loesung_149) 67. um die Kurs-Prognose zu verdeutlichen. Lösung 20. Die optimale Approximationsgerade "durch" die Kurvenpunkte konstruieren.995 .Man erkennt in der b) c) d) 159 .600 bis 2.906 . . Berechnen Sie p(t) für die im Vektor t gespeicherten Jahre und zeichnen Sie damit p(t) als blaue Kurve ins vorhandene Bild. Approximation V3. Geben Sie die Daten als blaue Kringel in einem halblogarithmischen Plot aus.960 2.0 Die Datei pinunze. a) Speichern Sie die beiden Spalten der Tabelle in 2 Vektoren x und y. worin q(t) ein Polynom gleichen Grades wie p(t) ist.900 . Interpolation mit Polynomen und Exponentialfunktion Die Weltbevölkerung hat sich entwickelt wie in der nebenstehenden Tabelle gezeigt. Dazu dient die MATLAB-Routine semilogy. auch die Jahreszahlen durch 1000 zu dividieren. Der Endpunkt soll als roter Sheriffstern (Pentagon) markiert werden. Das optimale Polynom 3. Zeichnen dieser Geraden als rote gestrichelte Linie ins vorhandene Bild. Polynome.000 6.Man erkennt ein Fehlverhalten der Funktion für Daten aus der Vergangenheit: Die Bevölkerungszahl steigt für zurückliegende Jahre vor 1650! Eine weitere Möglichkeit wäre die Darstellung der Bevölkerungsentwicklung durch eine Exponentialfunktion der Form e q (t ) . Grades verwenden. Geben Sie mit title der Graphik den Titel "Weltbevölkerung".608 .728 . In der unteren Zeile steht die Bevölkerungszahl in Milliarden. mit linspace).4u enthält den Kursverlauf in € einer Aktie namens "Pinunze" in den ersten 288 Tagen des Jahres 2011.545 .838 2. wie in der Tabelle durch Punkte angedeutet.650 0. Markierung der Prognose zum Jahresende durch ein grünes Pentagon.850 . Für die Jahresendprognose wollen wir ein Polynom 2.MATLAB 66. Um nicht mit übergroßen Zahlen arbeiten zu müssen empfiehlt es sich für die Rechnung. Grades durch die Kurvenpunkte konstruieren und als grüne gestrichelte Linie bis zum Jahresende einzeichnen.h. Berechnen Sie das Interpolationspolynom p(t) (Grad beachten!) durch alle Knotenpunkte der Tabelle. Speichern Sie seine Koeffizienten in einem Vektor a. Im folgenden werden uns die Jahre von 1.975 3. Speichern Sie diese Zahlen in einem Vektor t (z. . .750 0. 10 9 oder "Giga" im EDV-Jargon. Im einzelnen ist folgendes zu tun: Einlesen der Daten und speichern der Werte in 2 Vektoren t (Tag) und w (Wert).800 0. Graphiken. Jahr Mrd. d. Berechnen Sie seine Koeffizienten und speichern Sie diese in einem Vektor b.272 Wir wollen einige Untersuchungen mit diesen Daten anstellen. Sie funktioniert ansonsten wie plot.100 interessieren.171 . Berechnen Sie e q ( t ) für die im Vektor t gespeicherten Jahre und zeichnen Sie damit e q (t ) als grüne Kurve ins vorhandene Bild. Wertetabellen. die aus einem Nachschlagewerk entnommen ist. Lösung 20. π ] . In MATLAB wird die verwandte Funktion gamma(x + 1) = x! als Standardfunktion bereitgestellt. Auf den meisten Taschenrechnern ist diese Funktion nur für ganzzahlige x verfügbar. y ∈ [−5. Zeichnen Sie die Funktionen f (x) = x! rot und g(x) = 1 / x! magentafarben für x ∈ [ −π . um das Integral I 1 = x!dx zu 0 d) ∫ 3 berechnen. Um ein Maximum zu bestimmen. sucht man deshalb ein Minimum der negativen Funktion.67 (loesung_150) 68. Schränken Sie mit axis das Bildfenster ein auf den Bereich x ∈ [ −π .7] und zeichnen Sie ins vorhandene Bild die x. Verwenden Sie dazu linspace mit 501 Rasterpunkten. Funktion-m-Files.und y-Achsen als schwarze Linien sowie den Nullpunkt als schwarzen Kringel. Verwenden Sie die MATLAB-Funktion quad. Zusätzlich deutet sich in der Zukunft der Untergang der Menschheit an. dass MATLAB hierzu die Funktionen fminbnd und fminsearch zur Minimumsuche anbietet. Als erster Parameter ist der Funktionsname @fakultaet einzutragen. Extremwertbestimmung Als Beispielfunktion wollen wir die "Fakultätsfunktion" f(x) = x! betrachten.68 (loesung_151) 160 . π ] . Lösung 20. f) Berechnen Sie die 3 im Bild erkennbaren Extremwerte der Funktion f (x) = x! und markieren Sie sie durch blaue Sterne.0 Vergangenheit wieder das Fehlverhalten der Funktion. Beachten Sie.MATLAB V3. a) b) c) Definieren Sie die Fakultätsfunktion in einem function-m-File fakultaet. −2 e) Berechnen Sie das Integral I 2 = −3 ∫ x! dx mit Hilfe eines inline-Aufrufs in quad oder mit Hilfe eines zweiten function-m-Files für die Funktion g(x) = 1 / x!. inline-Funktionen. Integrale berechnen.m als y = gamma (x+ 1). Programmiertechnisch hilft man sich hierfür zweckmäßig wieder mit inline oder einem weiteren function-m-File.