Top Banner
Grundlagen der Informatik für Wissenschaftliche Anwendungen Dr.-Ing. Eike Schallehn OvG Universität Magdeburg Fakultät für Informatik Institut für Technische und Betriebliche Informationssysteme 2018
57

Grundlagen der Informatik für Wissenschaftliche Anwendungen

Dec 07, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Grundlagen der Informatikfür Wissenschaftliche Anwendungen

Dr.-Ing. Eike Schallehn

OvG Universität MagdeburgFakultät für Informatik

Institut für Technische und Betriebliche Informationssysteme

2018

Page 2: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Organisatorisches zuVorlesung und Übung

Page 3: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Zum Inhalt (Planung) . . .

1 Einführung InformatikInformatik als WissenschaftBereiche der InformatikGeschichte der Informatik

2 Programmierung für wissenschaftliche AnwendungGrundlagen und Arten von ProgrammiersprachenWissenschaftliche Programmierung mit MatlabGrundlagen: Funktionen, Variablen, Felder, MatrizenKontrollstrukturen (Schleifen, Verzweigungen, etc.)Interaktion und Visualisierung

3 ModellierungModellierung von Daten und Verhalten (UML, Alternativen)Grundlagen Objektorientierung (OO in Matlab)Modellbildung und Simulation (Matlab/Simulink)

4 Problemlösungsstrategien (mit Beispielen in Matlab)Optimierung/AlgorithmenmusterEigenschaften von AlgorithmenDatenstrukturenKünstliche Intelligenz

Page 4: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Zugrundeliegende Literatur

Programmieren mit MATLABVon: Ulrich SteinCarl Hanser Verlag, 5. Auflage (2015)ISBN: 978-3446442993Grundlagen der Informatik für IngenieureEinführung in die Programmierung mit C / C++Von: Paul, Georg / Hollatz, Meike / Jesko, Dirk / Mähne,TorstenB.G. Teubner VerlagISBN: 3-519-00428-3Einführung in die Informatik für Naturwissenschaftlerund IngenieureLevi, Paul / Rembold, UlrichHanser Fachbuchverlag; Auflage: 4., aktualis. u. überarb.A. (Januar 2003)ISBN: 978-3446219328

Page 5: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Zum Ablauf . . .

Alle Infos unterhttp://gif.cs.uni-magdeburg.de/EC/

Anmeldung zur VorlesungAnmeldung zu ÜbungsgruppenFolien der VorlesungAufgaben zu ÜbungenEinreichung der Lösung zu Übungsaufgaben

Veranstaltung besteht aus:

Wöchentliche VorlesungWöchentliche ÜbungenSchriftliche Klausur am Ende des Sommersemesters

Page 6: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Prüfungen

Zweistündige (Bearbeitungszeit 120 Minuten) schriftlichePrüfung in der vorlesungsfreien Zeit am Ende desSommersemstersInhaltlich abgedeckt durch Vorlesung und ÜbungZuvor genannte Prüfungsvoraussetzung notwendigeBedingung für ZulassungKeine Hilfsmittel erlaubt!

Page 7: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Alles klar?

Page 8: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Teil I

Einführung

Page 9: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Überblick

1 Was ist Informatik?

2 Bereiche der Informatik

3 Kurzvorstellung MATLAB

4 Geschichte der Informatik

Page 10: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Was ist Informatik?

Informatik= ?

Page 11: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Computer als Arbeitsmittel

„In der Informatik geht es genauso wenig umComputer wie in der Astronomie um Teleskope.“

Edsger Wybe Dijkstra

Page 12: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Der Begriff Informatik

Kunstwort aus den 60ernInformatik→ Information + Technik oderInformatik→ Information + Mathematik oderInformatik→ Information + Automatik...

Definition (Informatik)Informatik ist die Wissenschaft von der systematischen undautomatischen Verarbeitung von Informationen, insbesonderemit Hilfe von Computern.

Im Englischen: Computer Science + Information Science

Page 13: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Bereiche der Informatik

Theoretische Informatik

Theoretische und mathematische Modelle der Informationsverarbeitung:

Entscheidbarkeit und Komplexität von Problemen, Eigenschaften von

Berechnungsmodellen und Sprachen

Praktische Informatik

