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

Ähnliche Dokumente
Steuerung von Programmabläufen. Lehrstuhl für Angewandte Mathematik Sommersemester Mai und 15. Mai 2008

Prof. Dr. Stefan Funken, Dipl.-Ing. Christoph Erath 15. Mai WiMa-Praktikum (Matlab 2/9) Einführung in LATEXund Matlab

Steuerung von Programmabläufen. Vorlesung Computergestützte Mathematik zur Linearen Algebra. Lehrstuhl für Angewandte Mathematik Sommersemester 2009

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

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

Einführung in MATLAB Blockkurs DLR:

4.2 Selbstdefinierte Matlab-Funktionen 1. Teil

2. Programmieren in MATLAB (1)

Matlab: eine kleine Einführung 4

Matlab: eine kleine Einführung 2

Matlab: eine kleine Einführung

MATLAB: Kapitel 3 Programmieren

Praktikum zur Vorlesung: Numerische Mathematik für Lehramt SS Matlab: Fortsetzung. Jan Mayer. 4. Mai 2006

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

Schülerworkshop Computertomographie Mathematik als Schlüsseltechnologie

Matlab Selbstlernkurs

Eine kleine Anleitung zum Programmieren mit MATLAB

Programmiervorkurs für die Numerik Teil 2/4

Programmieren mit statistischer Software

WiMa-Praktikum 1. Woche 8

Musterklausur_2 Grundlagen Informatik

Schriftliche Prüfung zur Computergestützten Mathematik zur Linearen Algebra (PO 2014: Erste Klausur / PO 2008: Klausur)

3 Kurzeinführung in Matlab

Zweiter Teil des Tutorials. Workspace M-files Matrizen Flow Control Weitere Datenstrukturen Gemeinsames Beispiel erarbeiten

Übung April Was ist Matlab? Aufgabe 1.1: Hochschule Bochum Sommersemester 2014 Vorlesung Autonome Roboter Prof. Dr.

Ingenieurinformatik II Numerik für Ingenieure Teil 2

Programmieren in MATLAB Mehr als nur ein Taschenrechner

Einführung in MATLAB Blockkurs DLR:

5 Funktionen und Skripte

Zwei-Punkt-Randwert-Aufgabe. Teil I Motivation Skript-Files Function-Files. Mathematische Anwendersysteme Einführung in MATLAB

Klausur zur BSc-Vorlesung Rechnergestützte Modellierung des WS Termin

Präzedenz von Operatoren

Lösung zum 6. Übungsblatt Lineare Algebra für Ingenieure

Einführung in die Programmiersprache Julia Vorlesung Computerphysik Sommersemester 2018 Ralf Bulla Universität zu Köln

2. Einführung in das Ingenieurtool MATLAB

Informationsverarbeitung im Bauwesen

Kurze Einführung in Octave

Numerik-Programm, mittlerweile mit vielen Erweiterungen (Toolboxen) Matlab = Matrix Laboratory Sehr gute Doku (doc, help, lookfor)

10:Exkurs MATLAB / Octave

Schriftlicher Test zu Matlab (90 Minuten) VU Einführung ins Programmieren für TM. 17. Juni 2011

Vorlesung Skriptsprachen Duale Hochschule Stuttgart Sommersemester Dipl.-Ing. (FH) Volker Schepper

Funktionen in JavaScript

MATLAB Ferienkurs WS 2010/2011

Einführung in die Programmierung (MA8003)

Praktikum Mathematik am Computer HS 2018 Prof. H. Harbrecht R. Brügger, S. Bruggmann, R. Dohrau Universität Basel. MATLAB Tutorial

Funktionen in Matlab. Nutzerdefinierte Funktionen können in.m-datei gespeichert werden

19. Januar Universität Erlangen-Nürnberg Department Mathematik PD Dr. Markus Bause. . Danach liefert die Gauss-Elinination. .

Eine kurze Einführung in GNU Octave (Teil 2)

Einführung in das rechnergestützte Arbeiten

MATLAB als Programmiersprache

MATLAB Eine Einführung

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

Einführung in Matlab Teil I

Numerische Analysis - Matlab-Blatt 1

Mathematik am Computer 6. Vorlesung: Matlab, Teil I

Schleifen. Auch das Berechnen von Produkten kann analog formuliert werden.

Programmieren in MATLAB Mehr als nur ein Taschenrechner

Numerik für Ingenieure I Wintersemester 2008

