MATLAB Eine Einführung

Ähnliche Dokumente
Grundlagen von MATLAB

Einführung in MATLAB + MATLAB Simulink. Dipl.-Inf. Markus Appel

Schülerworkshop Computertomographie Mathematik als Schlüsseltechnologie

4.2 Selbstdefinierte Matlab-Funktionen 1. Teil

R-Wörterbuch Ein Anfang... ein Klick auf einen Begriff führt, sofern vorhanden, zu dessen Erklärung.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

WiMa-Praktikum 1. Woche 8

Zyklen: break und continue

Java Übung. Übung 2. Werner Gaulke. 19. April Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung.

Übersicht Shell-Scripten

10:Exkurs MATLAB / Octave

Projekt 3 Variablen und Operatoren

Kurze Einführung in Octave

2. Einführung in das Ingenieurtool MATLAB

Algorithmen und ihre Programmierung

Funktionen in Matlab. Lehrstuhl für Angewandte Mathematik Sommersemester und 29. Mai 2008

Programmsteuerung mit PHP - if/else, elseif,switch

Einführung in C. EDV1-04C-Einführung 1

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit

Programmieren in MATLAB Mehr als nur ein Taschenrechner

Java I Vorlesung Imperatives Programmieren

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Einstieg in die Informatik mit Java

Einführung in Matlab Was ist MATLAB? Hilfe Variablen

Funktionen in JavaScript

Unterlagen. CPP-Uebungen-08/

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});

RO-Tutorien 3 / 6 / 12

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

1. Einstieg in MATLAB

Variablen in MATLAB. Unterschiede zur Mathematik: Symbolisches und numerisches Rechnen. Skriptdateien. for-schleifen.

Computerorientiertes Problemlösen

Wertebereich und Genauigkeit der Zahlendarstellung

Einstieg in die Informatik mit Java

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Die Sprache C# Datentypen, Speicherverwaltung Grundelemente der Sprache. Dr. Beatrice Amrhein

Tag 2 Repetitorium Informatik (Java)

1 Konsole öffnen. 2 matlab & und return eingeben. 3 Konsole dauerhaft geöffnet lassen. 1 Menüpunkt File - Exit MATLAB oder. 2 quit (und return) oder

Sprachkonstrukte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

m-files sind Folgen von MATLAB-Anweisungen oder Daten-Files.

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 3. Grunddatentypen, Ausdrücke und Variable

Einführung in die Programmierung (MA8003)

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben.

JAVA-Datentypen und deren Wertebereich

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Kapitel 3: Variablen

3 Kurzeinführung in Matlab

Einstieg in die Informatik mit Java

Brückenkurs Programmieren

Ralf Kirsch Uwe Schmitt. Programmieren inc. Eine mathematikorientierte Einführung. Mit 24 Abbildungen und 13 Tabellen. Springer

Fachhochschule Südwestfalen Wir geben Impulse. Kontrollstrukturen und Schleifen in Octave

Arithmetik in der tcsh

Matlab Übersicht. Matlab steht für MATrix LABoratory, die Fa. The Mathworks wurde 1984 gegründet

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen

Algorithmen zur Datenanalyse in C++

4 Formelsammlung C/C++

Felder. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3

RO-Tutorien 15 und 16

Funktionen in JavaScript

Java Einführung Operatoren Kapitel 2 und 3

Java: Eine kurze Einführung an Beispielen

Programmieren lernen mit Visual Basic

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Einstieg in die Informatik mit Java

Klassen als Datenstrukturen

2. Programmieren in MATLAB (1)

WESTFÄLISCHE WILHELMS-UNIVERSITÄT MÜNSTER. Advanced Matlab. living knowledge WWU Münster. Mario Ohlberger, Martin Drohmann, Stefan Girke 10/05/2012

Die Sprache C# Datentypen, Speicherverwaltung Grundelemente der Sprache. Dr. Beatrice Amrhein

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 1

Softwarepraktikum. zu Elemente der Mathematik. Carsten Rezny Institut für angewandte Mathematik Universität Bonn

Modellierung und Programmierung 1

C++ - Einführung in die Programmiersprache Funktionen. Leibniz Universität IT Services Anja Aue

Funktionen nur wenn dann