Techniken der Programmierung und

Entwicklung von Lösungen zur

Informationsverarbeitung (Software):

Programmiersprachen, Algorithmen,

Datenstrukturen, Betriebssysteme,

Datenbanken, etc.

Technische Informatik

Struktur, Aufbau und Funktionsweise

von Computern (Hardware): Elektro-

und Schalttechnik, Speicher,

Prozessoren, Bussysteme, Schnittstellen

und Peripherie

Angewandte Informatik

Entwicklung und Verwendung von speziellen Informationsverarbeitungslösungen für

bestimmte Anwendungen: Ingenieurinformatik, Wirtschaftsinformatik,

Geoinformatik, Bioinformatik, Medieninformatik, etc.

Page 14: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Was ist MATLAB?

MATrix LABoratorySpezialsoftware für numerische und symbolischeMathematikStark ausgerichtet auf Arbeit mit Feldern und MatrizenUmfasst eigene ProgrammierspracheBedeutung in zahlreichen wissenschaftlichen undingenieurtechnischen AnwendungsfeldernErweiterung Simulink häufig Grundlage für Simulation inIngenieuranwendungen

Page 15: Grundlagen der Informatik für Wissenschaftliche Anwendungen

MATLAB Entwicklungsumgebung

Page 16: Grundlagen der Informatik für Wissenschaftliche Anwendungen

MATLAB als Programmiersprache

Vollständige Programmiersprache

Zahlreiche vordefinierte Bibliotheken für mathematischeFunktionen und NutzerinteraktionEinfaches Typsystem, das, wo immer möglich, Typenautomatisch impliziertObjektorientierung als erweitertes ModellierungskonzeptunterstütztKopplung mit anderen Programmiersprachen möglichIntertpretierte, d.h. zur Laufzeit übersetzte, Skriptsprache

Hello World-Programm:disp(’Hello, World!’);

Page 17: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Geschichte der Informatik

Entwicklung von Informationstechnik und Durchdringungdes Alltags seit der 2. Hälfte des 20 JahrhundertsexplosionsartigInformationsgesellschaft

Zunehmende Bedeutung und Wert von InformationenSchnelle Entwicklung von Technologien zur Verarbeitungund Kommunikation

Historische Wurzeln der Informatik reichen zum Teilerheblich weiter Zurück

„Rechenautomaten“„programmierbare Maschinen“Grundlagen aus Mathematik, Elektrotechnik, Linguistik,Kodierungs- und Informationstheorie

Seit ’50er Jahren:Relativ schnelle Folge von RechnergenerationenImmer mehr Anwendungen der Informationstechnik inWirtschaft und Privatbereich

Page 18: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Geschichte der Informatik /1

1100 v. Chr.: erste mechanische Rechenhilfen inIndien/China, z.B. bis heute benutzter Abakus auf Basisdes DezimalsystemsBeschreibung von reproduzierbaren Rechenverfahren,z.B. größter gemeinsamer Teiler durch Euklid (300 v. Chr).Al-Chwarizmi (820) beschreibt Grundlagen vonRechenvorschriften, die nach ihm als Algorithmenbezeichnet werdenIm 17. Jh.: Erste mechanische Rechenautomaten vonWilhelm Schickard (1623), Blaise Pascal (1641) undGottfried Wilhelm Leibniz (1673)

Page 19: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Geschichte der Informatik /2

Abbildung: Blaise Pascals Pascaline

Page 20: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Geschichte der Informatik /3

Gottfried Wilhelm Leibniz beschreibt 1679 erstmalsDualsystem (Binärsystem), welches heute Grundlage fürelektronische Rechner (Speicher, Prozessoren) ist

1110 = 142 10

0 x 2

+ 1 x 2

+ 1 x 2

+ 1 x 2

4 x 10

+ 1 x 10

0

1

2

3

0

1

Entwicklung erster mechanischer, programmgesteuerteMaschinen durch Joseph-Marie Jacquard (1805,Webstühle) und Charles Babbage (1822, mathematischeBerechnungen) und Hollerith (1886, Lochkartensysteme,z.B. für Wahlmaschinen)

Page 21: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Geschichte der Informatik /4