MATLAB Einführung. Numerische Methoden für ITET und MATL Dr. S. May, D. Devaud. ETH Zürich, Seminar for Applied Mathematics

Eine kurze Einführung in Matlab

Zugriff auf Matrizen. Anhängen von Elementen. Punktweise Operatoren. Vektoren und Matrizen in MATLAB II

Einführung in MATLAB

Lösungsvorschlag zur Modulprüfung Numerische Methoden Sommersemester 2016

Einführung in MATLAB. Grundlagen für die Übungen begleitend zur Vorlesung Neuroinformatik I

PPS "Bits on Air" 1. Teil, Matlab-Tutorial Vorbereitungsaufgaben (Lösungsvorschläge)

Lineare Algebra für D-ITET, D-MATL, RW. Beispiellösung für Serie 12. Aufgabe Herbstsemester Dr. V. Gradinaru D. Devaud.

Elastodynamik 2 Lösungsblatt 1. [1 l l N /m N /m 6000 N 3000 N 6000 N 4000 Nm] =0,5m = 3000 N. =0,00060 m = 6000 N

Probeklausur Informatik 2 Sommersemester 2010

Übung zur Vorlesung EidP (WS 2018/19) Blatt 4

C Dritte Übungseinheit

Informatik I (D-MAVT)

Matlab: eine kurze Einführung

Grundlagen der Videotechnik (Angewandte Mediensysteme/Prof. Schuller)

Grundlagen von MATLAB

Matlab Praktikum - Tag 3

Algorithmen für die Speicherhierarchie

Beispiellösung Serie 7

Minimalpolynome und Implikanten

Mathematische Computer-Software

Programmieren mit dem TI-92

Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, Uhr Bearbeitungszeit: 105 Minuten

Programmieren. Aufgabe 1 (Eine erste Datenstruktur)

Grundlagen der Programmierung

Mathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016

1 Berechnung von Summen (ca = 10 Punkte)

Test 2, Musterlösung. Name, Klasse: Semester: 1 Datum: Teil ohne Matlab

Mathematik am Computer 4. Vorlesung Matlab: Teil 1

Einführung in MATLAB für Maschinenbauer im ersten Semester

Programmsteuerung mit PHP - if/else, elseif,switch

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

Funktionen; Rekursion

This image cannot currently be displayed. Java à Matlab. bereitgestellt von Dr. Lukas Faessler 12/4/17

D-ITET, D-MATL. Prüfung Numerische Methoden, Sommer 2012 Dr. Lars Kielhorn

*** Viel Erfolg!!! ***

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Klausur: Grundlagen der Informatik I, am 27. März 2009 Gruppe: E Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Transkript:

Funktionen in Matlab Vorlesung Computergestützte Mathematik zur Linearen Algebra Lehrstuhl für Angewandte Mathematik Sommersemester 2008 15. und 29. Mai 2008

Funktionen in Matlab Wir kennen schon diverse Matlab-Funktionen: sin, cos, diag, size,... diese wurden meist durch y = funktion(x) aufgerufen, wobei x eine Eingabevariable und y eine Ausgabevariable war. was in der Funktion passiert, ist für uns unsichtbar (black box) der Funktionsaufruf hinterlässt im Unterschied zu Skripten keine Spuren (z.b. Hilfsvariablen) im Arbeitsspeicher. Matlab kann nicht nur durch Skripte sondern auch durch Funktionen ergänzt werden!

Matlab-eigene Funktionen In Matlab gibt es so genannte built-in Funktionen, die besonders schnell laufen und nicht in Matlab programmiert sind. Beispiel: type diag Es gibt aber auch viele in Matlab programmierte Funktionen: Beispiel: type flipud Funktionen sind wie Skripte Textdateien, deren Name mit.m endet.

Funktionen Aufbau einer Funktion: 1. Definition der Funktion (abgespeichert in funname.m) function [out_1,out_2,...,out_k] =... funname(in_1,in_2,...,in_m) Die Listen der Ein- oder Ausgabevariablen können auch leer sein. 2. Kommentarzeilen (was tut die Funktion, welche Ein- und Ausgabevariablen muss der Benutzer verwenden). Der erste zusammenhängende Block von Kommentarzeilen wird bei help funname angezeigt. Die erste Zeile der Kommentarzeilen wird bei lookfor durchsucht.