Algorithmen & Programmierung. Ausdrücke & Operatoren (1)

Bash-Skripting Linux-Kurs der Unix-AG

Python Einführung. Monica Selva Soto. 24 März Mathematisches Institut

Programmierung mit C Zeiger

MATLAB Onlinevorlesung. Dipl.-Inf. (FH) Patrick Rogge Seite 1

Intensivübung zu Algorithmen und Datenstrukturen

PHP 5.4 ISBN Stephan Heller, Andreas Dittfurth 1. Ausgabe, September Grundlagen zur Erstellung dynamischer Webseiten GPHP54

Übersicht PERL. !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!!

Einstieg in die Informatik mit Java

Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen

Kapitel 3. Grunddatentypen, Ausdrücke und Variable

Die einfachsten Anweisungen

Crashkurs Python und Sage U23 Krypto-Mission

Crashkurs Haskell Mentoring WiSe 2016/17. Anja Wolffgramm Freie Universität Berlin

Transkript:

MATLAB Eine Einführung Samuel Ferraz-Leite Institut für Analysis und Scientific Computing Technische Universität Wien 1

MATLAB-Buch Christoph Überhuber Stefan Katzenbeisser Dirk Praetorius MATLAB 7 Eine Einführung Springer-Verlag, Wien, 2005 2

Was ist Matlab? Matlab = Matrix Laboratory 1970: Lehrmittel für den Unterricht in Lineare Algebra, Numerische Mathematik etc Jetzt: Mächtiges Hilfsmittel für Mathematiker und Ingenieure Primäres Einsatzgebiet: Numerisches Lösen mathematischer Aufgabenstellungen Matlab hat eine grafische Benutzeroberfläche, kann aber auch (z.b. auf Unix-Systemen) von der Kommandozeile aus benutzt werden. Offizielle HP: www.mathworks.com 3

Matlab-Toolboxen Toolboxen sind Module, die dazu dienen spezielle mathematische Aufgaben effektiv und einfach zu lösen. Symbolic Math Toolbox Optimization Toolbox Curve Fitting Toolbox Partial Differential Equation Toolbox Statistics Toolbox Financial Toolbox etc Lizenz für Toolboxen müssen im Allgemeinen gesondert erworben werden. 4

Was ist Matlab? Matlab ist ein voll programmierbares problem solving environment. Die dabei verwendete Programmiersprache wird ebenfalls, obwohl didaktisch nicht optimal, als Matlab bezeichnet. Matlab ist eine Interpretersprache, d.h. der Quelltext (=Liste von Anweisungen) wird beim Lesen ausgeführt. Andere Programmiersprachen (z.b. C, Fortran, ) sind Compilersprachen, d.h., der Quelltext wird zuerst in eine ausführbare Datei übersetzt (compiliert). Diese Datei (das so genannte executable) wird dann am Prozessor ausgeführt. Wesentlicher Vorteil von Interpreter-Sprachen ist deren Plattformunabhängigkeit. Wesentlicher Nachteil von Interpreter-Sprachen ist, dass die Ausführung der Programme langsam ist. 5

Was ist Matlab? Matlab ist ein ausgezeichnetes Werkzeug und stellt eine gute und für Mathematiker einfache Programmiersprache zur Verfügung. Leider ist Matlab eine kommerzielle Software. Es gibt Konkurrenzprodukte, von denen einige frei erhältlich sind: Octave (www.octave.org) ist eine zu Matlab weitgehend kompatible Programmiersprache und kann alternativ zur Vorbereitung der Übungsaufgaben verwendet werden. O-Matrix (www.omatrix.com) ist zwar nicht frei erhältlich, bietet aber eine zeitlich beschränkte freie Trial-Version an. Matlab ist in der jeweils aktuellsten Version auf der cad.zserv.tuwien.ac.at, wo Sie ihre Accounts haben installiert, so dass man bequem remote mit Matlab arbeiten kann. 6

