Programmieren in MATLAB Mehr als nur ein Taschenrechner

Ähnliche Dokumente
Programmieren in MATLAB Mehr als nur ein Taschenrechner

Was ist MATLAB? Typische Anwendungen

Was ist MATLAB? Typische Anwendungen

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

4.2 Selbstdefinierte Matlab-Funktionen 1. Teil

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

Schülerworkshop Computertomographie Mathematik als Schlüsseltechnologie

Einfache Bedingte Ausführung

Matlab Selbstlernkurs

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

Mathematische Computer-Software

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

Ingenieurinformatik II Numerik für Ingenieure Teil 2

Wima 1 - Praktikum (Woche 6)

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

Kurze Einführung in Octave

Programmieren in C/C++ und MATLAB

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

Einführung in die Programmierung (MA8003)

MATLAB Ferienkurs WS 2010/2011

Grundlagen der Programmierung

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

Übung 6: Fast Fourier Transformation

2. Einführung in das Ingenieurtool MATLAB

Java: Eine kurze Einführung an Beispielen

MATLAB: Kapitel 3 Programmieren

Eine kurze Einführung in Matlab

Bei der Und-Verknüpfung müssen beide Ausdrücke wahr sein, dass der gesamte Ausdruck wahr wird. a=1; b=2; a=1; b=3; else. endif

Ein kleiner Matlab Primer Frank Schimmel

Übung 6: Fast Fourier Transformation

Einführung in die Informatik I

Einführung in MATLAB Blockkurs DLR:

Grundlagen der Programmierung

Matlab: eine kleine Einführung 4

Matlab: eine kleine Einführung 2

Programmiervorkurs für die Numerik Teil 2/4

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

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

Tutorial: Taylorpolynom in MATLAB

10:Exkurs MATLAB / Octave

Ingenieurinformatik Teil 2 (Numerik für Ingenieure)

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

MATLAB - Funktionen. function fcn (Parameterliste) 1. Zeiger

MATLAB Eine Einführung

Eine Einführung zum numerischen Programmieren mit Matlab

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

Matlab: eine kleine Einführung

Matlab: Grundlagen und Hilfen

Programmieren I. Kapitel 5. Kontrollfluss

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

Arbeitsblätter für Algorithmierung und Strukturierung

Crashkurs: MATLAB (Teil II)

WiMa-Praktikum 1. Woche 8

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

Einführung in die Programmierung (MA8003)

2. Programmieren in MATLAB (1)

Eine kleine Anleitung zum Programmieren mit MATLAB

Grundlagen der Videotechnik (Angewandte Mediensysteme/Prof. Schuller)

C# - Einführung in die Programmiersprache Bedingte Anweisungen und Schleifen

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

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

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

Kontrollstrukturen (1)

Praktikum Ingenieurinformatik. Termin 4. Funktionen, numerische Integration

Zyklen: break und continue

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

4.4 Imperative Algorithmen Verzweigung und Iteration

MATLAB als Programmiersprache

Tagesprogramm

Matlab: eine kurze Einführung

Programmiervorkurs für die Numerik Teil 1/4

Inhaltsverzeichnis. Angelika Bosl. Einführung in MATLAB/Simulink. Berechnung, Programmierung, Simulation. ISBN (Buch):

Ulrich Stein

PHP. M.Sc. Nadine Preuß Geographische Analyse- und Darstellungsmethoden WS 15/

Programmieren. Aufgabe 1 (Eine erste Datenstruktur)

Übungen zur Einführung in die wissenschaftliche Programmierung. MATLAB Einführung Teil II. Teil I. Teil II

Unterprogramme: Formalargumente und Übergabeargumente

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

3 Kurzeinführung in Matlab

Leseprobe. Ulrich Stein. Programmieren mit MATLAB. Programmiersprache, Grafische Benutzeroberflächen, Anwendungen. ISBN (Buch):

4 Formelsammlung C/C++

Arbeitsblätter für Algorithmierung und Strukturierung C #