George Boole entwickelt 1854 Boolsche Logik undAlgebra, welche grundlegende logische Operatorenumfasst und damit Grundlage für Funktionsweise vonheutigen Prozessoren ist1936 entwickelt Alan Turing theoretische Turingmaschineund schafft Grundlagen der Theoretischen InformatikEntwicklung erster elektronischer Rechenmaschinen durchKonrad Zuse (1941), Howard Hathaway Aiken (1944)sowie J. Presper Eckert und John W. Mauchly (1946)

Abbildung: ENIAC - Electronic Numerical Integrator and Computer

Page 22: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Geschichte der Informatik /5

John von Neumann entwirft grundlegendeVon-Neumann-Architektur als bis heute aktuelle Referenzfür Aufbau von speicherprogrammierbarenRechnersystemen

Rechenwerk Steuerwerk

Zentrale Vearbeitungseinheit

Bus

Ein-/Ausgabe Speicherwerk

Erstes Computerspiel: Spacewar (1962)Unix als Mehrbenutzer-/Multitasking-Betriebssystem(1969)Arpanet mit TCP/IP Grundlage für heutiges Internet (1969)Grundlagen des World Wide Web: HTML und erster WebBrowser (1990)

Page 23: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Zusammenfassung: Geschichte der Informatik

Wurzeln der InformatikAlgorithmenRechentechnikMathematische Grundlagen

reichen weit zurückSeit 1950 sprunghafte EntwicklungAber: trotz stetiger Neuerungen Grundlagen heutigerTechnik seit Jahrzehnten relativ stabilInformatik ist nicht so schnelllebig, wie man vielleicht denkt

Page 24: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Teil II

Programmierung mit MATLAB

Page 25: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Überblick

1 Grundlagen der Programmierung

2 MATLAB als Programmiersprache

3 Grundlagen: Variablen, Datentypen, Vektoren

4 Funktionen in MATLAB

5 Kontrollstrukturen

6 Nutzerinteraktion und Visualisierung

Page 26: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Programmentwicklung: Problem

Programm muss vonMenschen geschrieben

werden und auch für andereMenschen verständlich sein

Programm muss vomProzessor ohne

Mehrdeutigkeiten undeffizient ausgeführt werden

können

Page 27: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Programmentwicklung: Lösung

MATLABx = input(’x = ’);if (x>0)fprintf(’Positiv.\n’);endif (x==42)fprintf(’Zahl 42. \n’);end

Programmierer verfasstProgramm in sogenannter

Hochsprache

Machine Code AssemblerFA CLI33C0 XOR AX,AX8ED0 MOV SS,AXBC007C MOV SP,7C008BF4 MOV SI,SP50 PUSH AX07 POP ES50 PUSH AX1F POP DSFB STI...

Für die Ausführung durch denProzessor wird das Programmauf eine dem Prozessor eigeneMaschinensprache umgesetzt

Page 28: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Hochsprache vs. Maschinensprache

Programm wird in sogenannten HochsprachengeschriebenFür die Ausführung durch den Prozessor wird dasProgramm auf eine dem Prozessor eigeneMaschinensprache umgesetztZwei Möglichkeiten:Compilierung von Programmen: spezielles Programm

(Compiler ) übersetzt Programm vor derAusführung in Maschinensprache einesgegebenen Prozessors

Interpretation von Programmen: spezielles Programm(Interpreter ) setzt Programmbefehle währendder Ausführungszeit auf Prozessorbefehleum

Page 29: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Compiler vs. Interpreter

CompilerAllgemein schnellere AusführungUrsprünglicher Code in der Regel nicht mehrrekonstruierbar→ Schutz des QuelltextesBreiter Einsatz für Programmierung von Betriebssystemen,Anwendungsprogrammen, etc.C, C++, Pascal/Delphi, FORTRAN und zahlreiche weitere

InterpreterLangsamere Ausführung wegen Aufwand für ÜbersetzungLaufzeitfehler durch Syntaxfehler möglichQuelltext des Programmes bleibt sichtbar: kein Schutz,aber offen für beliebige Anpassungen durch dritteAber: plattformunabhängige Programme (überall woInterpreter läuft)Einsatz als Skriptsprachen zur Ausführungssteuerung, undim Web etc.MATLAB, Perl, PHP, JavaScript, Python und viele andere