Arbeiten im Workspace Im Workspace, der Arbeitsumgebung, kann man alle gängigen mathematischen Operationen durchführen und Matlab-Funktionen sowie selbst programmierte Funktionen ausführen. Man kann Variablen anlegen, indem man ihnen einfach einen Wert zuweist. Deklaration ist nicht notwendig. Wenn nicht anders angegeben, werden alle Variablen in Matlab vom Typ double angelegt. Double-Variablen sind Gleitpunktzahlen in doppelter Genauigkeit (entsprechend dem IEEE Standard) Jeder Befehl erzeugt ein Echo (=Ausgabe am Bildschirm). Dieses kann durch einen nachgestellten Strichpunkt unterdrückt werden. Beispiele: a=3.7 legt eine Variable a an, die den Wert 3.7 hat b=[2,4] legt einen Vektor b mit Komponenten 2 und 4 an 7

Arbeiten im Workspace Es gibt neben dem Standard-Datentyp double eine Reihe weiterer - manchmal sehr nützlicher - Datentypen. Der speichersparende Datentyp logical wird verwendet um Wahrheitswerte (true, false) auszudrücken. Prinzipiell ist 0=false und 1=true (auch alle anderen Werte ungleich 0 bedeuten true). Seit Matlab 7 stehen auch Gleitpunktzahlen mit einfacher Genauigkeit (single) sowie ganzzahlige Datentypen zur Verfügung: uint8, int8, uint16, int16, uint32, int32. Achtung bei arithmetischen Operationen mit verschiedenen Datentypen Beispiele: a=int8(3.7) legt eine Variable a an, die den Wert 3 hat b=logical(3) legt eine Variable b mit Wert 1=true an 8

Arbeiten im Workspace Matlab bietet einfache Möglichkeiten um Vektoren (eindimensionale Felder) anzulegen. Sytax: Variablenname=[Wert1, Wert2,.] Auch Matrizen (zweidimensionale Felder) können sehr einfach angelegt werden. Syntax: Variablenname=[Wert11, Wert12,, ;Wert21, Wert22, ;Wert31,..] Beispiele: a=[2,4.4,-5]; legt einen Vektor (ohne Echo) an. b=[2,3;3,1] legt eine 2x2 Matrix an. 9

Arbeiten im Workspace Bemerkungen zu Variablennamen: Jede Variable muss einen eindeutigen Namen haben (höchstens 31 Zeichen lang, weitere Zeichen werden ignoriert) Name muss mit einem Buchstaben anfangen und darf aus Groß- und Kleinbuchstaben (keine landesspezifische Zeichen), Zahlen und Unterstrichen bestehen. Achtung! Matlab unterscheidet zwischen Groß- und Kleinschreibung Beispiele: gültige Namen: A, a, Affe, A_f_f_e, a3dsju s ungültige Namen: 3a, a.f.f.e, eine-variable 10

Arbeiten im Workspace Durch das Anlegen einer Variablen wird automatisch von Matlab genügend Speicher reserviert. Variablen werden Matlab-intern immer als dynamische Matrizen verstanden, d.h. man kann auf beliebige Einträge schreiben und lesen. Zwischenräume werden durch 0 aufgefüllt. Löschen einer Variable mit clear Variablenname who bzw. whos gibt Auskunft über die im Workspace vorhandenen Variablen. Beispiele: a=3; anlegen einer Variablen (1x1-Matrix) a(4)=4; dynamisches Erweitern zu einer 1x4-Matrix a(2) erzeugt die Ausgabe 0 clear a löscht die ganze Matrix wieder 11

Arithmetik Der Zuweisungsoperator wird durch ein einfaches Gleichheitszeichen = symbolisiert. Operationen auf einfachen double-variablen: siehe Tabelle. Operationen höherer Priorität werden zuerst durchgeführt. Bei gleicher Priorität erfolgt Auswertung von links nach rechts. Operator Operation Priorität ^ a^b 4 - -a 3 * a*b 2 / a/b 2 + a+b 1 - a-b 1 12

Arithmetik Arithmetik ist auch für Felder (Vektoren, Matrizen) definiert Elementweise Operationen auf double-feldern: siehe Tabelle. Operationen höherer Priorität, werden zu erst durchgeführt. Bei gleicher Priorität erfolgt Auswertung von links nach rechts. Der Operator * ohne führenden Punkt bedeutet die MatrixMatrix-Multiplikation der linearen Algebra. Operator Operation Priorität.^ a.^b 3.* a.*b 2./ a./b 2 + a+b 1 - a-b 1 13

