Kurs  Cours

5. Etwas Umgang mit Mathematica
 Savoir un peu manier Mathematica

Die Gliederung dieses Kurses folgt in groben Zügen dem Buch von Nancy Blachman: A Practical Approach.... 
Hinweis: Kapitel 5 lesen!
Run mit WIN+Mathematica Version 5.2

 L'articulation de ce cours correspond à peu près à celle du livre de Nancy Blachman: A Practical Approach.... 
Indication: Lire le chapitre 5.
Testé avec Mathematica version 5.2+WIN

WIR94/98/99/2000/2007 // Copyright Rolf Wirz

Achtung: Mathematica neu starten, sonst könnte sehr viel Output auf den Schirm kommen.....
 Attention: Démarrer à nouveau Mathematica, sinon il pourrait y sortir beaucoup d'output sur l'écran...

5.1. Seiten-Breite setzen
     Fixer la largeur des pages

Ein Vorspann
 Préparatifs

"Material" erzeugen zur späteren Benutzung:
  Générer des "materiaux" à utiliser plus tard:

(*n30*)

Clear[n30]

n30[x_]:=N[x,30]

a = 4

n30[Pi]

Plot[-2x,{x,-1,1}];

Anzahl Output-Charakter verändern:
  Changer le charactère de l'output:

??SetOpt*

??$Output

??Pag*

??PageWidth

SetOptions[$Output, PageWidth -> 45]

Options[$Output]

In 5.2. werden folgende Befehle besprochen: "In", "Out". Probiere:
  Dans 5.2. on discute les ordres suivants: "In", "Out". Essaie:

??In

linie = $Line;
??Out

linie

"Material" erzeugen zur späteren Benutzung:
 Générer des "materiaux" à utiliser plus tard:

Plot[Sin[x],{x,0,50}];

Plot[x^2,{x,0,1}];

5.2. Listings von Input und Output
     Listings d'input et d'output

5.2.1. Input-Lines auflisten
         Faire une liste des input-lines

Mit "Recall" in älteren Versionen. Neu mit "InString":
  Dans les versions plus vieilles avec "Recall". Dans les versions nouvelles avec "InString":

Recall[1, 2, 3]

??InString

InString[{1, 2, 3, 4, 5, 6}]

In[1]

Out[1]

Achtung: Wenn Du Mathematica nicht neu gestartet hast, so könnte hier sehr viel Output auf den Schirm kommen..... Es könnte eine Stunde oder mehr dauern!
 Attention: Démarrer à nouveau Mathematica, sinon il pourrait y sortir beaucoup d'output sur l'écran... Cela pourrait durer plus d'une heure!

??In

Das Folgende gibt sehr viel Output (zum Drucken hier gesperrt):
 Ce qui suit produit beaucoup d'output (ici défense d'imprimer):

(* ??Out *)

5.2.2. In ein File schreiben und wieder abrufen:
       Ecrire dans un fichier et rappeler:

?Save

Save["C:\\work\\MathematicaData\\ASession.nb", 
			In,  linie, (*Out*)]

!!C:\work\MathematicaData\ASession.nb

5.3. Zum Editor
     Quant à l'éditeur