99 - Struktogramme - 2. Sequenz I

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

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

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

Vorsemesterkurs Informatik Übungsaufgaben. Tag 4a - Python

Python für Linguisten

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

Analysis mit dem CAS

Übung 5. Symbolische/Nummerische Integralrechnung. clear all clc. syms x % Definition symbolischer Variablen

Javakurs für Anfänger

Programmiertechnik 1 FOR-SCHLEIFEN

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Transkript:

Computational Physics 1, Seminar 02 Seite 1 Programmieren in MATLAB Mehr als nur ein Taschenrechner 1) Definition eigener Funktionen Anlegen eines neuen m-files im m-file-editor mit folgem Beispielinhalt: function summe=addi(s1,s2) % Berechnung der Summe zweier Zahlen summe=s1+s2; 1. Zeile: Keywort (function) Ausgangsargument (summe) = Funktionenname (addi) Eingangsargumente (s1 und s2) 2. Zeile: Komentar der bei help addi angezeigt wird 3. Zeile: Funktionskörper, irgwo muss dem Ausgangsargument ein Wert zugewiesen werden Abspeichern des m-files mit dem Namen addi.m im Arbeitsverzeichnis Ausprobieren: >> addi(1,2) ans = 3 2) ZUSATZ: Hilfe zu eigenen Funktionen Der help befehl druckt den ersten zusammenhängen Kommentar (%) Block >> help addi Berechnung der Summe zweier Zahlen 3) Funktionen als Argument von Funktionen Sollen Funktionen auf beliebige zu wähle Funktionen wirken, müssen diese als Argument an die Funktion übergeben werden. Übergabe erfolgt in Form von handle. >>func=@(x)(sin(x)).^2 Die Funktioneklaration muss die Übergabe des fhandle enthalten: function x=plot_funktion(fhandle,x) Innerhalb der Funktion wird die übergebene Funktion durch ihren fhandle mit feval aufgerufen. plot(x,fhandle(x)) oder: plot(x,feval(fhandle,x)) Ausprobieren: >> plot_funktion(func,-pi:0.01:pi) >> plot_funktion(@(x)sin(x),-pi:0.01:pi) Dateiname MUSS addi.m sein sonst großes Chaos Addi.m kann nur gefunden werden, wenn es im Working Directory liegt (oberhalb von command window) angezeigt! abkürze Schreibweise für: func ist eine Funktion mit einem Parameter x die sich errechnet, indem man von x den sinus nimmt und quadriert

Computational Physics 1, Seminar 02 Seite 2 Steuerung des Programmablaufes mehr als zusammengefasste Befehle 4) if - Verzweigung Auswertung eines logischen Ausdrucks und Abarbeitung einer Befehlsfolge, wenn der logische Ausdruck wahr ist, sonst Alternative if log. Ausdruck 1 elseif log. Ausdruck 2 else Befehlsfolge 3 if a>b else max=a; max=b; ACHTUNG: Unterscheidung zwischen zuweisem Ist-Gleich ( a=b sei a gleich b ) und vergleichem Ist-Gleich ( a==b. ist a gleich b?) 5) for - Schleife Wiederholung einer Befehlsfolge eine vorgegebene Anzahl mal. for Laufvariable = Startwert : Endwert Befehlsfolge fakultaet=1; for i=2:n fakultaet=fakultaet*i; Anmerkung: alle Schleifen in Matlab sind LANGSAM innere Schleifen auf Vektor/Matrix- Operationen abbilden 6) while - Schleife Wiederholung einer Befehlsfolge so lange ein logischer Ausdruck wahr ist. while logischer Ausdruck Befehlsfolge fakultaet=1; i=2 while i<=n fakultaet=fakultaet*i; i=i+1;

