Mögliche Prüfungsfragen zu „VO Mathematische Software“ SS 2009 Der Prüfungsstoff umfasst alles, was in der Vorlesung vorgetragen wurde. Die folgende Liste soll Ihnen bei der Vorbereitung helfen. Bei der Prüfung können allerdings auch andere Fragen bzw. Zusatzfragen gestellt werden. Bei allen Fragen sollten Sie die Antwort einerseits allgemein formulieren, andererseits an Hand von Beispielen erklären können. Zusätzlich zu Fragen in der Art, wie sie hier aufgelistet sind, werden auch Fragen analog zu den Tests in der Übung zur Prüfung kommen. à Kapitel 0: Einführung – Was ist und kann Mathematica? 0.1 Wie kann man komplizierte Ergebnisse in Kurzform auf dem Bildschirm darstellen? Was bedeuten dabei die Zeichen << und >>? 0.2 Nenne vier typische Merkmale von mathematischer Software. 0.3 Wie lässt sich mit dem zuletzt von Mathematica berechneten Ergebnis weiterrechnen? à Kapitel 1: Grundlagen von Mathematica 1.1 Erklären Sie die Unterschiede zwischen der üblichen mathematischen Schreibweise und der Schreibweise von algebraischen Ausdrücken und Funktionen in Mathematica. 1.2 Wie unterscheiden sich exakte und näherungsweise Zahlen? Wie kann man erreichen, dass bei numerischer Rechnung mit etwa 64 Dezimalstellen gerechnet wird? 1.3 Wie kann man die Summe einer unendlichen Reihe exakt berechnen? 1.5 Welche Möglichkeiten kennen Sie, algebraische Ausdrücke zu vereinfachen? 1.4 1.6 Wie lässt sich der Vorrang zwischen zwei Operatoren herausfinden (ohne Benutzung der Hilfe)? Geben Sie ein Beispiel für die Verwendung von „Assumptions“ bei Simplify. 1.7 Ordnen Sie die folgenden Operatoren nach ihrem Vorrang: +, :=, *, =, ^, ==, //. Wie lässt sich eine andere Auswertungsreihenfolge erzielen? 1.8 Welche Arten von Bedingungen kennen Sie in Mathematica? 1.10 Was können Sie über Mathematica-Funktionen sagen, deren Namen mit einem Q endet? 1.12 Was versteht man unter den Begriffen Ausdruck/Expression, Head und Atom? 1.9 Nennen Sie zwei Möglichkeiten, um zu überprüfen, ob eine Zahl eine Primzahl ist. 1.11 Erläutern Sie die wichtigsten Möglichkeiten zur Umformung algebraischer Ausdrücke (Vereinfachen, Ausmultiplizieren, Faktorisieren, Kürzen, auf gemeinsamen Nenner bringen, in Partialbrüche zerlegen). 1.13 Was ist die FullForm von H1 + bL2 a fragen.nb 2 1.14 Welche Vereinfachungen für die Eingabe bieten InputForm und StandardForm gegenüber der FullForm? 1.15 Wie erzeugt man eine reelle Zufallszahl zwischen -1 und 1? Wie erzeugt man eine zufällige ganze Zahl zwischen 1 und 6? 1.16 Nach welchem Schema sind in Mathematica Namen für interne Funktionen und Variablen vergeben? Wie stellt man sicher, dass ein selbst definierter Name nicht mit einem eingebauten kollidiert? 1.17 Wie lassen sich alle selbst definieren Funktion und Variablen, deren Name mit x beginnt, auflisten? 1.18 Wie lassen sich Bedingungen logisch verknüpfen? 1.20 Wie lassen sich die Parameter, von denen eine Ausgabe abhängt, interaktiv verändern? 1.19 Geben Sie eine Bedingung an, die dann wahr ist, wenn x eine natürliche Zahl ist. 1.21 Wie lässt sich bei Manipulate eine Variable definieren, die nur ganzzahlige Werte annimmt? Wie lässt sich eine Variable definieren, die nur Werte aus einer gegebenen Liste annimmt? à Kapitel 2: Grafische Darstellung von Funktionen Die Fragen beziehen sich teilweise auch auf Grafikbefehle, die erst in späteren Kapiteln besprochen wurden (ListPlot, ArrayPlot, MatrixPlot, ParametricPlot, ParametricPlot3D). 2.1 Geben Sie einen Mathematica-Ausdruck an, der die folgende Grafik erzeugt. Achten Sie dabei insbesondere auf die Verwendung der richtigen Optionen. 2.2 Wie erzeugt man grafische Darstellungen von Funktionen von Ø? Welche Möglichkeiten gibt es, die Darstellungsweise zu beeinflussen? 2.3 Welche Möglichkeiten zur grafischen Darstellung von Funktionen von zwei reellen Variablen gibt es? Wie kann man die Darstellung beeinflussen? 2.4 Wie kann man mehrere Funktionen über- oder nebeneinander plotten? Wie erreicht man, dass die Funktionen in verschiedenen Farben oder Strichstärken gezeichnet werden? 2.5 Wie lassen sich alle Optionen, die ein bestimmter Befehl kennt, anzeigen? 2.7 Was bedeutet die Option AspectRatio→1? Was die Option AspectRatio→Automatic? 2.6 Wie setzt man Optionen für eine Funktion so, dass sie für das ganze Notebook gelten? Wie kann man die gesetzten Optionen anzeigen lassen? 2.8 Wie lässt sich die Genauigkeit der grafischen Darstellung beeinflussen? Erklären Sie insbesondere den Unterschied zwischen PlotPoints und MaxRecursion. 2.9 Wie kann man Kurven Parameterdarstellung gegeben sind? oder Flächen graphisch darstellen, wenn Sie durch 2.10 Welche Möglichkeiten kennen Sie, den Stil, in dem Linien gezeichnet werden, zu beeinflussen? 2.12 Erzeugen Sie mit ParametricPlot3D das Bild eines Kegels und eines Zylindermantels. 2.11 eine Welche Befehle gibt es zur Darstellung von Funktionen a) von Ø , b) von 2 Ø , c) von Ø 2 , d) von Ø 3 und e) von 2 Ø 3 ? 2.13 Plotten Sie eine Funktion f : Ø so, dass der Graph der Funktion für positive Funktionswerte grün, für negative rot gezeichnet wird. fragen.nb 3 Kapitel 3: Zuweisungen 3.1 Was ist eine Zuweisung? Was ist der Unterschied zwischen einer Zuweisung mit sofortiger und einer mit verzögerten Auswertung? Geben Sie zwei Beispiele an, wo sich der Unterschied auswirkt. 3.2 Wie definiert man in eine Funktion? Erklären Sie auch hier die Unterschiede zwischen gewöhnlicher und verzögerter Zuweisung, insbesondere für Funktionen, die als Ableitungen oder Integrale anderer Funktionen definiert werden. 3.3 Welche Bedeutung hat der Unterstrich bei den Argumenten einer Funktion? Wie wirkt sich ein Weglassen des Unterstrichs aus? 3.4 Wie kann man sich über die aktuelle Definition einer (selbst geschriebenen) Funktion informieren? 3.6 Wie lassen sich Funktionen mit Default-Argumenten definieren? 3.5 Was sind Muster/Pattern? Wozu dienen sie? Gibt es andere Anwendungen außer für Funktionsdefinitionen? 3.7 Geben Sie das Pattern für die Definition einer Funktion f an, die als Argument 1) eine ganze Zahl 2) eine Matrix 3) eine beliebige Liste 4) eine 3-elementige Liste mit einer geraden Zahl, einer weiteren Liste und einem beliebigen Ausdruck 5) eine komplexe Zahl mit ganzzahligem Real- und Imaginärteil 6) eine reelle Zahl zwischen 1 und 2 und (optional, sonst 0) eine zweite reelle Zahl enthält. 3.8 Wann und warum wird die Funktion Evaluate benötigt? 3.9 Schreiben Sie eine rekursive Funktion zur Berechnung von n!, die sich einmal berechnete Ergebnisse für spätere Aufrufe merkt. 3.10 Wie kann man erreichen, dass eine selbst geschriebene Funktion Optionen an eine verwendete Mathematica-Funktion weitergibt? 3.11 Geben Sie das Pattern für die Definition einer Funktion f an, die als einziges Argument einen Vektor im 2 (d.h. mit ganzzahligen Koordinaten) akzeptieren soll. Auf diesen Punkt soll innerhalb der Funktion unter dem Namen p zugegriffen werden können. 3.12 Zählen Sie mindestens vier Befehle auf, die ihr erstes Argument mehrfach auswerten. 3.14 Wie kann man mit Mathematica eine Funktion f sowie ihre Ableitung und ihre Stammfunktion 3.15 Erklären Sie die Bedeutung des Hold-Attributs. Wie lässt sich die Wirkung aufheben? 3.13 Wie lässt sich die Laufzeit eines Programms messen? Wie lässt sich verfolgen, in welchen Schritten die Auswertung genau vor sich geht? plotten? 3.16 Wie erzwingt man, dass eine Funktionsdefinition nur dann zur Anwendung kommt, wenn die Funktion mit zwei gleichen Argumenten aufgerufen wird? fragen.nb 4 3.17 Eine Funktion g : 2 Ø ist folgendermaßen definiert: gHa, bL = gHb, a mod bL für b ∫ 0 und gHa, 0L = a, wobei a mod b für den Rest der Division von a durch b steht. Schreiben Sie eine rekursive Mathematica-Funktion, die g berechnet. 3.18 Schreiben Sie eine Funktion, die die Fakultät einer natürlichen Zahl berechnet – einmal mit Pattern, einmal mit If. 3.19 Schreiben Sie eine Funktion erstesMal[liste_,a_], das angibt, an der wievielten Stelle einer einfachen Zahlenliste sich zum ersten Mal das Element a befindet. Wenn a in der Liste vorkommt, dann soll die Funktion die Position zurückliefern. Wenn a nicht in der Liste vorkommt, dann können Sie irgend einen anderen Wert zurückgeben, z.B. 0 oder die Länge der Liste plus 1. 3.20 Geben Sie ein Bedingung an, die dann wahr wird, wenn ein Ausdruck ein Pattern matcht. Geben Sie ein Pattern an, das dann von einem Ausdruck gematcht wird, wenn dieser eine Bedingung erfüllt. 3.21 Erklären Sie den Unterschied zwischen x_Rational und x_/;x∈Rationals. Gibt es 3.22 Schreiben Sie eine Funtion, die beliebige Polynome differenzieren kann. Ausdrücke, die eines der Pattern matchen, das andere jedoch nicht? 3.23 Schreiben Sie Funktionen, die nur mit Hilfe von Pattern-Matching das gleiche tun wie die später im Kapitel über Listen vorgestellten Funktionen First, Last, Most, Rest, Append, Prepend, Join, und Flatten. à Kapitel 4: Listen 4.1 Was ist eine Liste? Worin besteht der Unterschied zu einer Menge? 4.3 Was ist ein Iterator? Welche Formen von Iteratoren kennen Sie? 4.2 4.4 4.5 Wie kann man Listen erzeugen (insbesondere Vektoren und Matrizen)? Wie erzeugt man eine Wertetabelle (z.B. x2 für x = -10, -9, …, 9, 10) Wie lassen sich verschachtelte Listen formatiert ausgeben? 4.6 Wie kann man Listen von Zahlen bzw. Zahlenpaaren grafisch darstellen? Erklären Sie auch die wichtigsten Optionen. 4.7 Welche Möglichkeiten gibt es, um einzelne Listenelemente oder Teile von Listen anzusprechen? 4.8 Wie erzeugt man eine Teilmenge, die durch eine charakteristische Eigenschaft ihrer Elemente definiert ist? 4.9 Wie wirkt sich die Funktion Sort aus, wenn man sie auf eine Liste anwendet, deren Elemente selbst Listen sind? Erklären Sie damit eine Möglichkeit, Listen nach bestimmten „Sortierkriterien“ zu ordnen. 4.10 Geben Sie zwei verschiedene Möglichkeiten an, wie man von einer Matrix eine bestimmte Spalte entfernen kann. 4.11 Wie stellt man fest, wieviele verschiedene Elemente eine Liste hat? 4.13 Erzeugen Sie möglichst einfach eine Liste der Zahlen von 1 bis 100. 4.12 Seien a und b zwei Listen. Was ist der Unterschied zwischen Join[a,b], Append[a,b] und Union[a,b]? 4.14 Wie lassen sich Elemente aus einer Liste löschen? Wie können Elemente ersetzt oder eingefügt fragen.nb 5 werden? 4.15 4.16 Wie stellt man fest, ob eine Liste sortiert ist? Unter welcher Bedingung liefert Sort und Union das gleiche Ergebnis? à Kapitel 5: Funktionale Programmierung 5.1 Wie wendet man eine Funktion auf alle Elemente einer Liste an? 5.3 Schreiben sie einen möglichst einfachen/kurzen Ausdruck, der zum gleichen Ergebnis führt wie 5.2 Welche Bedeutung hat das Attribut Listable? Welche Funktionen mit diesem Attribut kenne Sie? Wie lässt sich der gleiche Effekt für andere Funktionen erzielen? 5.4 5.5 Table @Sin@liste PiTD, 8i, 1, Length @liste D<D Was ist der Unterschied zwischen Map und Apply? Nennen Sie vier typische erste Argumente für Apply. 5.6 Schreiben Sie ein Programm häufigkeiten[liste_,n_], das zu einer gegebenen Liste von natürlichen Zahlen feststellt, wie oft in dieser Liste jede einzelne der Zahlen 1, 2, …, n vorkommt. (Das Ergebnis soll eine Liste der Länge n sein.) 5.7 5.8 5.9 Was sind anonyme Funktionen? Erläutern Sie mindestens zwei sinnvolle Beispiele. Was tut das folgende Programm? f@x_, p_D := Apply @Plus , Map@ Sqrt @Hx − L.Hx − LD &, pD D Wie kann man den Mittelwert und den Median der Elemente einer Liste berechnen? 5.10 Wählen Sie aus einer Liste von Punkten im n all jene aus, deren Abstand zum Ursprung kleiner 1 ist. Definieren Sie dazu keine Hilfsfunktion. 5.11 Schreiben Sie eine Funktion, der eine Liste von Vektoren übergeben wird und die von jedem dieser Vektoren die Norm (d.h. die Länge) berechnet und diese in einer Liste zurück gibt. Verwenden Sie nicht den Befehl Norm. 5.12 Schreiben Sie eine Funktion, der eine Liste von Vektoren und eine positive Zahl r übergeben werden. Aus der Liste sollen jene Vektoren ausgewählt werden, deren Maximumsnorm kleiner oder gleich r ist. (Bem: Die Maximumsnorm eines Vektors erhält man, indem man zuerst von jeder Koordinate den Absolutbetrag ermittelt und dann den größten dieser Werte nimmt.) 5.13 Wie erreicht man, dass eine Funktion iteriert wird, wenn entweder die Anzahl der Iterationen oder eine Abbruchbedingung gegeben ist? à Kapitel 6: Vektorrechnung 6.1 Wie schreibt man folgende Operationen für Vektoren: Addition, Multiplikation mit einem Skalar, inneres (skalares) Produkt, äußeres (vektorielles- oder Kreuz-) Produkt, Norm. 6.2 Wie schreibt man folgende Matrixoperationen: Addition, Multiplikation, Transponieren, Inversion, Determinante? 6.3 Was ist zu beachten, wenn man mit Mathematica symbolisch Identitäten zwischen Vektoren beweisen will? fragen.nb 6 6.4 Wie lassen sich Matrizen optisch ansprechend darstellen? 6.5 Schreiben Sie eine Funktion schwerpunkt[a_,b_,c_], die den Schwerpunkt eines durch seine drei Eckpunkte gegebenen Dreiecks berechnet. Die Koordinaten des Schwerpunktes s = Isx , s y M sind gegeben durch sx = a x +b x +c x 3 und s y = Koordinaten der Punkte zuzugreifen. a y +b y +c y 3 . Lösen Sie das Problem jedoch, ohne direkt auf die einzelnen 6.6 Schreiben Sie ein möglichst einfaches Programm paarPlot[x_,y_], das zu zwei gegebenen Zahlenlisten 8x1 , x2 , …, xn < und 8y1 , y2 , …, yn < eine graphische Darstellung der Punkte Hx1 , y1 L, …, Hxn , yn L erzeugt. 6.7 Wie löst man lineare Gleichungssysteme? Diskutieren Sie insbesondere auch den Fall, dass die Lösung nicht eindeutig ist. 6.8 Geben Sie eine Funktion an, die einen Vektor im 2 um 90 ± dreht. 6.9 Schreiben Sie eine Funktion symmetrale[p1_,p2_], die zu zwei Punkten im 2 die Seitensymmetrale berechnet und in Form einer Gleichung (also z.B. 3x+7y==2) zurückliefert. 6.10 Wie könnte man das innere Produkt und die Norm eines Vektors ohne Dot, Norm und EuclideanDistance berechnen? 6.11 Seien g : a x + b y = c und h : d x + e y = f zwei Geraden im 2 . Berechnen Sie den Schnittpunkt mit LinearSolve. 6.12 Die Matrix a und der Vektor b eines linearen Gleichungssystems A x = b seien gegeben. Lösen Sie das Gleichungssystem, indem sie zuerst die Erweiterte Matrix (die b als zusätzliche Spalte enthält) bilden und diese Matrix dann in Normalform bringen. à Kapitel 7: Gleichungen und Gleichungssysteme 7.1 Wie ersetzt man in einem algebraischen Ausdruck alle x durch 7.3 Wie kann man die Lösungsmenge einer Gleichung mit zwei Unbekannten graphisch darstellen? 7.2 1 - t2 ? Wie löst man polynomiale Gleichungen bzw. Gleichungssysteme a) exakt, b) numerisch? 7.4 Wie geht man vor, wenn man die berechneten Lösungen einer Gleichung zur Probe in die Gleichung einsetzen will? 7.5 Angenommen, bei der Lösung einer Gleichung ergeben sich zwei Lösungen. Wie kann man diese den Variablen x1 und x2 zuweisen? 7.6 Mit welcher Art von Ergebnis muss man in der Regel rechnen, wenn man mit Solve algebraische Gleichungen fünften oder höheren Grades löst? 7.7 Finden Sie die (reellen wie auch komplexen) Schnittpunkte des Kreises k : x2 + y2 = 1 mit der kubischen Kurve x3 + x y2 - 3 x + x y = 3 im 2 . Das Ergebnis soll eine Liste mit den Schnittpunkten sein. 7.8 Wie lassen sich aus einer Liste von Punkten im 2 jene mit reellen Koordinaten (also Punkte im 2 ) auswählen? Macht es einen Unterschied, ob die Punkte exakt oder gerundet gegeben sind? 7.9 7.10 Mit wie vielen Lösungen muss man beim Lösen eines polynomialen Gleichungssystems rechnen? Was ist das Ergebnis von fragen.nb 7 Ia2 + 3 a + 5 cM ê. 98a → d, c → 2<, 85 → 2<, 9x_ 2 → Sin@xD, c → f== 7.11 Wie löst man nicht-polynomiale Gleichungen bzw. Gleichungssysteme numerisch? Wie kann man geeignete Startwerte finden? 7.12 7.13 Vergleichen Sie Solve und FindRoot. Was sind die Vor- und Nachteile der beiden Funktionen? Die Befehle Solve, NSolve und Reduce werden genau gleich aufgerufen. Wie unterscheidet sich ihr Ergebnis? 7.14 Die Eigenwerte einer quadratischen Matrix M sind definiert als die Nullstellen der Determinante von M - l I , wobei I die Einheitsmatrix ist (Diese Determinante ist ja ein Polynom in l). Schreiben Sie eine Funktion, die die Eigenwerte in einer Liste zurückliefert.