(Éte 2017)
Si vous lisez ceci c'est parce que vous avez ouvert une session du notebook de SAGE, ou encore que vous l'exécutez dans un des serveurs dédiés. Comme bien de logiciels, SAGE peut aussi être utilisé via le terminal, mais laissons de côté cette approche pour l'instant. Vous verrez plusieurs "cellules" où; on doit entrer le code SAGE.
Déplacez le curseur dans l'espace entre deux cellules, vous verrez une ligne bleue apparaître. Si on clique dessus, une nouvelle cellule apparaît, tandis que si on fait Ctrl + click
, c'est une petite section pour entrer du texte, comme celui-ci qui apparaît. Dans ces sections, on peut aussi entrer du texte , ce qui est très bien si on veut écrire des équations. Par ailleurs, en faisant un double click sur une de ces sections, vous accédez au texte, et pouvez l'éditer. Corrigez ceci : .
Bien entendu, le résultat est . SAGE sait faire ceci, et bien d'autre choses. Pour exécuter les commandes / calculs d'une cellule, il faut faire Shift + Entrée
. Faites-le après la cellule ci-bas, une fois directement, puis une autre après avoir coché la case
Si on veut une valeur numérique on doit faire:
ou encore
Vous le devinez, SAGE sait reconnaître le type d'objets... pour les rationnels, il opère de façon exacte, on doit court-circuiter un peu ceci pour avoir une valeur décimale.
Tab
si vous commencez à écrire une commande, puis appuyez sur la touche TAB
, les commandes commençant comme celle que vous avez commencé à entrer s'afficheront. Vous pouvez alors en choisir une, puis
? le point d'interrogation après une commande, suivi de Shift + Entrée
ramène à la documentation de la commande en question, ce qui comporte des exemples.
Faites Tab
dans la cellule ci-bas.
Faisons quelques calculs symboliques. Il faut déclarer les variables, toutes sauf .
Pour résoudre des équations, on entre la liste des équations (avec deux signes d'égalité), puis la liste des variables:
Bien entendu on a intérêt à faire solve?
puis Entrée.
Faire des listes ou des ensembles est très facile, la syntaxe est presque celle qu'on utilise en maths: s'obtient au moyen de:
Le 0-ème élément de la liste est le premier... eu... un exemple!
Quelques graphiques maintenant. En 2d, pour commencer.
On peut créer les objets graphiques séparément, puis les montrer ensemble. Plus haut nous avons crée le graphique de la fonction pour , en rouge. Traçons maintant la courbe de la fonction pour , en bleu et pointillés.
Disons que je veux calculer une approximation d'une intégrale, naïvement. Pensons à entre et . On va commencer par définir la fonction, puis faire une somme de Riemann avec les points milieux.
On fera les choses avec des listes, mais bien sur, ça se fait avec des boucles.
On crée la liste des points milieux:
On évalue en chacun de ces points puis on multiplie par , ce qui fait une autre liste, qui s'appelle F.
On calcule la somme, en mettant .n() à la fin, pour forcer un résultat numérique exprimé en notation décimale.
Mais bien entendu SAGE peut faire le calcul exact de cette intégrale (et plusieurs autres).
Un autre exemple : dessiner les courbes orthogonales aux courbes . Pour chaque valeur de on considère la courbe d'équation .
Ci bas on a dessiné les courbes corerspondant aux valeurs de qui varient entre -4 et 4 par pas de .5 (la dernière valeur est exclue, il s'agit d'une liste) elles sont en bleu dans la figure plus bas.
On cherche une famille de coubes (rouges) qui coupent chacune des courbes bleues, et en chaque point d'intersection les tangentes aux courbes bleues sont orthogonales aux tangentes aux courbes rouges (voir le résultat plus bas).
De l'équation on tire directement , de sorte qu'en chaque point d'une courbe bleue , la pente de la tangente est précisément . La pente d'une droite orthogonale est le négatif de l'inverse, c'est à dire . On cherche donc . De l'équation originale on peut éliminer , de sorte que, en remplaçant on trouve l'équation différentielle
Ceci peut se résoudre sans trop de peine, car c'est une équation à variables séparables, au pire une table d'intégrales donne l'intégrale de . Mais essayons plutôt de le faire avec SAGE.
Quelques remarques:
Les courbes de la famille orthogonale sont des courbes données implicitement (c'est ce qu'on obtient quand on résoud l'équation différentielle). On peut les tracer comme telles, il s'agit des courbes . Trouvez comment ceci est fait avec la commande implicit_plot.
Notez que les listes F1 et F2 sont les listes de courbes, donc d'objets graphiques. Ainsi, afficher la somme des listes, affiche toutes les courbes des listes. Probablement ce n'est pas la chose la plus efficace à faire...
Que se passe-t-il si on laisse tomber les valeurs absolues?
Voyons maintenant quelques courbes en coordonnées polaires. Habituellement, on écrit , si on donne l'équation explicitement.
Par exemple, est un cercle, car en multipliant les deux côtés par on obtient , ou encore ce qui équivaut à
Finalement, les courbes paramétriques pour
Voyons maintenant comment faire les manipulations usuelles en algèbre linéaire : déclarer des vecteurs, faire le produit vectoriel (pour les vecteurs dans ), produit scalaire, norme... et il en va de même pour les matrices.
Pour finir, un peu de polynômes de Taylor, en une ou deux variables.
On peut, bien sur calculer plusieurs polynômes d'un seul coup, et faire les dessins sur une même figure. Ci-bas le graphique de la fonction sur (c'est ce que le paramètre contrôle), et les plynômes de Taylor de degrés inférieurs à 20. On remarquera comment on fait changer les couleurs des courbes.
Par ailleurs, on a intérêt à faire Taylor?
.
Voici comment calculer le polynôme de Taylor autour de , on obtient une somme de puissances de .
Finalement, en deux variables: Calculons le polynôme de Taylor de degré de la fonction autour du point .
Bien entendu, ceci pourrait se faire (dans ce cas) comme le produit de deux polynomes de Taylor (attention aux degrés)
On peut dessiner les surfaces de plusieurs façons différentes, dépendament de comment la surface est spécifiée:
Voyons quelques exemples.
Exemple : dessiner la région de l'espace comprise entre les surfaces et
Dessinons les deux surfaces explicitement:
Le graphique n'est pas tellement beau, essentiellement parce que décrivent un rectangle. L'idéal serait que seulement les valeurs de qui se trouvent sous la région commune soient considérées.
Pour ceci, on paramétrise les surfaces (on verra en détail comment faire dans le cours, on peut simplement ignorer les calculs qui suivent)
Calculons d'abord l'intersection des deux surfaces, c'est à dire
C'est l'équation d'une ellipse, à savoir .
Une paramétrisation de celle-ci est pour .
La courbe d'intersection entre les deux surfaces est où .
On va utiliser la paramétrisation des surfaces, pour que les dessins soient plus beaux... Les paramètres seront en quelque sorte les coordonnées polaires, mais avec les noms . Ainsi , et pour et est une description de l'ellipse et tout ce qu'il y a dans son intérieur: en effet on "multiplie" l'ellipse par le paramètre qui varie entre et , ca remplit la région enfermée par l'ellipse. Pour ce qui est de l'ellipse il suffit de faire .
Les surfaces sont ainsi , ou, paramétriquement . Pour c'est pareil.
Flot d'un champ et lignes de courant : étant donné uin champs de vecteurs , une ligne de courant du champ est une courbe donnée par une paramétrisation telle qu'en tout point le vecteur vitesse est égal au champ. En d'autres termes
Trouver des lignes de courant revient à résoudre certaines équations différentielles. Par chaque point il y a une unique ligne de courant, on peut penser à la ligne de courant comme la trajectoire qu'un objet mobile suivrait, étant donné que sa vitesse doit coïncider avec le champ .
L'ensemble de toutes les lignes de courant s'appelle le flot du champ de vecteurs.
Ci-bas, trois lignes de courant, calculées "manuellement" pour le champ . L'équation différentielle associée est simplement . En effet, si on a une courbe donnée explicitement , la pente de la tangente en et , de sorte qu'un vecteur directeur de la tangente est . La recherche d'une ligne de courant pour le champ c'est précisément la recherche d'une courbe dont un vecteur tangent au point et .