Page 30: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Compiler vs. Interpreter /2

In letzten Jahren Mischformen populär, wie z.B. Java (Sun)und .NET (Microsoft)

Compiler übersetzt Programme in „maschinennahen“, aberplattformunabhängigen CodeLaufzeitumgebung (JRE bei Java, CLR bei .NET)übernimmt letzten Schritt der Umsetzung

Zum Teil auch Compiler für interpretierte Sprachenvorhanden

Technisch unproblematischDient der Steigerung der Performance und/oder demSchutz der QuelltexteCompiler auch für MATLAB-Programme

Page 31: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Algorithmen

Aber: was genau macht das Programm?Rückblick:

Definition (Informatik)Informatik ist die Wissenschaft von der systematischen undautomatischen Verarbeitung von Informationen, insbesonderemit Hilfe von Computern.

Die „systematische und automatische Verarbeitung“ wirddurch den Begriff Algorithmus präzisiert.

Definition (Algorithmus)Ein Algorithmus ist eine eindeutige Beschreibung eines inmehreren Schritten durchzuführenden Vorgangs zur Lösungeiner bestimmten Klasse von Problemen.

Page 32: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Algorithmusbeispiel: Kuchen Backen

Problem: Kuchen BackenAlgoritmus: BackrezeptInput: Eier, Mehl, ...Output: Kuchen

1. Zutaten vermengen2. Teig kneten3. Teig in Backform4. Backform in Backofen5. Kuchen 1h backen6. Kuchen entnehmen

Page 33: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Vom Problem zur Lösung

Algorithmus

Problemanalyse

Programm inHochsprache

Programmierung

Programm inMaschinen-

Sprache

Übersetzung

Prozess mitAusgabe des

Resultats

AusführungDurch Prozessor

Von der Entwicklung biszur Ausführung

von Programmen

Ergebnis

Arbeitsschritt

Page 34: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Die MATLAB Entwicklungsumgebung

Grafische Nutzungsschnittstelle fürInteraktives Lösen mathematischer ProblemeVerwaltung von Daten in Variablen und DateienGrafische Ausgabe von Funktionsdiagrammen (Plots)Bearbeitung und Ausführung von ProgrammenErweiterungen der Funktionalität

Page 35: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Die MATLAB Entwicklungsumgebung

Page 36: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Die MATLAB Entwicklungsumgebung: Aufbau

Hauptfenster:Befehlsfenster (Command Window): interaktive Eingabeeinzelner BefehleEditor: Erstellen und Ausführen von Programmen,gespeichert als .m-Dateien

Weitere Fenster:Dateibrowser (Current Folder): Überblick über Programmeund andere DateienBefehlshistorie (Command History): zuletzt eingegebeneBefehleArbeitsumgebung (Workspace): Belegung, Typ undSpeichergröße aktuell genutzter Variablen

Fenster können durch nach Bedarf angeordnet odergeschlossen werden

Page 37: Grundlagen der Informatik für Wissenschaftliche Anwendungen

MATLAB als Programmiersprache

MATLAB ist eine interpretierte Programmiersprache:Programme werden zu Laufzeit übersetzt

MATLAB ist eine imperative Programmiersprache: einAlgorithmus ist dargestellt als Sequenz vonhintereinander auszuführenden Befehlen

MATLAB ist eine prozedurale Programmiersprache: zurStrukturierung des Quelltextes kann derGesamtalgorithmus in inhaltlichzusammenhängende und durch Aufrufverwendbare Prozeduren (Funktionen) zerlegtwerden

MATLAB ist eine objekt-orientierte Programmiersprache: zurweiteren Strukturierung können Daten vonObjekten sowie die zugehörige Funktionalität alsMethoden in Klassen zusammengefasst werden

Page 38: Grundlagen der Informatik für Wissenschaftliche Anwendungen

MATLAB als Programmiersprache: Grundlagen

Variablen halten Werte von Zahlen, Vektoren, Matrizen,Zeichenketten und komplexeren ObjektenOperatoren können Werte berechnen und VariablenverändernZahlreiche vordefinierte FunktionenFunktionen können auch vom Nutzer als Teil einesProgramms definiert werdenAusdrücke setzen sich aus Variablen, Operatoren undFunktionsaufrufen zusammenProgramm besteht aus Sequenz von AusdrückenAußerdem: Programmablauf über Steueranweisung

