matlab-praktikum zur numerik - universitt siegen zur numerik sommersemester 2007 m.sc. ivan...

Download Matlab-Praktikum zur Numerik - Universitt Siegen zur Numerik Sommersemester 2007 M.Sc. Ivan Cherlenyak Prof. Dr. Hans-Jrgen Reinhardt Fachbereich Mathematik Universitt Siegen Version

Post on 06-Feb-2018

228 views

Category:

Documents

7 download

Embed Size (px)

TRANSCRIPT

  • Matlab-Praktikumzur Numerik

    Sommersemester 2007

    M.Sc. Ivan CherlenyakProf. Dr. Hans-Jrgen Reinhardt

    Fachbereich MathematikUniversitt Siegen

    Version: 17 September 2007

  • Inhaltsverzeichnis

    1 Einfhrung in MATLAB und Octave 11.1 Was ist MATLAB und Octave? . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    1.2.1 Vektoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.2.2 Matrizen und Manipulationen mit Matrizen . . . . . . . . . . . . . 71.2.3 Datentypen in MATLAB . . . . . . . . . . . . . . . . . . . . . . . . 81.2.4 Logische Operationen und Relationen . . . . . . . . . . . . . . . . . 91.2.5 Steuerstrukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.2.6 Visualisieren mit MATLAB (Octave) . . . . . . . . . . . . . . . . . 101.2.7 Dateien lesen und schreiben . . . . . . . . . . . . . . . . . . . . . . 14

    1.3 m-Files: Matlab als Programmiersprache . . . . . . . . . . . . . . . . . . . 141.3.1 Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.3.2 Definition von Funktionen . . . . . . . . . . . . . . . . . . . . . . . 15

    2 Numerische Algorithmen, ihre Komplexitt und Fehleranalyse 192.1 Numerische Algorithmen und Fehlerquellen . . . . . . . . . . . . . . . . . . 192.2 Computerarithmetik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.3 Zur Komplexitt numerischer Algorithmen . . . . . . . . . . . . . . . . . . 23

    3 Graphische Benutzeroberflchen und MATLAB 273.1 Erstellung einer GUI mit MATLAB . . . . . . . . . . . . . . . . . . . . . . 27

    3.1.1 GUI Elemente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.1.2 Darstellung kontrollieren (Gre, Position, Farben, Eigenschaften

    ndern) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.2 Programmierung(Callbacks, Datenstruktur, Spezialfunktionen, handles) . . 31

    3.2.1 Darstellung von Daten in Grafiken . . . . . . . . . . . . . . . . . . 33

    4 Einfache numerische Algorithmen mit MATLAB 354.1 Polynome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

    4.1.1 Berechnung von Polynomwerten. Horner-Schema . . . . . . . . . . . 354.1.2 Polynome in MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . 37

    4.2 Nullstellenberechnung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384.2.1 Bisektions-Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . 384.2.2 Methode der sukzessiven Approximation . . . . . . . . . . . . . . . 404.2.3 Newton-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

  • INHALTSVERZEICHNIS

    4.2.4 Die Sekantenmethode (Regula falsi) . . . . . . . . . . . . . . . . . . 424.3 Lineare Gleichungssysteme: Direkter und iterativer Lser . . . . . . . . . . 43

    4.3.1 Inverse Matrix, Normen und Konditionszahl der Matrix . . . . . . . 434.3.2 Direkte Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444.3.3 Iterative Verfahren zur Lsung linearer Gleichungssysteme . . . . . 46

    II

  • Kapitel 1

    Einfhrung in MATLAB und Octave

    1.1 Was ist MATLAB und Octave?

    MATLAB ist ein sehr leistungsfhiges Softwaresystem fr technische Berechnungen. DerName MATLAB kommt von MATrix-LABoratory. Grundelemente sind Matrizen undihre Manipulationen, die in numerischen Verfahren optimal eingesetzt werden knnen.Typische Anwendungen sind

    Numerische Berechnungen aller Art

    Entwicklung von Algorithmen

    Modellierung, Simulation und Entwicklung von Prototypen technischer Probleme

    Analyse, Auswertung und grafische Darstellung von Datenmengen; Visualisierung

    Wissenschaftliche und technische Darstellungen

    Applikationsentwicklung mit Aufbau einer grafischen Benutzerschnittstelle

    Berechnung MATLAB verfgt ber eine numerische - qualitativ hochwertige - Pro-gammsammlung. Dem Benutzer bleibt es dadurch erspart, Standardalgorithmen neu pro-grammieren zu mssen.Visualisierung MATLAB verfgt ber moderne Visualisierungsmglichkeiten. Dadurchist der Benutzer in der Lage, Daten auf verschiedene Weisen zu visualisieren.Programmierung MATLAB verfgt ber eine eigene Programmiersprache. Dadurchstellt MATLAB ein offenes System dar. Der Benutzer hat somit die Mglichkeit, dieFunktionalitt von MATLAB durch eigene Programme beliebig zu erweitern. Dies kanndadurch geschehen, dass er MATLAB-Programme schreibt - sogenannte m-Files - oder C-bzw. Fortran-Codes einbindet.

    Folgende Punkte tragen auerdem zum Erfolg von MATLAB bei:

    1

  • 1.1 Was ist MATLAB und Octave?

    Syntax MATLAB besitzt eine benutzerfreundliche, intuitive Syntax, die kurz undeinfach ist. Sie lehnt sich stark an die mathematischen Schreibweisen an.

    Toolboxen In Form sogenannter Toolboxen lsst sich der Funktionsumfang vonMATLAB auf vielen Gebieten erweitern. Unter anderem stehen folgende Toolbo-xen zur Verfgung: (Extended) Symbolic Math Toolbox, Financial Toolbox, ImageProcessing Toolbox, Neural Network Toolbox, Optimization Toolbox, Partial Dif-ferential Equation Toolbox, Spline Toolbox, Wavelet Toolbox, Image ProcessingToolbox, Statistic Toolbox.

    Matrizen Grundlage von MATLAB sind reelle und komplexe (einschlielich dnnbesetzter) Matrizen. Die Einfhrung einer Matrix als grundlegendes Datenelementhat sich nicht nur in der (numerischen) Mathematik, sondern in vielen anderen rech-nerorientierten Bereichen als sehr vorteilhaft herausgestellt.

    Prototyprealisierung In der Praxis kommt es vor, da man - aus den verschiede-nen Grnden heraus - darauf angewiesen ist, Algorithmen in anderen Programmier-sprachen, wie zum Beispiel C/C++,Fortran, Pascal oder Java, zu implementieren.Aber auch dann ist es vorteilhaft, einen Prototyp des Verfahrens in MATLAB zurealisieren, da dies meist sehr schnell mglich ist, bevor man den Algorithmus ber-trgt bzw. automatisch bertragen lsst.

    Grafiken bearbeiten Das MATLAB-Grafiksystem umfasst Hochsprachenbefehlefr die Bildverarbeitung, fr Trickbewegungen und Prsentationsgrafiken. Hierzugehren auch einfache Befehle, mit denen sich Grafiken kundenspezifisch gestaltenoder auch vollstndig grafische Benutzerschnittstellen fr eigene Applikationen auf-bauen lassen.

    Bibliothek von mathematischen Funktionen MATLAB verfgt ber eine um-fangreiche Sammlung von mathematischen Algorithmen und Funktionen. Diese Funk-tionalitt reicht von elementaren Funktionen ber Eigenwertberechnungen bis hinzur schnellen Fourier-Transformation.

    Simulink Simulink - ein Partnerprogramm zu MATLAB - ist ein blockorientier-tes, interaktives System zur Simulation linearer und nicht lineare dynamischer Sy-steme. Es handelt sich um ein mausgesteuertes Grafikprogramm, das ein Modelleines technischen oder physikalischen Systems, das als Blockdiagramm auf demBildschirm darzustellen ist, unter dynamischen Einwirkungen nachbildet. Grundlagesind MATLAB-Funktionen zur Lsung gewhnlicher Differentialgleichungen (ODE-Lser).

    2

  • Kapitel 1. Einfhrung in MATLAB und Octave

    Platformunabhngig MATLAB luft sowohl unter Windows als auch unter Linux.

    Octave Octave ist ein linuxbasiertes Softwaresystem, das freizugnglich ist, ein soge-nanntes Open Source Produkt. Genauso wie MATLAB besitzt Octave eine interaktiveScriptsprache, die speziell fr vektorisierbare Berechnungen optimiert ist und dabei Stan-dardroutinen der numerischen Mathematik (z.B. Eispack oder Lapack) auf einfache Weisezugnglich macht.Der Syntax von Octave ist der von MATLAB sehr hnlich, d.h. ein Octave Programmkann meist auch von MATLAB ausgefhrt werden. Die Rckwrtskompatibilitt ist nichtimmer gegeben, da MATLAB besonders im Grafikbereich um einen erheblich grerenFunktionsumfang verfgt. Die KDE-Komponente von Octave heit Koctave und sollteextra installiert werden. Das Octave-Forge Paket ist fr mehr Kompatibilitt mit MAT-LAB zustndig.

    Starten und BeendenBei vielen kommandoorientierten Rechnersystemen wird MATLAB bzw. Octave durch dasKommando matlab bzw. octave gestartet. Oder - bei grafischen Oberflchen - klickt mannach dem Start auf ein entsprechendes MATLAB- oder Octave-Icon bzw. Koctave-Icon.Dann sollten Sie den MATLAB Prompt oder den Octave Prompt octave:1> sehen, derauf ihre erste Eingabe wartet. Mit der Kommando quit verlassen sie beide Programme.

    Eingabekonventionen

    Alle Befehle knnen sowohl interaktiv als auch ber Skriptdaten (m-Files von MAT-LAB) eingelesen werden

    Skripts (m-Files) sind Textdateien mit dem Suffix .m. Sie werden durch Aufruf desDateinamens ohne Suffix eingelesen, und verhalten sich so, als ob ihr Inhalt Zeilefr Zeile am Prompt eingegeben wrde.

    ; trennt mehrere Befehle in einer Zeile, und unterdrckt die Ausgabe von Werten.

    , trennt Befehle, gibt aber Werte aus.

    ... am Zeilenende bedeutet, dass der Ausdruck in der nchsten Zeile weitergeht.

    3

  • 1.1 Was ist MATLAB und Octave?

    Kommentare werden mit % eingeleitet. Auf vielfachen Kundenwunsch wurde abRelease 14 eine Mglichkeit fr blockweise Kommentare im MATLAB Editor einge-fhrt. Das Anfangszeichen ist %} das Endzeichen %} .

    MATLAB und Octave unterscheiden zwischen Gro- und Kleinbuchstaben.

    HilfeMATLAB verfgt ber umfangreiche Online-Hilfen. Mit diesen erhalten Sie detaillierteInformationen zur Funktionalitt von MATLAB. Die Hilfsysteme knnen mit den Kom-mandos help, helpwin und helpdesk usw. aufgerufen werden. Jetzt wollen wir detaillierteinige Informationsdienste vorstellen:

    Das help- Kommando.>> help name gibt Hilfetext zur Variable oder Funktion name aus.Alle MATLAB-Funktionen sind in logische Gruppen(Themen) eingeteilt, und dieMATLAB-Verzeichnisstruktur basiert auf dieser Einteilung. Gibt man alleine helpein, so wird diese Gruppierung angezeigt. Hiermit kann man sich nun weiter vor-tasten

Recommended

View more >