Logische Operatoren Um Aussagen (z.b. a ist größer als b) in Matlab formulieren zu können, stehen logische Operatoren zur Verfügung. Logische Operatoren können auf double-variablen oder double-felder angewandt werden. Ergebnis ist eine logische Variable, bzw. ein logisches Feld mit Werten true oder false. Mit any und all kann ein logisches Feld mit oder bzw. und zu einer einzigen logischen Größe reduziert werden. Operator Bedeutung < kleiner als <= Kleiner oder gleich >,>= größer, größer od. gleich == gleich ~= ungleich 14

Skripts Skripts sind Dateien, die eine Reihe von Anweisungen enthalten. Dateien, die in der Form Skriptname.m gespeichert werden, können vom Workspace aus mit Skriptname ausgeführt werden. Man kann also kleine Programme als Skripts speichern. Allerdings haben Skripts nicht die Möglichkeit direkt das Ergebnis einer Berechnung ans System zurückzuliefern. Beispiele: my_first_script.m, 15

Skripts-Beispiele Allgemeines zu Variablen: names_and_declaration.m Arithmetik und logische Operatoren: double_arithmetik.m vector_arithmetik.m logical_operators.m Die Tatsache, dass ein Skript keine Paramter vom Aufrufer erhalten kann und keine Ergebnisse zurückgeben an wirkt sich offensichtlich sehr einschränkend auf die Funktionalität aus. 16

Funktionen Funktionen sind echte Matlab-Programme, die mit Parametern aufgerufen werden können und Ergebnisse liefern. Konzeptuell sind Matlab-Funktionen ähnlich zu verstehen wie mathematische Funktionen. sin(x) hat zum Beispiel einen Parameter x (bei mathematischen Funktionen üblicherweise Variable genannt) und liefert bei Aufruf mit etwa sin(pi) ein Ergebnis (nämlich 0). Obwohl sin eine bereits vorprogrammierte MatlabFunktion ist, können selbstprogrammierte Funktionen genauso aufgerufen und verwendet werden 17

Funktionen Funktionen sind in Dateien der Form funktionsname.m zu speichern. Die erste Zeile ist der sogenannte Funktionskopf: function ergebnisvariable=funktionsname(parameter) Kommentare, die unmittelbar unter dem Funktionskopf stehen, werden als Hilfetext bei Aufruf von help Funktionsname angezeigt. Die Funktion liefert als Ergebnis den Wert der Variable ergebnisvariable nach Abarbeiten aller Befehle. Mit function [var1 var2 ]=name(parameter) kann eine Funktion auch mehrere Rückgabewerte haben. 18

Funktionen Es können auch mehrere Funktionen in einer Datei gespeichert werden. Ausgeführt wird allerdings nur die erste Funktion. Funktionen können mit end beendet werden, müssen aber nicht. In einer Datei muss die Syntax einheitlich sein. Achtung! In Matlab werden alle Variablen nach dem Call-by-value-Prinzip übergeben. Das heißt, dass nur der Wert der Variable übergeben wird. Insbesondere kann eine Funktion nicht den Wert einer Variable ändern. Beispiele: hoch_drei.m, mehrere_funktionen.m 19

Verzweigungen Bereits beim Programmieren einfachster Aufgaben wird klar, dass es oft notwenig ist abhängig vom Wert von Variablen verschiedene Befehle auszuführen. Will man etwa die abgebildete Funktion implementieren, so muss man abhängig vom Bereich der Eingangsgröße x entscheiden, welchen Wert die Funktion hat. Um solche Entscheidungen zu realisieren, bieten Programmiersprachen das Konzept der Verzweigung an. In Matlab gibt es die einfache Verzweigung if sowie die Auswahlverzweigung switch. 20

Verzweigungen Einfache Verzweigung if Syntax: if bedingung anweisung elseif bedingung anweisung else anweisung end else und elseif sind optional. Beliebig viele elseif. Achtung! end ist notwendig. Beispiele: if_else.m 21

Verzweigungen Auswahlanweisung switch Syntax: switch case-ausdruck case fall 1 anweisung 1 case fall 2 anweisung 2 otherwise anweisung end Beliebig viele Fälle erlaubt. otherwise ist optional. Beispiele: switch_demo.m 22