Bedingte Ausführung/VerzweigungenProgrammschleifen

Page 39: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Variablen

Variable ist (wie aus der Mathematik gewohnt) einName/Platzhalter für einen veränderlichen Wert» x = 7;» y = 3.1415926;» z = ’Hello!’;

Werte können Zahlen, logische Werte, Zeichen/-ketten,Vektoren, Matrizen und komplexere oder nutzerdefinierteKonstrukte sein

Page 40: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Datentypen

Dienen der Festlegung, welche Arten von Werten genutztwerden können, wie sie gespeichert, verarbeitet und interpretiertwerdenGrundlegende Klassen von Datentypen

Numerische Datentypen: ganze Zahlen (Integer) undFließkommazahlen (Floating Point)Textdatentypen: Zeichen (Character), Zeichenketten(String)Logische Datentypen (Logical), meist zweiwertigeBool’schen Logik mit Werten Wahr oder Falsch

Für numerische Daten in der Regel Unterklassen verfügbar jenach Anforderungen bzgl. Speicherverbrauch,Datenbereichsgröße und GenauigkeitTypkonstruktoren wie Felder, Strukturen, Klassen, etc. erlaubenZusammensetzen komplexerer Typen, z.B. für Mediendaten(Bilder, Audio, Video) oder anwendungsspezifische Daten

Page 41: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Grundlegende Datentypen in MATLAB /1

double für beliebige FließkommazahlenWird kein Typ für eine numerische Variableangegeben, ist der Typ automatisch doubleVerwendet 8 Byte, Werte zwischen 3.4 ∗ 1038

und −3.4 ∗ 1038

Präzision bis ca 15 DezimalstellenAlternative: single mit 4 ByteKodierung entsprechend IEEE Standard forFloating-Point Arithmetic (IEEE 754)

int32 für ganze Zahlen4 Byte (32 Bit), Wertebereich von −231 und231 − 1Alternativen: int8, int16, int64 bzw. ohneVorzeichen (unsigned) uint8, uint16,uint32, uint64

Page 42: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Grundlegende Datentypen in MATLAB /2

char für Zeichen und ZeichenkettenUnicode: 2 Bytes pro ZeichenFelder für ZeichenkttenAutomatischer Typ bei Zuweisung mitHochkommas» s = ’Das ist eine Zeichenkette.’;

Alternative: string als Datentyp mitzusätzlichen Funktionen auf textuelle Daten

logical für logische WerteZweiwertige Logik: Werte 0 (false) oder 1(true)Erlauben logische Verknüpfungen: and, or,not, xor, etc.

Page 43: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Datentypen Konvertieren oder Festlegen

Spezielle Funktionen mit Namen der Datentypen erlaubenTypkonvertierung bzw. Typzuweisung bei ErzeugungKönnen bei der Variablendeklaration verwendet werden» y = int8(5)y = 5

Vorsicht: Typkonvertierung kann zu Präzisionsverlust» i = int32(3.1415)i = 3

oder Fehlern führen» y = uint32(-5)y = 0

Page 44: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Datentypen Anzeigen

Anzeige aktueller Variablen mit Datentypen whos

» x = 7;» y = 3.1415926;» z = ’Hello!’;» whosVariables in the current scope:

Attr Name Size Bytes Class

x 1x1 8 doubley 1x1 8 doublez 1x6 6 char

oder mit» whos <variablenname>

für einzelne VariableHilfe zu Datentypen mit help datatypes

Page 45: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Der Zuweisungsopeator =

Zuweisung: Variable auf der linken Seite erhält Wert desevaluierten Ausdrucks auf der rechten SeiteErlaubt z.B.» x = x + 4;

Nicht als Gleichung zu verstehenZu lesen als „der neue Wert von x ergibt sich aus dem altenWert von x plus 4“

Page 46: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Weitere wichtige Operatoren

Standardisierte Rechenoperatoren wie +,−, ∗,÷ etc.Existieren als skalare Operatoren für Einzelwerte (z.B. .∗)oder für alle spezielle Vektoren- oder Matrizenoperationen(einfach ∗)Auch definiert als (überladbare) Funktionen z.B. plus()