Funktionen, Fortsetzung 3. Häufig folgt dann die Überprüfung der Eingabedaten: sind genügend Eingabevariablen vorhanden? sind die Eingabedaten vernünftig? sind höchstens k Ausgabevariablen gefragt? Falls dies nicht der Fall ist: Fehlermeldung und Ausstieg 4. Matlab-Befehle für die eigentliche Funktion Die Variablen in_1,...,in_m und out_1,...,out_k und alle in der Funktion neu definierten Variablen sind lokal, also nicht im Matlab-Workspace vorhanden. Aufruf: (es darf x k und y m sein) [out_1,...,out_x]=funname(in_1,in_2,...,in_y)

Beispiel ggt als Funktion, gespeichert in ggt.m function g = ggt(m,n); % function g = ggt(m,n); % Berechnung des ggt zweier ganzer Zahlen if (m > 0 & n > 0) while m ~= n... end g = m; else error( fehlerhafte Eingabedaten ); end Aufruf: x=3; y=5; f=ggt(x,y); whos

Arbeitsspeicher Aufruf: f=ggt(x,y) Funktion g=ggt(m,n) Matlab-Workspace vorher: x,y nachher: x,y,f x m y n f g ggt-workspace Input: m,n Output: g Der Workspace kann mit whos angezeigt werden (am Matlab-Prompt bzw. innerhalb der Funktion ggt)

Regeln für Funktionen I Für Funktionsnamen gelten dieselben Regeln wie für Variablen Eine Funktion endet nachdem die letzte Zeile ausgeführt wurde oder durch ein return-kommando Eine Funktion kann durch warning( eine Warnung ) eine Warnung geben. Im Unterschied zu disp( eine Warnung ) können durch warning on bzw. warning off Warnungen global an- bzw. ausgeschaltet werden Matlab-Funktionen können Skripte oder andere Matlab-Funktionen aufrufen.

Regeln für Funktionen II In einem m-file können mehrere Funktionen abgespeichert werden. Solche Unterfunktionen werden an die erste Funktion (die Hauptfunktion) angehängt. Sie beginnen mit einem Standard function-kommando und genügen denselben Regeln wie vorher. Unterfunktionen können durch die Hauptfunktion oder durch andere Unterfunktionen aus demselben m-file aufgerufen werden, nicht aber aus anderen Funktionen oder Skripten. Unterfunktionen haben ihren eigenen lokalen Arbeitsspeicher. Die Reihenfolge von Unterfunktionen spielt keine Rolle.

Beispiel: Binomialkoeffizienten Aufgabe: Gegeben sei eine Funktion f=fac(n) die f = n! liefert und in fac.m gespeichert ist. Mit dieser soll ( n k) berechnet werden: ( ) n = k { 1, n = k oder k = 0 n! (n k)!k!, 0 < k < n Lösung: function b=bin(n,k) Input: n,k Output: b

function b = bin(n,k); % function b = bin(n,k); Binomialkoeffizient if (n == k k == 0) b = 1; elseif (0 < k & k < n) b = fac(n)/fac(n-k)/fac(k); else error([ erster Eingabewert muss groesser,... als der zweite sein ]); end

Arbeitsspeicher Matlab n,k b bin fac

Beispiel: Approximation an e x Aufgabe: Berechnen Sie so viele Folgenglieder ( x n = 1 + x n, n) bis gilt x n x n 1 tol Lösung: while-schleife

Berechnung von Funktionen Aufgabe: Schreiben Sie eine Funktion function y=fun1(x), mit der Sie f (x) = sin(x)/x auswerten können. Falls x ein Vektor oder eine Matrix ist, soll die Funktion für jedes Element berechnet werden. Lösung: Fallunterscheidung für Elemente von x = 0 nötig: Für x < 10 5 verwende Taylor-Entwicklung: sin(x) x = 1 1 3! x2 + 1 5! x4 1 7! x6 Bestimme diese Elemente mit find. Achtung: find gibt Spaltenindizes zurueck, daher schreibe x zunächst als Vektor.

Beispiel: Mandelbrot-Menge Aufgabe: Bestimme alle z C, welche unter der Abbildung z z 2 + c gestartet mit z = c beschränkt bleiben. Lösung: 1. Definition von Punkten z jk C in einem Rechteck 2. Funktion auf diesen Punkten, Startwert z jk = c für alle j,k 3. Führe Iteration für alle z jk gleichzeitig aus (for- oder while-schleife) 4. Plotte alle Punkte z jk mit z jk < M (z.b. M = 10 6 )