Einführung in numerische Simulation mit Python
|
|
- Karlheinz Arnold
- vor 7 Jahren
- Abrufe
Transkript
1 Einführung in numerische Simulation mit Python Alexander Schlemmer, Jan Schumann-Bischoff, Tariq Baig Max-Planck-Institut für Dynamik und Selbstorganisation, Biomedizinische Physik Nichtlineare Dynamik Praktikum
2 Inhaltsverzeichnis 1 Einleitung 2 3
3 Python Universelle Skriptsprache, meistens interpretiert Fokus auf gute Lesbarkeit von Sourcecode Open Source (Python Software Foundation License) Existiert seit 1991 Wird gepflegt und weiter entwickelt von der Python Software Foundation Aktuell zwei (z.t. inkompatible) Hauptversionen: Python 2.7 und Python 3.4
4 Python: Merkmale Große Anzahl an (frei) verfügbaren Bibliotheken Im wissenschaftlichen Bereich: numpy, scipy, matplotlib Dynamische Typisierung Objektorientierung Reduzierte, übersichtliche Syntax, wenige Schlüsselwörter Leicht zu lernen Als interpretierte Sprache eher langsam Höhere Geschwindigkeit durch Vektorisierung von numerischen Operationen Schlechte Unterstützung von Threads (Multithreading)
5 Python ausführen Python-Interpreter ausführen: python # Python 2 ( a uf den m e i s t e n Rechnern ) python3 Skript / Programm ausführen: python s k r i p t. py Äußerst praktische interaktive Shell: i p y t h o n Interaktives (Web-)Notebook: i p y t h o n notebook
6 Einfache Beispiele Erstes Beispiel >>> print("hello World!") Hello World! >>> # Das ist ein Kommentar >>> a = 42 # Variablendeklaration >>> print(a * abs(-0.1))
7 Variablendeklaration >>> v = 1 >>> type(v) <type int > >>> st = "str" >>> type(st) <type str > >>> y = j >>> type(y) <type complex > >>> tr = True >>> type(tr) <type bool > >>> x = >>> type(x) <type float > Mehr zu Typen unter:
8 Mathematische Operationen (1) >>> # Einfache Ausdrücke: >>> 42 * / (17 + 4) + a 260 >>> # Division: >>> 43.0 / >>> 43 / 3 # Unterschied zw. Python 2 und 3! 14 >>> 43 // 3 # Ganzzahl-Division 14 >>> 43 % 3 # Modulo 1
9 Weitere Operatoren >>> # Potenzieren: >>> # Komplexe Zahlen: >>> 8**3 >>> c = 2 + 3j 512 >>> c.real >>> 9**(-2) >>> c.imag >>> # Vergleichen: 3.0 >>> 4 < 3 >>> c.conjugate() False (2-3j) >>> "str" == "str" >>> abs(c) True >>> 68 >= 17*4 True >>> (not True == True) or (4 > 3 and 8!= 99) True
10 Mathematische Standardfunktionen >>> from math import sqrt, exp >>> from math import pi,sin,acos >>> sqrt(2) >>> exp(a*-7) e-128 >>> sin(0.5*pi) 1.0 >>> acos(1) 0.0 >>> import cmath >>> cmath.exp(-1/2*pi*1j) ( e-16j) >>> cmath.log(32, 2) (5+0j) >>> cmath.log(-2).imag
11 Listen >>> liste = [1, 3, 4, 5] >>> liste[0] >>> liste.append(7) 1 >>> liste.extend([2, 3]) >>> liste[6:8] >>> liste.reverse() [7, str ] >>> liste >>> liste[-4] [3, 2, 7, 5, 4, 3, 1] 5 >>> liste.sort() >>> liste[-3:] >>> liste [7, str, [1, 3]] [1, 2, 3, 3, 4, 5, 7] >>> liste[-1][1] * 72 >>> liste.append("str") 216 >>> liste.append([1, 3]) >>> liste [1, 2, 3, 3, 4, 5, 7, str, [1, 3]]
12 Bedingungen if-elif-else-block >>> if a < 7:... b = print(a*7)... elif a > 7:... print(a/7)... else:... print(a)... 6
13 Schleifen (1) for-loop über Liste >>> for l in liste[0:2]:... print(l) for-loop über Range >>> for l in range(-2,2):... if l % 2 == 0:... print(l)
14 Schleifen (2) while-loop >>> i = 0 >>> while(i < 7):... i += 2 # i = i >>> print(i) 8 Mehr zu Control-Flow:
15 Funktionen Funktionen definieren >>> def f(x, y):... print("funktionsaufruf")... b = a * x + y... return(b)... Funktionen aufrufen >>> f(23, -2) * 4 Funktionsaufruf 3856 Mehr zu Funktionen: controlflow.html#defining-functions
16 Numpy ist elementares Python Paket für numerische Berechnungen in Python Numpy bietet: N-dimensionales Array Objekt Indizierung ganzer Array Bereiche Sehr schnelle Berechnung elementweiser Operationen (Vektorisierung) Viele Lineare Algebra Routinen wie Matrix Multiplikation, SVD, Eigewertberechnungen, Invertierung, Zufallszahlengeneratoren, Foiurier-Transformation,...
17 Indizierung von Python Arrays Indizierung in Python ist Null-basiert (wie C)! Numpy Arrays sind keine Listen oder Listen von Listen Listen können zu Numpy Arrays konvertiert werden. Eindimensionales Array (1) >>> import numpy as np >>> a = np.array([1., 4.5, 6.3, 4.1, 0.3, 9.4, 7.1]) >>> a array([ 1., 4.5, 6.3, 4.1, 0.3, 9.4, 7.1]) >>> a[2] >>> a.shape (7,)
18 Index von : bis : Schrittweite gibt Bereich im Array an Eindimensionales Array (2) >>> a = np.array([1., 4.5, 6.3, 4.1, 0.3, 9.4, 7.1]) >>> a[:3] # Das dritte Element ist NICHT enthalten! array([ 1., 4.5, 6.3]) >>> a[3:] # Das dritte Element IST enthalten! array([ 4.1, 0.3, 9.4, 7.1]) >>> a[1:-2] # Indizierung bis vorvorletztem Element array([ 4.5, 6.3, 4.1, 0.3]) >>> a[::2] # Indizierung mit Schrittweite 2 array([ 1., 6.3, 0.3, 7.1]) >>> a[1:5:2] array([ 4.5, 4.1]) >>> a[::-1] # Reihenfolge umdrehen array([ 7.1, 9.4, 0.3, 4.1, 6.3, 4.5, 1. ])
19 Zweidimensionale Arrays >>> a = np.array([[4.2, 8.1, 7.9], [2.3, -7.6, 0.3]]) >>> a array([[ 4.2, 8.1, 7.9], [ 2.3, -7.6, 0.3]]) >>> a.shape (2, 3) >>> a[:,2] array([ 7.9, 0.3]) >>> a[1,1:] array([-7.6, 0.3]) >>> a.t # transponieren array([[ 4.2, 2.3], [ 8.1, -7.6], [ 7.9, 0.3]])
20 Verändern von Elementen in Arrays >>> a = np.array([[4.2, 8.1, 7.9], [2.3, -7.6, 0.3]]) >>> a[0,2] = 1 >>> a array([[ 4.2, 8.1, 1. ], [ 2.3, -7.6, 0.3]]) >>> a[:,1] = [8, 9] >>> a array([[ 4.2, 8., 1. ], [ 2.3, 9., 0.3]]) >>> a[-1,:] = 3 >>> a array([[ 4.2, 8., 1. ], [ 3., 3., 3. ]])
21 Rechnen mit Arrays Elementweises Rechnen in Numpy deutlich schneller als mit eigenen Schleifen (wie in C, Fortran,... üblich). Quellcode sollte also vektorisiert sein. >>> a = np.array([[4, 8, 7], [2., -7, 0]]) >>> a + 3 array([[ 7., 11., 10.], [ 5., -4., 3.]]) >>> np.sin(a) array([[ , , ], [ , , 0. ]]) >>> b = np.array([[1, 4, 3], [5, 2, 4.1]]) >>> a * b # Achtung: elementweise Multiplikation! array([[ 4., 32., 21.], [ 10., -14., 0.]])
22 Spezielle Funktionen zum erzeugen von Arrays >>> a = np.zeros((4,3)) # Array mit Nullen >>> a = np.ones((4,3)) # Array mit Nullen >>> np.arange(3, 9, 2) # Werte mit gleichem Abstand array([3, 5, 7]) >>> np.diag([1, 2, 3]) # Diagonalmatrix array([[1, 0, 0], [0, 2, 0], [0, 0, 3]])
23 Lineare Algebra mit numpy Lineare Algebra Routinen befinden sich in np.linalg >>> a = np.array([[2, 1], [3, 4]]) >>> b = np.array([[4, 8, 7], [2., -7, 0]]) >>> np.dot(a,b) # Matrixmultiplikation array([[ 10., 9., 14.], [ 20., -4., 21.]]) U, S, V = np.linalg.svd(a) # Singulärwertzerlegung w, v = np.linalg.eig(a) # Eigenwertberechnung linalg.html
24 Kopieren und Referenzieren von Arrays >>> a = np.array([4.2, 8.1, 7.9, 2.3, -7.6, 0.3]) >>> b = a # Referenz auf gleichen Speicherbereich von a >>> a[1:4] = 4 >>> a array([ 4.2, 4., 4., 4., -7.6, 0.3]) >>> b array([ 4.2, 4., 4., 4., -7.6, 0.3]) >>> b = np.copy(a) # Kopie von a >>> a[-2:] = 3 >>> a array([ 4.2, 4., 4., 4., 3., 3. ]) >>> b array([ 4.2, 4., 4., 4., -7.6, 0.3])
25 Matplotlib ist quasi Standard zum graphischen darstellen von Daten Beherrscht 2D und 3D Plots, Histogramme und vieles mehr Gallery:
26 2D Matplotlib - einzelner Plot (1) import matplotlib.pyplot as plt import numpy as np x = np.arange(0,10,0.01) y = np.sin(x) plt.plot(x,y) plt.show()
27 2D Matplotlib - einzelner Plot (2) import matplotlib.pyplot as plt import numpy as np x = np.arange(0,10,0.01) y = np.sin(x) fig = plt.figure() ax = fig.add_subplot(1,1,1) ax.plot(x,y) ax.set_xlabel( $x$ ) ax.set_ylabel( y ) plt.savefig( sinusx2.pdf ) y x
28 2D Matplotlib - Histogramm import matplotlib.pyplot as plt import numpy as np x = np.random.randn(10000) fig = plt.figure() ax = fig.add_subplot(1, 1, 1) ax.hist(x, 20) ax.set_xlabel( $x$ ) plt.savefig( histogramm.pdf ) x
29 2D Matplotlib - subplots import matplotlib.pyplot as plt import numpy as np x = np.arange(0,10,0.01) y = np.sin(x) z = np.cos(x) fig = plt.figure() ax = fig.add_subplot(2,1,1) ax.plot(x,y) ax.set_ylabel( y ) ax = fig.add_subplot(2,1,2) ax.plot(x,z, --r ) ax.set_ylabel( z ) ax.set_xlabel( x ) plt.savefig( sincosx.pdf ) y z x
30 3D Matplotlib from mpl_toolkits.mplot3d \ import Axes3D import matplotlib.pyplot as plt import numpy as np x = np.arange(0,50,0.1) y = np.sin(x) z = np.cos(x) fig = plt.figure() ax = fig.add_subplot(1,1,1, projection= 3d ) ax.plot(x,y,z,. ) ax.set_xlabel( x ) ax.set_ylabel( y ) ax.set_zlabel( z ) plt.savefig( sincosx3d.pdf ) x z y
31 Enthält weitere numerische Funktionen Basiert auf Numpy Beispiele: Integrationsmethoden scipy.integrate Minimierung von Funktionen scipy.optimize Nächste Nachbarn Suche: scipy.spatial
32 DGL Integration Numerische Integratoren für gewöhnliche Differenzialgleichungen (DGLen) befinden sich im Paket scipy Gutes und genaues Integrationsverfahren ist Runge-Kutta45 ( dopri5 in scipy)
33 Beispiel: Lorenz63 model Definition der Modell Gleichungen def lorenz63(t,x): x1 = x[0] x2 = x[1] x3 = x[2] sigma = 10 rho = 28 beta = 8./3 F = np.zeros(3) F[0] = sigma*(x2-x1) F[1] = x1*(rho-x3)-x2 F[2] = x1*x2-beta*x3 return F
34 Beispiel: Lorenz63 model Integration der Modell Gleichungen from scipy.integrate import ode N = 2000 dt = 0.01 x = np.zeros((n,3)) t = np.arange(0,2000*dt,dt) x[0,:] = [-4.70, 0.10, 29.10] r = ode(lorenz63).set_integrator( dopri5 ) r.set_initial_value(x[0,:], 0) i = 0 while r.successful() and r.t < (N-1)*dt: r.integrate(r.t+dt) i = i + 1 x[i,:] = r.y
35 Attraktor des Lorenz63 Modells x x x
36 Dictionaries Dictionary: Datenstruktur, um Key-Value-Paare zu speichern Erzeugung >>> d1 = {} # Erzeugt ein leeres Dictionary >>> # Dictionary mit einigen Key-Value-Paaren: >>> d2 = {"key1": "value1", "key2": 728,... "key3": [2, 3, 8]} Zugriff >>> d2["key1"] value1 >>> d2["key2"] = 17 Mehr zu Dictionaries: datastructures.html#dictionaries
37 Serialisierung: Das Pickle-Modul... stellt Funktionen bereit, um (fast) beliebige komplexe Datenstrukturen auf der Festplatte zu speichern und von dort wiederherzustellen. Erzeugung >>> import pickle >>> pickle.dump(d2, open("pickled_d2.dat", "wb")) >>> new_d = pickle.load(open("pickled_d2.dat", "rb")) >>> print(new_d) { key3 : [2, 3, 8], key2 : 17, key1 : value1 }
38 Weiteres Dokumentationsmaterial Offizielles Python-Tutorial: Stackoverflow: Offizielles Numpy-Tutorial: -Cookbook: Offizielles SciPy-Tutorial: tutorial/index.html
Python Einführung. Monica Selva Soto. 24 März Mathematisches Institut
Mathematisches Institut mselva@math.uni-koeln.de 24 März 2009 Übungen zur Numerik 1 Vorlesung Übungen praktische Aufgaben Webseite: (Anmeldung, Übungsblätter) http://www.mi.uni-koeln.de/~mselva/numerik1.php
Mehrimage.png Die Dokumentation von Python, welche ich so sehr empfehle, findet ihr hier: https://py-tutorialde.readthedocs.io/de/python-3.
Einführung in Python Relevante Links Mit dem Paket "Anaconda" habt ihr sofort das wissenschaftliche Notebook "Jupyter" dabei. Hier der Downloadlink: https://www.continuum.io/downloads (https://www.continuum.io/downloads)
MehrComputerphysik II. Python Einführung. S. Gerlach. WiSe S. Gerlach Computerphysik II
Computerphysik II Python Einführung S. Gerlach WiSe 2017 Programmiersprachen In der Wissenschaft: Programmiersprachen - Einteilung Eigenschaften: Skriptsprachen: Shell, Python, Perl,... Kompilierte Sprachen:
MehrIntroduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2016
to to May 2016 to What is Programming? All computers are stupid. All computers are deterministic. You have to tell the computer what to do. You can tell the computer in any (programming) language) you
MehrEinführung in Python Teil II Bibliotheken für wissenschaftliches Rechnen
Einführung in Python Teil II Bibliotheken für wissenschaftliches Rechnen Valentin Flunkert Institut für Theoretische Physik Technische Universität Berlin Fr. 28.5.2010 Nichtlineare Dynamik und Kontrolle
MehrInformatik I. 27. Wissenschaftliches Rechnen mit numpy, scipy und matplotlib Albert-Ludwigs-Universität Freiburg.
27. Wissenschaftliches Rechnen mit, scipy und matplotlib Albert-Ludwigs-Universität Freiburg 06.02.2014 1 / 28 2 / 28 Python ist eine tolle Programmiersprache, bietet aber mehr... 3 / 28 Python ist eine
MehrComputergrafik 2: Übung 1. Eclipse, PyDev, NumPy, Matplotlib
Computergrafik 2: Übung 1 Eclipse, PyDev, NumPy, Matplotlib Überblick 1. Einrichten der Entwicklungsumgebung 2. Python-Techniken 3. Bildverarbeitung Numpy und Matplotlib Übung Computergrafik 2 SS2012 2
Mehr1 6. Vorlesung. 1.1 Matplotlib: Graphische Darstellung, Methode der kleinsten Quadrate. Ein kleines Beispiel
#!/usr/bin/env python3 # -*- coding: utf-8 -*- #Created on Tue Nov 14 14:22:01 2017 # #@author: christianehelzel 1 6. Vorlesung 1.1 Matplotlib: Graphische Darstellung, Methode der kleinsten Quadrate Ein
MehrInformatik I. Informatik I Motivation Installation Das Modul numpy Funktionswerte zeich nen) 27.1 Motivation.
Informatik I 06.02.2014 27. Wissenschaftliches Rechnen mit numpy, scipy und matplotlib Informatik I 27. Wissenschaftliches Rechnen mit numpy, scipy und matplotlib Bernhard Nebel Albert-Ludwigs-Universität
MehrCrashkurs Python und Sage U23 Krypto-Mission
Crashkurs Python und Sage -Mission florob Simon e.v. http://koeln.ccc.de 4. Oktober 2015 Anfang Übersicht Sage Computer-Algebra-System, wie MatLab oder Mathematica sagemath.org Python interpretierte Programmiersprache
Mehr2D - Plotten / Visualisierung
Fakultät Maschinenwesen Institut für Verarbeitungsmaschinen und mobile Arbeitsmaschinen 2D - Plotten / Visualisierung mit numpy und matplotlib 06.06.2011 Sebastian Voigt Wie was wo warum? Visualisierung
MehrPython als praktischer Helfer
Python als praktischer Helfer Ulrich Schumann 01.02.2016 IEEE Student Branch Magdeburg Geschichte Geschichte Entwicklung gestartet durch Guido van Rossum 3/45 Guido van Rossum 4/45 Geschichte Entwicklung
MehrPython Programmierung. Dipl.-Ing.(FH) Volker Schepper
Python Programmierung Kontaktdaten Homepage: http://wwwlehre.dhbw-stuttgart.de/~schepper/ Email: Volker. Schepper [A@T] yahoo.de Vorlesung Skriptsprachen Vorlesung: 06.03.2013 13.03.2013 20.03.2013 27.03.2013
Mehr1 Autorennen ( = 11 Punkte)
Einführung in die wissenschaftliche Programmierung Klausur 11.02.2016 Seite 1/8 Name, Vorname, Unterschrift: Matrikelnummer: 1 Autorennen (3 + 3.5 + 4.5 = 11 Punkte) Eine Physikerin beobachtet die Geschwindigkeit
MehrPython. und statistische Methoden der Datenanalyse
Python und statistische Methoden der Datenanalyse Python-Grundlagen moderne Hochsprache unterstützt Skripting (Prozeduren u. Funktionen) objektorientiet (Klassen) Funktionale Programmierung (z.b. List-Comprehension)
MehrComputergestützte Datenauswertung
Vorlesung: Computergestützte Datenauswertung Programmierung mit Python Günter Quast Fakultät für Physik Institut für Experimentelle Kernphysik KIT Universität des Landes Baden-Württemberg und nationales
Mehrmit Dämpfung : mit :sin(α)=tan(α)=x/l m g x=0bzw : l oder x r m v l bzw : v= g l
Pendel in linearer Näherung Wir linearisieren die Rückstellkraft, da nur dann die DGL analytisch lösbar ist. Nachdem das Programm für die lineare DGL korrekte Ergbnisse liefert, könnte man die nichtlineare
MehrEinführung in Python Teil I Grundlagen
Einführung in Python Teil I Grundlagen Valentin Flunkert Institut für Theoretische Physik Technische Universität Berlin Do. 27.5.2010 Nichtlineare Dynamik und Kontrolle SS2010 1 of 22 Diese Einführung
MehrPython - Open-Source-Werkzeuge für Wissenschaftler und Ingenieure
Python - Open-Source-Werkzeuge für Wissenschaftler und Ingenieure Chemnitzer Linux-Tage 2012, 18. März 2012 Autor: E-Mail: Dr.-Ing. Mike Müller mmueller@python-academy.de Übersicht besondere Situation
MehrDamit die von Matplotlib erzeugten Bilder gleich im Notebook erscheinen, braucht man das folgende "magic command":
Matplotlib In [1]: import numpy as np import matplotlib.pyplot as plt Damit die von Matplotlib erzeugten Bilder gleich im Notebook erscheinen, braucht man das folgende "magic command": In [2]: %matplotlib
MehrAlgorithmen und Programmieren II Einführung in Python (Teil 2)
Einführung in Python Algorithmen und Programmieren II Einführung in Python (Teil 2) SS 2012 Prof. Dr. Margarita Esponda ALP II: Margarita Esponda, 2. Vorlesung, 17.4.2012 1 Variablen in Python Variablen
MehrBeispiellösung zu Aufgabe 10.3c)
Beispiellösung zu In waren mittels zweier verschiedener Verfahren standardnormalverteilte Zufallsvariablen jeweils 100.000 mal zu simulieren. Methode aus 5.3b) (Inversionsmethode): Es wird eine gleichverteilte
MehrPhysik auf dem Computer Wiederholung: Python, NumPy und C
Physik auf dem Computer Wiederholung: Python, NumPy und C Axel Arnold Olaf Lenz Institut für Computerphysik Universität Stuttgart Sommersemester 2012 Python Wiederholung der wichtigsten Eckpunkte interpretierte
MehrModul 122 VBA Scribt.docx
Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval
MehrPython zur Lösung von AvA Übung 1 VON MORITZ FEY
Python zur Lösung von AvA Übung 1 VON MORITZ FEY Übersicht 2 Einführung Socket-Schnittstellen Datei-Zugriff Aufbau der Nachrichten und Serialisierung Besonderheiten von Python Realisierung des Programms
MehrGrundlagen. Felix Döring, Felix Wittwer 24. April Python-Kurs
Grundlagen Felix Döring, Felix Wittwer 24. April 2017 Python-Kurs Gliederung 1. Über diesen Kurs 2. Der Python Interpreter 3. Python Scripte 4. Grundlagen der Sprache 5. Das erste Programm 6. Operatoren
Mehr1 Stückweise konstante Funktionen (ca =10 Punkte)
Einführung in die wissenschaftliche Programmierung Klausur Seite 1/5 Name, Vorname, Unterschrift: Matrikelnummer: 1 Stückweise konstante Funktionen (ca. 4+2+4=10 Punkte) In dieser Aufgabe soll eine Klasse
MehrEinführung in die Computerlinguistik
Einführung in die Computerlinguistik Übung 2 Laura Kallmeyer Sommersemester 204, Heinrich-Heine-Universität Düsseldorf Offizielle Python Seite, auf der man jede Menge Dokumentation findet: http://www.python.org/
MehrPython Workshop i. Python Workshop
i Python Workshop ii REVISION HISTORY NUMBER DATE DESCRIPTION NAME iii Contents 1 Hinweis 1 2 Python interaktiv 1 2.1 python......................................................... 1 2.2 ipython........................................................
MehrWeb-basierte Anwendungssysteme PHP-Einführung
Web-basierte Anwendungssysteme PHP-Einführung Prof. Dr. Armin Lehmann (lehmann@e-technik.org) Fachbereich 2 Informatik und Ingenieurwissenschaften Wissen durch Praxis stärkt Seite 1 Prof. Dr. Armin Lehmann
MehrA2.1 Python. Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. A2.1 Python. A2.2 Kurzer Sprachüberblick. A2.3 Selectionsort in Python
Algorithmen und Datenstrukturen 28. Februar 2018 A2. Eine sehr kurze Einführung in Python Algorithmen und Datenstrukturen A2. Eine sehr kurze Einführung in Python A2.1 Python Marcel Lüthi and Gabriele
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen A2. Eine sehr kurze Einführung in Python Marcel Lüthi and Gabriele Röger Universität Basel 28. Februar 2018 Python Python interpretierte High-Level-Programmiersprache unterstützt
MehrInformatik I: Einführung in die Programmierung
Informatik I: Einführung in die Programmierung 5., bedingte Ausführung und Albert-Ludwigs-Universität Freiburg Bernhard Nebel 27. Oktober 2017 1 und der Typ bool Typ bool Typ bool Vergleichsoperationen
MehrUrsprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java
Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert
MehrPostScript -Sprache. Frank Richter
PostScript -Sprache Frank Richter 27.01.2003 Stack-Operationen exch vertauscht die zwei obersten Stackelemente x y exch => y x dup dupliziert oberstes Stackelement x dup => x x pop löscht oberstes Element
Mehr7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt
7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Kontrollfragen Rekursion Was bedeutet Rekursion? Geben Sie Beispiele
Mehrdas ROOT-Framework Datenanaufnahme, Speicherung, Visualisierung & Analyse
das ROOT-Framework Datenanaufnahme, Speicherung, Visualisierung & Analyse Open-Source framework zur Datenanalyse (C++-Klassenbobliothek). Entwickelt hauptsätzlich am CERN, Standardwerkzeug in der Teilchenphysik.
MehrProgrammieren in Lua
Roberto lerusalimschy Programmieren in Lua 3. Auflage Open Source Press Inhaltsverzeichnis Vorwort 13 I Die Sprache 21 1 Einführung 23 1.1 Chunks 24 1.2 Einige lexikalische Konventionen 26 1.3 Globale
MehrVorlesung Skriptsprachen Duale Hochschule Stuttgart Sommersemester Dipl.-Ing. (FH) Volker Schepper
Vorlesung Skriptsprachen Duale Hochschule Stuttgart Sommersemester 2017 Dipl.-Ing. (FH) Volker Schepper 1 Kommentar Kommentare sollen/müssen unbedingt verwendet werden. Sinnvolle Kommentare verwenden.
Mehr10:Exkurs MATLAB / Octave
10:Exkurs MATLAB / Octave MATLAB (bzw. Octave als freie Version) ist eine numerische Berechnungsumgebung wurde vorrangig zum Rechnen mit Vektoren und Matrizen entworfen ist interaktiv benutzbar, vergleichbar
MehrInstitut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke
Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie
MehrEinstieg in die Informatik mit Java
1 / 21 Einstieg in die Informatik mit Java Felder, eindimensional Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 21 1 Überblick: Was sind Felder? 2 Vereinbarung von Feldern
MehrRechnernutzung in der Physik Computeralgebra/Mathematica
Rechnernutzung in der Physik Computeralgebra/Mathematica 1. Einführung in Mathematica 2. Mathematica in der Physik 3. Harmonische Polylogarithmen 4. Numerische Integration 5. Gröbnerbasen 6. FORM und andere
MehrEINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG GRUNDLAGEN Tobias Witt!! 24.03.2014 ORGANISATORISCHES 09:00-10:30! Täglich Übungen zur Vertiefung! Laptop hier nicht erforderlich! Linux, OS X! Freitag: http://hhu-fscs.de/linux-install-party/
MehrProgrammierkurs Python I
Programmierkurs Python I Michaela Regneri & Stefan Thater Universität des Saarlandes FR 4.7 Allgemeine Linguistik (Computerlinguistik) Winter 2010/11 Übersicht Variablen Datentypen Werte Ausdrücke Operatoren
MehrEinfuehrung. October 20, 2017
Einfuehrung October 20, 2017 1 Einführung 1.1 Organisatorisches Es wird jede Woche eine Übungsaufgabe in Form eines Jupyter-Notebooks ausgegeben. Diese kann von der Vorlesungsweibseite https://aam.uni-freiburg.de/agkr/lehre/ws17/pde0/
MehrKapitel 12: Induktive
Kapitel 12: Induktive Datenstrukturen Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik I im Herbstsemester 2009 Folien nach einer Vorlage von H.-Peter
MehrBER-Basisband. October 12, 2017
BER-Basisband October 12, 2017 1 Bitübertragung - Basis- und Breitbandverfahren Wir betrachten hier die Übertragung von Daten mit unterschiedlichen Modulationstechniken und die sich dabei einstellenden
MehrDie Syntax von Java. Ursprünge. Konsequenzen. Das Wichtigste in Kürze. Weiteres Vorgehen. Rund um Java. Sun Microsystems. Borland Software Corp
Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert
MehrSkriptsprachen: Python
Skriptsprachen: Python Einführung Jan Krüger, Alexander Sczyrba Technische Fakultät Universität Bielefeld 30. September 2016 Python Einführung Eigenschaften, Erweiterungen, Erste Gehversuche 2 of 18 Python
MehrUnterlagen. CPP-Uebungen-08/
Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen
MehrProgrammierkurs Python I
Programmierkurs Python I Michaela Regneri 2009-11-05 (Folien basieren auf dem gemeinsamen Kurs mit Stefan Thater) Übersicht Variablen Datentypen Werte Operatoren und Ausdrücke Kontrollstrukturen: if, while
Mehr13. Dynamische Datenstrukturen
Motivation: Stapel. Dynamische Datenstrukturen Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange, Sortierte Liste 40 40 Motivation: Stapel ( push, pop, top, empty ) Wir brauchen einen neuen
MehrWilhelm Haager. Computeralgebra. mit Maxima. Grundlagen der Anwendung und Programmierung. Fachbuchverlag Leipzig. im Carl Hanser Verlag
Wilhelm Haager Computeralgebra mit Maxima Grundlagen der Anwendung und Programmierung Fachbuchverlag Leipzig im Carl Hanser Verlag Inhalt Q Einführung 13 1.1 Grundlegendes 13 1.1.1 Motivation 14 1.1.2
MehrProgrammieren lernen mit Groovy Kollektionen: Listen und Abbildungen
Programmieren lernen mit Groovy Kollektionen: Listen und Abbildungen Seite 1 Listen Listen Definition def Listen-Variable = Listen-Wert def liste = [1,2,3,4,5,6,7,8,9] Der erste Index ist 0! liste[0] Zugriff
MehrInformatik 1 ( ) D-MAVT F2010. Schleifen, Felder. Yves Brise Übungsstunde 5
Informatik 1 (251-0832-00) D-MAVT F2010 Schleifen, Felder Nachbesprechung Blatt 3 Aufgabe 1 ASCII... A > a Vorsicht: Lösen Sie sich von intuitiven Schlussfolgerungen. A ist nicht grösser als a, denn in
MehrFunktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:
Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Der Sourcecode wird an den entsprechenden Stellen im Programm wiederholt Programm wird lang
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {
Mehrhttps://misun102.mathematik.uni-leipzig.de:8000/user/ackermann/nbc...
Aufgabe 4: a) Schreiben Sie in Python ein Programm, um die Approximationseigenschaften der Interpolationspolynome am Beispiel der Runge-Funktion mit den Funktionswerten im Intervall und zu überprüfen.
MehrProgrammieren in Python
Ausgaben und Zahlen Programmieren in Python 2. Ausgaben und Zahlen Malte Helmert Albert-Ludwigs-Universität Freiburg In dieser Lektion geht es darum, ein erstes Gefühl für Python zu bekommen. Wir beschränken
MehrDie for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben
18.11.5 1 HEUTE 18.11.5 3 Schleifen Arrays while, do reichen aus, um alle iterativen Algorithmen zu beschreiben Nachteil: Steuermechanismus ist verteilt Übersicht nicht immer leicht dazu gibt es for (
MehrSmallTalk - Eine kurze Einführung
SmallTalk - Eine kurze Einführung Andreas Lochbihler Lehrstuhl Programmierparadigmen Universität Karlsruhe 15. Juni 2009 SmallTalk Entwickelt seit Anfang der 70er bei XEROX PARC Alan Kay, Dan Ingalls,
Mehr(I)Python in Labor & Lehre
Prof. Dr. Christian Münker (I)Python in Labor & Lehre Hochschule München, Oktober 2014 und wie sieht es aus? def fib(n): """ Berechne Fibonacci-Zahlen """ print('n =', n) # für Python 3.x if n > 1: return
MehrMatlab: eine kleine Einführung
Praktikum zur Vorlesung: Numerische Mathematik für Lehramt SS 2006 Matlab: eine kleine Einführung Jan Mayer 27. April 2006 Linux Matlab: eine kleine Einführung 2 Linux Matlab starten: 1. Konsole öffnen
Mehr5.4 Arrays. Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu!
5.4 Arrays Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu! Feld: Index: 17 3-2 9 0 1 0 1 2 3 4 5 Harald Räcke 114/656
MehrProgrammieren in Java
Ein Projekt 2 Wiederholung: new-operator Werte nicht-primitiver Datentypen müssen mit new erzeugt werden Es gibt keine Möglichkeit primitive Daten mit new zu erzeugen Beispiele int[] myarray = new int[]
MehrAdvanced Programming in C
Advanced Programming in C Pointer und Listen Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Oktober 2013 Überblick 1 Variablen vs. Pointer - Statischer und dynamischer
MehrAlgorithmik kontinuierlicher Systeme. Einführung in Python
Algorithmik kontinuierlicher Systeme Einführung in Python Organisatorisches Vorlesung um 8:15 oder um 8:30? Sommersemester 2017 Prof. U. Rüde Algorithmik kontinuierlicher Systeme 2 Kurzer Werbeblock Elementary
Mehrpue13 January 28, 2017
pue13 January 28, 2017 1 Aufgabe 1 (Klammern und Anweisungsblöcke) Wie Sie in der Vorlesung gelernt haben, werden Anweisungsblöcke in Java nicht durch Einrückung, sondern mithilfe von geschweiften Klammern
MehrOrganisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50
Organisatorisches Vorlesung Donnerstag 8:35 bis 10:05 Übung drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Tutorium (Mehr oder weniger) abwechselnd Mo und Mi 10-11:30 Termine
MehrOrganisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr
Organisatorisches Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, 14.10., 14 Uhr bis Do, 23.10., 8Uhr. 14.10.2014 IT I - VO 1 1 IT I: Heute Wiederholung CuP ctd: this Arrays, ArrayLists Schleifen:
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 4. November 2015 Administratives Zur Abgabe von Übungsaufgaben Nein, wir
MehrProgrammierkurs Python I
Programmierkurs Python I Michaela Regneri & Stefan Thater Universität des Saarlandes FR 4.7 Allgemeine Linguistik (Computerlinguistik) Winter 2010/11 Übersicht Kurze Wiederholung: while Sammeltypen (kurz
MehrProgrammierung I Einführung in Python, Beyond the Basics
Höhere Datenstrukturen Programmierung I Einführung in Python, Beyond the Basics G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Eines der Features, das Python so mächtig macht (VHLL)
MehrEinstieg ins Programmieren mit Python
Einstieg ins Programmieren mit Python Merk-Steine auf dem Weg zu Python für Kids Autor: Gregor Lingl Email: glingl@aon.at Folie 1 Gregor Lingl, Jan. 2003 http://python4kids.net Leicht zu lernen. Python-Code
MehrEinführung in Python
Mathematische Werkzeuge für die Computergrafik Einführung in Python Sommersemester 2017 1 Grundlagen von Python Als Programmiersprache werden wir die Script-Sprache Python 1 verwenden. 2 Diese ist zur
MehrKapitel 2: Python: Ausdrücke und Typen. Grundlagen der Programmierung 1. Holger Karl. Wintersemester 2016/2017. Inhaltsverzeichnis 1
Kapitel 2: Python: Ausdrücke und Typen Grundlagen der Programmierung 1 Holger Karl Wintersemester 2016/2017 Inhaltsverzeichnis Inhaltsverzeichnis 1 Abbildungsverzeichnis 2 Liste von Definitionen u.ä. 2
MehrEinführung in MATLAB + MATLAB Simulink. Dipl.-Inf. Markus Appel
Einführung in MATLAB + MATLAB Simulink Dipl.-Inf. Markus Appel mappel@informatik.hu-berlin.de 28.10.2016 Was ist MATLAB? ein universelles Algebra-Programm zur Lösung mathematischer Probleme grafische Darstellung
Mehr2. Einführung in das Ingenieurtool MATLAB
2. Einführung in das Ingenieurtool MATLAB MATLAB ist eine numerische Berechnungsumgebung wurde vorrangig zum Rechnen mit Vektoren und Matrizen entworfen ist interaktiv benutzbar, vergleichbar mit einem
MehrProfiling in Python. Seminar: Effiziente Programmierung. Jan Pohlmann. November Jan Pohlmann Profiling in Python November / 32
Profiling in Python Seminar: Effiziente Programmierung Jan Pohlmann November 2017 Jan Pohlmann Profiling in Python November 2017 1 / 32 Gliederung 1 Grundlagen Profiling Was ist das Ziele und Herausforderungen
MehrArrays. Gilbert Beyer und Annabelle Klarl. Einführung in die Informatik. Zentralübung zur Vorlesung Einführung in die Informatik
Arrays Zentralübung zur Vorlesung Einführung in die Informatik http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Inhalte der heutigen Vorlesung: Arraytypen Speicherdarstellung von Arrays Auswertung
MehrEinführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015
Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 4, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
MehrIT-Zertifikat: Allgemeine Informationstechnologien II PHP
IT-Zertifikat: Allgemeine Informationstechnologien II PHP PHP ( PHP: Hypertext Preprocessor ) ist eine serverseitige Skriptsprache: Der PHP-Code wird nicht wie bei JavaScript auf dem Clientrechner ausgeführt,
MehrBru ckenkurs Programmieren
Bru ckenkurs Programmieren Tag 1: Variablen und Verzweigungen Jakob Czekansky Technische Hochschule Mittelhessen 26. September 2016 Inhalt Organisatorisches Einleitung: Was ist Programmieren? Hello World
MehrFolgen und Funktionen in der Mathematik
Folgen und Funktionen in der Mathematik Anhand von einigen exemplarischen Beispielen soll die Implementierung von mathematischen Algorithmen in C/C++ gezeigt werden: Reelle Funktionen in C/C++ Diese wird
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für
MehrEinleitung Typsystem Typisierung Zusammenfassung Literatur. Typisierung. Effiziente Programmierung. Thomas Schnieders
Typisierung Effiziente Programmierung Thomas Schnieders Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg 2018-04-26 Thomas Schnieders Typisierung 1
MehrJava I Vorlesung Imperatives Programmieren
Java I Vorlesung 2 Imperatives Programmieren 3.5.2004 Variablen -- Datentypen -- Werte Operatoren und Ausdrücke Kontrollstrukturen: if Imperatives Programmieren Im Kern ist Java eine imperative Programmiersprache.
MehrEinführung Java Programmieren in Java Arrays Schleifen Fehler. Einführung in Java. Arne Hüffmeier. Michelle Liebers, Dennis Hoffmann
Einführung in Java Arne Hüffmeier Michelle Liebers, Dennis Hoffmann Tilman Lüttje, Jean Wiele Angelehnt an Java-Vorkurs der Freitagsrunde 1 / 64 1 Einführung Java Geschichte 2 Programmieren in Java Einführung
MehrSciPy Tuebix 2015. June 18, 2015
SciPy Tuebix 2015 June 18, 2015 1 Einführung in SciPy und SymPy Peter Hrenka, TÜBIX 2015 Repository auf github 1.1 1. IPython Grundlagen IPython ist eine interaktive Shell für Python. Startet man IPython
MehrMultimedia im Netz Wintersemester 2011/12
Multimedia im Netz Wintersemester 2011/12 Übung 01 Betreuer: Verantwortlicher Professor: Sebastian Löhmann Prof. Dr. Heinrich Hussmann Organisatorisches 26.10.2011 MMN Übung 01 2 Inhalte der Übungen Vertiefung
MehrC-Grundlagen. zur Programmierung des MicroControllersystems MiCoWi
1. Datentypen C-Grundlagen zur Programmierung des MicroControllersystems MiCoWi Die Grafiken und Beispiele wurden dem Buch C von A bis z von Jürgen Wolf entnommen. Es werden hier die ANSI-Festlegungen
MehrPraktikum zur Vorlesung: Numerische Mathematik für Lehramt SS Matlab: Fortsetzung. Jan Mayer. 4. Mai 2006
Praktikum zur Vorlesung: Numerische Mathematik für Lehramt SS 2006 Matlab: Fortsetzung Jan Mayer 4. Mai 2006 Manipulation von Matrizen und Vektoren [M,N]=size(A); speichert die Dimension einer Matrix bzw.
MehrÜbung zur Vorlesung Multimedia im Netz
Übung zur Vorlesung Multimedia im Netz Doris Hausen Ludwig-Maximilians-Universität München Wintersemester 2009/2010 Ludwig-Maximilians-Universität München Multimedia im Netz Übung 1-1 Organisatorisches
Mehr1 Bizz Buzz Woof (ca =18 Punkte) def read file(file_in): fp = open(file_in, r ) l = fp.read() fp.close() return l
Einführung in die wissenschaftliche Programmierung Klausur 1. März 2010 Seite 1/7 Name, Vorname, Unterschrift: Matrikelnummer: 1 Bizz Buzz Woof (ca. 3+9+6=18 Punkte) In dieser Aufgabe sollen Zahlen codiert
MehrPython 2. Vorlesung Computerlinguistische Techniken Alexander Koller. 28. Oktober 2014
Python 2! Vorlesung Computerlinguistische Techniken Alexander Koller! 28. Oktober 2014 Listen Sequenz von beliebigen Werten. Literale: [], [1,2,3], [ hallo, True, -5.0] Hinten an Liste anhängen: L.append(27)
MehrEinführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.
Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
MehrEinführung in die Programmierung, mathematische Anwendungen und Visualisierungen
hans-bernhard WOYAND PYTHON FÜR INGENIEURE UND NATURWISSENSCHAFTLER Einführung in die Programmierung, mathematische Anwendungen und Visualisierungen Im Internet: Beispiele und Lösungen zu den Aufgaben
MehrObjektorientierte Programmierung und Modellierung
Objektorientierte Programmierung und Modellierung Einführung, Teil 2 24.10.17 - WS17/18 Hakan Aksu 1 Raumänderung beachten Dienstag 14:15-15:45 Uhr in M001 (anstatt K101) 2 Ausfalltermine 31.10 Vorlesung
Mehr