Vergleichsoperatoren wie == (Gleicheit), ∼=(Ungleichheit), <=, >=, >,< etc.

Ergebnis der Auswertung ist logischer Wert

Logische Operatoren AND (& oder &&), OR (| oder ||) undNOT (∼)Weitere Operatoren für Matrizen und Mengen sowienutzerdefinierte Operatoren

Page 47: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Hilfsfunktionen für Numerische Werte

floor() rundet ab auf nächst kleineren Ganzzahlwert(Abschneiden des Nachkommaanteils)ceil() rundet auf auf nächst größeren Ganzzahlwertround() rundet zum näherliegenden Ganzzahlwert

Page 48: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Vektoren

Tupel von Fließkommazahlen unterschiedlicherDimensionalitätIn der Programmierung auch als Feld (Array) bezeichnetSpaltenvektor (n ∗ 1-Matrix)» v = [1 ; 2 ; 3]v =123

Zeilenvektor (1 ∗ n-Matrix) (mit Kommas oder Leerzeichen)» u = [1 , 2 , 3]u =1 2 3

Page 49: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Vektoren /2

Neben der Belegung mit literalen Werten auchHilfsfunktionen vorhandenVorbelegung mit Nullwerten» v = zeros(1,5)v =0 0 0 0 0

Vorbelegung mit Zahlenbereich» v = 1:4v =1 2 3 4

Array von bestimmtem Datentyp durch Kombination mitTypkonvertierungsfunktion» v = int8(1:5)v =1 2 3 4 5

Page 50: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Vektoren /3

Vorbelegung mit Zufallswerten (double zwischen 0 und 1)» x = rand(1,3)x =0.2774 0.4344 0.3503

Vorbelegung mit zufälligen ganzen Zahlen (doublezwischen 1 und 10)» x = randi(10,1,3)x =2 9 1

Vorbelegung mit zufälligen ganzen Zahlen (zwischen 0 und100)» x = randi([0, 100], 1, 3)x =65 100 68

Page 51: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Vektoren /4

Transposition von Vektoren mit ’ (Umwandlung von Zeilen-in Spaltenvektoren und umgekehrt)» x = [1, 2, 3]x =1 2 3» x’ans =123

Page 52: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Vektoren /5

Verknüpfung von Vektoren» x = [1, 2, 3];» y = [4, 5, 6];» [x,y]ans =1 2 3 4 5 6

Euklid’sche Norm eines Vektors» norm( [3 , 4] )ans =5

Page 53: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Matrizen /1

Matrizen von Fließkommazahlen unterschiedlicherDimensionalität» m = [ 1, 5 ; 7, 2]m =1 57 2

Zahlreiche Funktionen zur Definition vorhanden, z.B.» m = zeros(3,3)m =0 0 00 0 00 0 0

zeros(3) erzeugt dieselbe Matrix (bei einem Parameterimmer quadratisch)

Page 54: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Matrizen /2

Erzeugung einer Identitätsmatrix» x = eye(3)x =1 0 00 1 00 0 1

Erzeugung einer Matrix 2 ∗ 2 mit zufälligen Wertenzwischen 1 und 10» x = randi(10,2,2)x =2 105 4

Page 55: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Matrizen /3

Transponieren einer Matrix mit ’» x’ans =2 510 4

Dimensionalität einer Matrix» size (x)ans =2 2

det() für die Determinante einer quadratischen Matrix

Page 56: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Arbeit mit Matrizen

MATLAB erlaubt einfache Programmierung mit MatrizenViele Funktionen nehmen Matrizen als ParameterOperatoren auf Matrizen definierte

Zahlreiche Funktionen und Operationen direkt imSprachumfang unterstützt

matrix1 = [1 1 1; 0 1 1; 0 0 1];disp(matrix1);matrix2 = [1 2 3; 4 5 6; 7 8 9];disp(matrix2);disp(matrix1 * matrix2);

Page 57: Grundlagen der Informatik für Wissenschaftliche Anwendungen

Operationen auf Matrizen

Manche Operationen können aufganze Matrix ∗ oder auf Komponenten .∗ ausgeführt werden» m = [ 1, 5 ; 7, 2];» m * mans =36 1521 39

» m .* mans =1 2549 4