Hier für "NeXT"! (Für andere Editoren ev. anders, vgl. Mathematica, a Practical Approach von Nancy Blachman oder Literatur)
 Ici seulement pour "NeXT"! (Pour d'autres éditeurs voir Mathematica,  a Practical Approach de Nancy Blachman ou littérature)

Einige Edit-Funktionen:
  Quelques fonctions Edit:

??Edit

??EditDefinition

?*Edit*

??EditIn

??*Edit*

Beispiele:    Exemples

Edit[Expand[(x+2y)^6]]

Oder:    Ou:

EditDefinition[n30]

EditDefinition[a]

Funktioniert der Befehl auf NeXT?
  L'ordre fonctionne-t-il sur NeXT?

??n30

??a

5.4. Zu On-Line Help
     Quant à On-Line Help

Ein Trick
 Un truc

Weisst Du beim Schreiben innerhalb eines Befehls nicht mehr weiter, so kannst Du in der selben Zelle die Help-Funktion benutzen.
  Si tu ne t'en sors plus en écrivant à l'intérieur d'un ordre, tu peux utiliser la fonction Help dans la même cellule.

Beispiel:    Exemple:

Series[Csc[x],{x,0,7}]

?Series

Natürlich kannst Du auch eine neue Zelle machen:
  Naturellement tu peux faire une nouvelle cellule:

?Csc

5.5. Ein Blank kann "oder" bedeuten...
     Un "blanc" peut signifier "ou":

Das Problem besteht nur bei Version 1.2.:
  Le problème existe seulement pour la version 1.2.:

?X* Z*

5.6. Symbollisten erzeugen:
     Générer des listes de symboles

5.6.1. Ein Beispiel, das alles sagt:
         Un exemple qui dit tout:

Names["W*"]

Oder:    Ou:

Names["A*"]

Das Problem besteht nur bei Version 1.2.:
  Le problème existe seulement pour la version 1.2.:

5.6.2. Jetzt ganz Mathematica sowie alle bisherigen eigenen Definitionen auf einmal:
          Maintenant tout Mathematica ainsi que toutes les propres définitions jusqu'à présent à la fois:

Names["*"]

5.7. Verschiedene Möglichkeiten, eine Funktion zu codieren:
     Différentes manières de coder une fonction:

5.7.1. Die Definition einer Funktion:
         La définition d'une fonction:

Beispiel: Die Funktion "f(x) = sin(x) * cos(2x)" soll definiert werden.
Der Unterstrich "_" gibt die Funktionsvariable an. ":=" bedeutet "definiere":
  Exemple: Il faut définir la fonction "f(x) = sin(x) * cos(2x)". Le trait "_" indique la variable de la fonction. ":=" signifie "définis":

f[x_]:= Sin[x] Cos[2 x]

Ausgabe zur Kontrolle:
  Sortie de contrôle:

f[x]

Anwendung:    Application:

f[Pi]

Plot[f[x],{x, 0, 10}];

Kurz in einer Zelle eine andere Funktion:
  Brièvement une autre fonction dans une cellule:

f1[x_]:= Sin[2x] Cos[3 x^2]; 
		Plot[f1[x],{x, 0, 10}];

Zum Vergleich, wie es nicht funktioniert:
  En tant que comparaison: Voici comme ça ne fonctionne pas:

g[x]:= Sin[2x] Cos[3 x^2]; 
		Plot[g[x],{x, 0, 10}];

g1[x_]= Sin[2x] Cos[3 x^2]; 
		Plot[g1[x],{x, 0, 10}];

g2[x]= Sin[2x] Cos[3 x^2]; 
		Plot[g2[x],{x, 0, 10}];

5.7.2. Die Prefix-Notation:
         La notation préfixe:

Beispiel: Die Funktion "N" mit Klammern "[...]":
  Exemple: La fonction "N" avec des parenthèses "[...]":

N[Sqrt[2]/2]

5.7.3. Die Postfix-Notation:
         La notation postfixe:

Beispiel: "N" kommt hinten, abgetrennt durch "//":
  Exemple: "N" se place derrière, séparé par "//":

Sqrt[2]/2 // N

Damit lassen sich "Pipes" bilden. d.h. mehrere Funktionen nacheinander ausführen. Beispiele: 
  Ainsi on peut former des "pipes", c'est-à-dire générer plusieurs fonctions l'une après l'autre. Exemples:

"W*" // Names

"W*" // Names // Length

x = Pi/2

Sin[x]

Sin[x] // Sin // N

Sin[x] // Sin // Sin // N

Sin[x] // Sin // Sin // Sin // Sin // N

N[Sin[Sin[Sin[Sin[Sin[x]]]]]]

5.8. Output unterdrücken
     Supprimer l'output

5.8.1. Mit ";" am Schluss
         Mettre ";" à la fin

Beispiel:    Exemple:

Sin[4.08]

Sin[3.96];

Abrufen:    Appeler:

%

5.8.2. Diverse Befehle in einer Zelle. Welcher Output kommt?
         Différents ordres dans une cellule. Quel sera l'output?

Beispiele:    Exemples:

a=1; b=2; c=3; d=4

a=1; b=2; c=3; d=4;

a=1; b=2; Print[b]; c=3; d=4;

a=1; b=2; Print[b]; c=3; d=4

a=1; b=2; Plot[x,{x,0,1}]; c=3; d=4

5.9. Timing - Rechenzeit messen
     Timing - mesurer le temps de calcul

Mit "Timing" wird die CPU-Zeit gemessen. Beispiele:
  Avec "Timing" on mesure le temps CPU. Exemple:

Timing[N[Pi,500]]

Ohne den Output der Rechnung:
  Sans l'output du calcul:

Timing[N[Pi,500];]

Timing[N[Pi,2000];]

Plot[Sin[x],{x, 0, 50}] // Timing

Plot[Sin[x],{x, 0, 50}]; // Timing

5.10 Abbruch und Unterbruch
      Rupture et interruption

Während der Rechnungsausführung hast Du im Menu unter ("Action") neu "Kernel" - "Interrupt" die Möglichkeit, mit "Abort" abzubrechen oder mit "Interrupt Calculation" zu unterbrechen.
Der Abbruch ist auf NeXT auch möglich über die Tastatur mit "Command" und "." zusammen gedrückt. U.s.w..
Probiere aus (z.B. 5000 Fakultät....):
  Dans le menu sous  ("Action") nouveau "Kernel" - "Interrupt" tu as la possibilité d'interrompre le calcul par "Interrupt Calculation" ou définitivement par "Abort".
Sur NeXT l'interruption définitive est aussi possible avec les touches "Command" et ".", pressées simultanément. Etc..
Essaie (p.ex. 5000 factoriel)

5000!

Braucht wohl die Bildschirmausgabe oder die Rechnung mehr Zeit? Probiere aus!
  Est-ce la sortie ou le calcul qui dure plus de temps? Essaie!

1000! // Timing

5.11 Globale Variablen
      Variables globales

Variablen, die mit "$" beginnen
 Variables qui commencent par "$"

Mathematica stellt einige Variablen zur Verfügung. Diese beginnen mit dem Zeichen "$". Hier sind sie:
  Mathematica met quelques variables à disposition. Elles commencent par le signe "$". Les voici:

??$*

Einige Anwendungen:
  Quelques applications:

??$Line

$Line

$Version

$VersionNumber

$Letters

5.12 Spezielle Formen
      Formes spéciales

Mathematica-Zeichen sind Abkürzungen für Funktionen:
  Les signes de Mathematica sont des abréviations de fonctions:

??/

Alias["/"]

2/3 // N

Divide[2, 3] // N

Divide[2, 3]

Apply[Divide,{2,3}]

??Apply

"Putzmaschine" einsetzen
 Employer la "machine de nettoyage"

(* Old Form: Remove["Global`@*"] *)

Remove["Global`*"]