Computational Physics 1, Seminar 02 Seite 3 7) continue - Anweisung Sprung in nächste for- oder while-schleife unter Umgehung noch folger Befehle der in der Schleife befindlichen Befehlsfolge while logischer Ausdruck 1 if logischer Ausdruck 2 continue 8) break - Anweisung vorzeitiges Been einer for- oder while-schleife unter Umgehung noch folger Befehle der in der Schleife befindlichen Befehlsfolge while logischer Ausdruck 1 if logischer Ausdruck 2 break End 9) case Anweisung Auswahl zwischen mehreren Alternativen für den Wert eines Ausdrucks switch Ausdruck case Wert1 case Wert2... otherwise Befehlsfolge n switch day_string case Montag day_numeric = 1; case Dienstag day_numeric = 2;... otherwise day_numeric = 0;

Computational Physics 1, Seminar 02 Seite 4 Übungsaufgaben: Numerische Differentiation Aufgabe 1 Konvergenzverhalten: Untersuchen Sie das Konvergenzverhalten des rechtsseitigen Differenzenquotienten f ( xi 1) f ( xi) Dh f x. x x in Abhängigkeit von der Schrittweite h xi 1 xi für die periodische Funktion sin(x). Programmieren Sie dazu eine MatLab-Funktion zur numerischen Differentiation einer beliebigen analytischen Funktion basier auf der obigen Definition des rechtsseitigen Differenzenquotienten. Berechnen Sie unter Verwung dieser Funktion den Gesamtfehler 50 50 i 1 h h E h f x D f x h h x 50 x 50 im Intervall x = [-50,50] in Abhängigkeit von der Schrittweite. f (x) ist dabei die analytische Ableitung der zu differenzieren Funktion f. Stellen Sie (h) für Schrittweiten im Intervall h = [0,3] grafisch dar. Stellen Sie außerdem auch den lokalen Fehler E h für drei verschiedene h 0,3 im Intervall x = [-50,50] grafisch dar. Beschreiben und interpretieren Sie Ihre Ergebnisse. Ihre Funktion soll als Eingabeargumente die zu differenziere Funktion, die Intervallgrenzen a und b sowie die Schrittweite h erhalten. Sie soll die Vektoren xwerte und ableitung zurückgeben. Die Definition der zu differenzieren Funktion f(x) soll extern erfolgen. Nutzen Sie hierbei die in Matlab i

Computational Physics 1, Seminar 02 Seite 5 vorgesehene Übergabe von Funktionen mittels handles. Die grafischen Darstellungen sollen mit einem separaten MatLab-Skript erzeugt werden, dessen Struktur nicht vorgegeben ist. Funktionskopf: function [xwerte, ableitung] = diffquot(fhandle,a,b,h) % fhandle: Funktionshandle zur analytischen Funktion welche abgeleitet werden soll % a,b: untere und obere Intervallgrenzen % h: Schrittweite der Differentiation % Funktionsaufruf: [xwerte, ableitung] = diffquot(fhandle, a, b, h) % [xwerte, ableitung] = diffquot(@(x) sin(x), -10, 10, 0.1);

Computational Physics 1, Seminar 02 Seite 6 Hilfreiche Funktionen: sum(x) berechnet die Summe der Elemente des Vektors x function_handle(@) verknüpft eine Variable mit einer Funktion, z.b. fhandle = @(x) x.^2 oder fhandle = @(x) sin(x) plot(x,y) stellt y Werte über den übergebenen x Werten graphisch dar Die Lösungen sind als E-Mail-Anhang bis spätestens 12.11.2014, 24:00 Uhr an teaching-nanooptics@unijena.de zu sen. Bitte unbedingt Name, Matrikelnummer und Nummer der Übungsserie in die Betreffzeile der E-Mail schreiben. Lösungen ohne Angabe von Name und Matrikelnummer, mit Funktionsdefinitionen die von den Vorgaben abweichen oder zu spät eingereichte Lösungen können nicht berücksichtigt werden. Einzusen sind mindestens die Differentiationsfunktion diffquot.m und eine 1-2 seitige Darstellung Ihrer Ergebnisse, welche die erzeugten Bilder und deren Beschreibung sowie Interpretation beinhaltet.