MAPLE - Grundlagen · – MATLAB, Fortran, C, C#, Java, Visual Basic Ivo Havlík, TCI...
Transcript of MAPLE - Grundlagen · – MATLAB, Fortran, C, C#, Java, Visual Basic Ivo Havlík, TCI...
MAPLE - Grundlageng
Ivo Havlík
Leibniz Universität Hannover
Institut für Technische Chemie
Callinstr. 5
30167 Hannover30167 Hannover
Germany
Juni 2012MAPLE-Grundlagen 1Ivo Havlík, TCI 1
Datenverarbeitung in der Chemieg
• Numerische Datenverarbeitung: Excel– numerische Lösung ist (immer) eine Notlösung– numerische Integration, Ableitung– Approximation von Funktionen
für einfachere numerische Bearbeitung für Vereinfachung komplizierter Formeln
– Nullstellenberechnung: f(x)=0 -> xi ?• Symbolische Mathematik: MAPLE, Mathematica
– exakte Lösungen: Integration, Ableitung, Approximation,
Nullstellenberechnung etc. im Allgemeinen alle "Papierlösungen"
Juni 20122
im Allgemeinen, alle Papierlösungen
Ivo Havlík, TCI MAPLE-Grundlagen 1
Aktuelle Version, Literatur
• Aktuelle Version: Maple 15• Unsere Arbeitsversion (ITS-Pool): Maple 13
– für knapp 200 EUR eine Studentenversionpp• RRZN-Handbuch: MAPLE - Eine Einführung ...• Westermann: Mathematische Probleme Lösen • Westermann: Mathematische Probleme Lösen
mit MapleM l Hilf T t i l• Maple-Hilfe + Tutorials
• Unzählige Online-Tutorials, leicht zu finden
Juni 20123Ivo Havlík, TCI MAPLE-Grundlagen 1
Was ist MAPLE ?
• Computeralgebra-System: MAthematicalmaniPulation LanguagE
warum MAPLE: entstanden auf der University of Waterloo, Ont i K n dOntario, Kanada
Hersteller: Maplesoft Inc. Kurzfassung der Fähigkeiten: auch in Wikipedia unter Kurzfassung der Fähigkeiten auch in Wikipedia unter
"Maple (software)"
• Eine prozedurale, deklarative pProgrammiersprache (Interpreter)
auf der Ebene von Excel, MATLAB, Access, SQL ähnlich: Mathematica, MATLAB
• Verwendung: für Algebra, Analysis, Numerik...
Juni 2012Ivo Havlík, TCI 4MAPLE-Grundlagen 1
Wozu ist MAPLE gut ?g• Hauptanwendungsgebiet im Unterschied zum
B E l z.B. Excel: – symbolische Mathematik: Algebra (Lösen von
Gleichungssystemen) Analysis (Differential und Gleichungssystemen), Analysis (Differential- und Integralrechnung), Termumformungen
• graphische Benutzeroberfläche:graphische Benutzeroberfläche:– Worksheet, 2D- und 3D-Graphiken (Plots),
Animation• Ausgaben als PDF, HTML, LaTeX, RTF• Schnittstellen und Umwandler zu m
Programmiersprachen:– MATLAB, Fortran, C, C#, Java, Visual Basic
Juni 20125Ivo Havlík, TCI MAPLE-Grundlagen 1
Praktische Anwendungsgebieteg g• Zahlenoperationen
S P d kt i T il i – Summen, Produkte, gemeinsame Teiler, gemeinsames Vielfaches
– Wurzel, Logarithmen, PrimfaktorzerlegungWurzel, Logar thmen, Pr mfaktorzerlegung• Umformen von algebraischen Ausdrücken
– Vereinfachen, Konvertieren, Kombinieren• Lösen von Gleichungssystemen• Funktionen in einer Variablen:
– Nullstellenberechnung, Faktorzerlegung, Taylor-Polynom• Messdatenauswertung
– Darstellung, Interpolation, Korrelation• Statistik
Juni 20126Ivo Havlík, TCI MAPLE-Grundlagen 1
Praktische Anwendungsgebieteg g
• Graphische Darstellung von Funktionen– 2D, 3D
• Animation von Funktionen (Durchlaufen von (Intervallen der Orts- und Zeitvariablen)
• Analytische Berechnung vonAnalytische Berechnung von– Differenzieren: Ableitungen von Funktionen– Integrieren: bestimmte/unbestimmte Integrale– Integrieren: bestimmte/unbestimmte Integrale
• Lösen von DifferentialgleichungssystemenV kt M t i G t i G t • Vektoren, Matrizen, Geometrie, Grenzwerte, Reihen, Fourier- und Laplacetransformation
Juni 20127Ivo Havlík, TCI MAPLE-Grundlagen 1
Praktische Anwendungsgebieteg g
• Verwendung im "Kalkulator"-Modus– Eingabe von (komplizierten) Einzelbefehlen
• Programmiereng– bedingte Verzweigungen (if..then..else)– Schleifen (for..do..end do)Sch f n (for.. o.. n o)– Prozeduren (ProcName=proc(PList)..return..end proc)– und alle anderen Elemente einer und alle anderen Elemente einer
Programmiersprache (I/O• Zugriff auf alle MAPLE-Einzelbefehle auch in Zugriff auf alle MAPLE Einzelbefehle auch in
den MAPLE-Programmen
Juni 20128Ivo Havlík, TCI MAPLE-Grundlagen 1
Erste Schritte
• Programmstart– graphische Benutzeroberfläche (Math/Text input)– klassische Benutzeroberfläche (Text input)– Befehlszeilen-Maple (Text input)– die Benutzeroberflächen unterscheiden sich in der
Eingabesyntax bzw. im Eingabeverfahren, liefern aber gleiche Ergebnisse
• Hilfe– >help Thema oder >?Thema (z.B. ?sqrt oder
?simplify,sqrt oder ?dsolve/numeric)• Zahlreiche Beispiele (>?examples/index)
Juni 20129Ivo Havlík, TCI MAPLE-Grundlagen 1
Graphische BenutzeroberflächepWorksheet mode, 2D Input: schwarz, 1D Input (Text): rot; Tools/Options: Anfangseinstellungen
Juni 201210Ivo Havlík, TCI MAPLE-Grundlagen 1
Erste Schritte
• Mode wird beim Öffnen eines neuen Dokuments angegeben (File/New/Mode)
• Document mode– kein Prompt, Eingabe als 2D:– Operationen mit Right-Click und Kontextmenüp g
• Worksheet mode (traditionell)– Prompt (>) – Prompt (>) – Eingabe als 2D oder 1D; in 1D, Semikolon am Ende;
Ausführen – Ausführen mit Right Click in 2D: mit expliziter Befehlseingabe in 1D: >int(x^2+1,x);
Juni 201211
p f g ( , );
Ivo Havlík, TCI MAPLE-Grundlagen 1
MAPLE - StarteinstellungengTools/Options
Juni 201212Ivo Havlík, TCI MAPLE-Grundlagen 1
Erste Schritte
• Beim MAPLE-Start– Grundausstattung an Funktionalität vorhanden– weitergehende Funktionalität: packages
z.B. plots, ImageTools, finance, Statistics, Student laden mit >with(plots), auflisten mit >?index/package
f h lf l f ll• Umfangreiche Hilfe mit Tutorials für alles– >?operators/binary
• Execution Group und Text (Kommentare)– in der Menüleiste: [> und T[
• Speicher/alle Definitionen löschen– >restart;
Juni 201213
>restart;
Ivo Havlík, TCI MAPLE-Grundlagen 1
Grundkentnisse• Datentypen
– integer: 5– float: 5.
i l it Obj ktt ?t– viele weitere Objekttypen: >?type– komplexe Zahlen: c1:=3+4*I
Obj ktn m n• Objektnamen– Maple-Objekten (Zahlen, Ausdrücken, Gleichungen)
können Namen zugewiesen werdenkönnen Namen zugewiesen werden Einige Namen sind reserviert: >?constants
– Groß- und Kleinschreibung ist relevant: g aa ≠ Aa pi (kleingeschrieben): ein Variablenname; Pi: Konstante π Diff(x^2 x) zeigt Ausdruck diff(x^2 x) differenziert
Juni 201214
Diff(x 2,x) zeigt Ausdruck, diff(x 2,x) differenziert
Ivo Havlík, TCI MAPLE-Grundlagen 1
Grundkentnisse
• Gültigkeitsbereich von Namen Die Namenszuweisung gilt für das gesamte Arbeitsblatt abc := 13.5; bleibt zugewiesen; Fehlerquelle !
Aufh b n du ch: bc: ‘ bc‘ (s l kti ) > st t ( ll ) Aufheben durch: abc:= abc (selektiv), >restart (alle)
• MAPLE unterscheidet zwischen gebrochen-ti n l n nd D im l hl n:rationalen und Dezimalzahlen:
– Zahlenoperationen werden möglichst genau ausgeführt und als Brüche dargestellt (3/5)Brüche dargestellt (3/5)
– >3/5 -> 3/5, aber 3/5. -> 0.60000 (Dezimalzahl)
• Zahlentypen der Variablen in den BeispielenZahlentypen der Variablen in den Beispielen– Integer: i..n; Float (Dezimalzahl): a..h, o..z
Juni 201215Ivo Havlík, TCI MAPLE-Grundlagen 1
Rechnen mit Zahlen• Löschen vom internen Speicher: >restart; • Wertzuweisung: >i:=3; j:=i;• binäre Operatoren: +, -, *, /, ^, mod etc.p• Leerzeichen zwischen Zahlen und Operatoren
werden ignoriertg• Jeder Befehl im Textmodus endet mit Semikolon;• Basis-Reihenfolge der Operationen: ^ */ +-Basis Reihenfolge der Operationen: / +• Klammern werden wie in Mathematik verwendet
– um die Operationsreihenfolge zu bestimmen– um die Operationsreihenfolge zu bestimmen– goldene Regel: Klammern schaffen klare Verhältnisse
ein Klammerpaar mehr schadet nie !
Juni 201216
p
Ivo Havlík, TCI MAPLE-Grundlagen 1
Rechnen mit realen Zahlen
• Elementare Rechenoperationen– Variable %, evalf(), Digits– >2*(3/4-5/7)/(3/5); -> – >evalf(%); -> 0.1190476190– >evalf(1/3,5); Konvertierung in einen Float, 5 Stelleng– %: eine Variable, die das Ergebnis der letzten
Operation enthält (Vorsicht !!); %%, %%%– mit Digits:=n wird global die Genauigkeit und die
Darstellung gesetzt (Standard: 10): >Digits:=20;– >3^(1/4); ->– >evalf(3^(1/4)); -> 1.3160740129524924608
Juni 201217Ivo Havlík, TCI MAPLE-Grundlagen 1
Umformen von Ausdrücken• Auswerten: subs(x=x0, a), eval(a, x=x0)
b ( 0 5 ^4 t( )) 0 7696067812– >subs(x=0.5, x^4+sqrt(x)); -> 0.7696067812– >eval(y^4+sqrt(y), y=0.5); -> 0.7696067812– Unterschied eval() und evalf() subs() und :=– Unterschied eval() und evalf(), subs() und :=
• Vereinfachen: simplify(), normal()– simplify(x^4*x^5) -> x9simplify(x 4 x 5) x– simplify(expr, symbolic): formelle symbolische
Auswertung, ohne Rücksicht auf Wertei lif ( )– simplify(expr, assume=prop): simplify(sqrt(x^2),assume=positive) x simplify(sqrt(x^2))
– normal(): bildet den Hauptnenner kürzt Faktorennormal(): bildet den Hauptnenner, kürzt Faktoren– expand(): (x+1)*(x-1) -> x^2-y^2– factor(x^2-y^2) -> (x-y)(x+y) (Umkehrung von expand)
Juni 201218Ivo Havlík, TCI MAPLE-Grundlagen 1
Umformen von Ausdrücken
• Expandieren, Kombinieren, Konvertieren: expand(a), combine(a,opt), convert(a,form)– >expand(sin(x+y)); -> sin(x)cos(y) + cos(x)sin(y)– >combine(sin(x)*cos(y) + cos(x)*sin(y)); -> sin(x+y)– >combine(2*ln(y)-ln(z),ln,symbolic) versus
>combine(2*ln(y)-ln(z),exp,symbolic)– >convert(cot(x),sincos); -> cos(x)/sin(x)
• Apostroph, assume(), about()– Apostroph x:=1; x:=‘x‘; - Wert von x wird gelöschtApostroph x: 1; x: x ; Wert von x wird gelöscht– sqrt(x^2); assume(x>0); sqrt(x^2);– about(x): Eigenschaften der Variable x
Juni 201219
about(x): Eigenschaften der Variable x
Ivo Havlík, TCI MAPLE-Grundlagen 1
Gleichungen, Gleichungssystemeg g y• Gleichungen, Ungleichungen
l () l () l () () l ()– solve(), fsolve(), lhs(), rhs(), plot()– solve(eq,var): exaktes Lösen einer Gleichung (alle
Lösungen)Lösungen)– fsolve(eq,var,interval): Näherungslösungen einer
Gleichung (nur eine Lösung im Intervall)g ( L g m )– >eq1 := x^2-2*x = sqrt(x): solve(eq1, x);– >eq1 := x^2-2*x = sqrt(x): fsolve(eq1, x);q q q– Hilfe: ?plot;– >uneq := abs(x) < x^2-4*x: solve(uneq,x);– >plot([lhs(uneq), rhs(uneq)],x=-2..6);– >lhs(uneq); -> |x|
Juni 201220Ivo Havlík, TCI MAPLE-Grundlagen 1
Gleichungen, Gleichungssystemeg g y
• einfache Gleichungssysteme– solve(), fsolve(), assign()– assign(): weist die Lösungswerte den Variablen
x1,x2,x3 zu– >eq1 := 4*x1 + 5*x2 - x3 = -15:– >eq2 := 2*x1 - 3*x2 - x3 = 17:– >eq3 := 5*x1 + 4*x2 + x3 = 6:– >sol:=solve({eq1,eq2,eq3}, {x1,x2,x3});assign(%);
>x1,x2,x3; -> 4,-5,6bl 1 h d 4 Variable x1 hat den Wert 4, etc.
Ohne assign(%): >sol[2]; -> x2 = -5 (rhs(sol[2])) Mit assign(%): >sol[2]; -> -5 = -5
Juni 201221
Mit assign(%): >sol[2]; -> -5 = -5
Ivo Havlík, TCI MAPLE-Grundlagen 1
Elementare Funktionen• Elementare Funktionen: >?initialfunctions;
– fast alles, was man sich ausdenken kann, kleine Auswahl:– sum(a(k),k=1..n), product(a(k),k=1..n): >sum(1/k,k=1..7)
dd(f(k) k 1 ) l(f(k) k 1 ) l(i^2 i 1 5)– add(f(k), k=1..n), mul(f(k), k=1..n): >mul(i^2,i=1..5)– ifactor(n): Primfaktorzerlegung
i d( 1 k): ößt i s T il– igcd(n1, .., nk): größter gemeinsamer Teiler– sqrt(x), surd(x,n): Quadratwurzel, n-te Wurzel
log[b](x): Logarithmus zur Basis b von x– log[b](x): Logarithmus zur Basis b von x– ln(x), log10(x): natürlicher und dekadischer Logarithmus– trigonometrische hyperbolische exponentielle Fkttrigonometrische, hyperbolische, exponentielle Fkt.– Konstanten: Pi, exp(1), I, infinity– limit(f,x=a): Grenzwertberechnung
Juni 201222
m t(f, a) Grenzwert erechnung
Ivo Havlík, TCI MAPLE-Grundlagen 1
Definition von Funktionen
• Elementare Funktionen: in MAPLE eingebaut– ?inifunctions - Liste
• Auswerten elementarer Funktionen– >sin(Pi/4); evalf(%); -> 0.7071067810
• Eigene Funktionen definierenEigene Funktionen definieren– >f1 := x -> x^3+x-1; f1(4); -> 67– oder: f1(x) := x^3+x-1 - Maple fragt nach– oder: f1(x) := x 3+x-1 - Maple fragt nach– Umwandlung eines Ausdrucks in eine Funktion:
>f2 := unapply(1+sqrt(x) x); f2(1); > 2 – >f2 := unapply(1+sqrt(x),x); f2(1); -> 2 – Funktion in 2 Variablen:
>f3 := (x y) > sqrt(x^2+y^2); f3(2 1); > √5
Juni 201223
– >f3 := (x,y) -> sqrt(x 2+y 2); f3(2,1); -> √5
Ivo Havlík, TCI MAPLE-Grundlagen 1
Definition von Funktionen
• Zusammengesetzte Funktionen– >fx := x -> piecewise(x<1.5,x^2,x<3,x+0.75,6.75-x);
plot(fx(x),x=-2..6);
• Funktionen werden in die Routinen übergeben gzur Weiterverabeitung, Darstellung etc.– diff(), int(), plot() etc.diff(), int(), plot() etc.– >diff(f3(x,y),x); diff(f3(x,y),y);
Juni 201224Ivo Havlík, TCI MAPLE-Grundlagen 1
Definition von Funktionen• Unterschied Ausdruck x Funktion
k ^– Ausdruck: ga := x^2-1– Funktion: gf := x -> x^2-1 oder gf(x):=x^2-1
f(3) ibt "8" du ch Aus tun d Funkti n f(x) gf(3) ergibt "8" durch Auswertung der Funktion gf(x)– Umwandlung Ausdruck->Funktion: gf1:=unapply(ga,x)
gf(x) und gf1 sind jetzt identisch: gf(3), gf1(3) -> 8 durch gf(x) und gf1 sind jetzt identisch gf(3), gf1(3) 8 durch Auswertung der Funktion gf(x), gf1(x)
Ableitung: dg:=D(gf1): Ergebnis ist eine Funktion: x -> 2x dg(2): Ergebnis ist "4" (Auswertung von 2*x x=2) dg(2): Ergebnis ist 4 (Auswertung von 2*x, x=2)
– Umwandlung Funktion -> Ausdruck: ga2 := apply(gf,x) ga ist jetzt identisch zu ga2g j g Ableitung: dga:=diff(ga,x): Ergebnis: 2x Umwandlung in eine Funktion: dg2:=unapply(dga,x)
Juni 201225Ivo Havlík, TCI MAPLE-Grundlagen 1