Search this site
Embedded Files
Driss Bennis
  • Home
  • Research
  • Teaching
    • Algebra1-S1 - IA
      • Chapitre 1-Alg1
        • Log-1-div
        • Log-2-
        • Log-3-
        • Log-4-
      • Chapitre 2-Alg1
        • Sec1-Ch2-Alg1
        • Sec2-Ch2-Alg1
        • Sec3-Ch2-Alg1
      • Chapitre 3--Alg1
      • Chapitre 4-Alg1
      • Chapitre 5--Alg 1
        • 2-1-def-frac-ration
        • 2-2-practice-decomposition
    • Cat-modules
    • homo-alg
    • cat-theory
    • Introduction à SageMath
      • Avant de commencer
      • insstallation-sagemath
      • calcul-arithm-sagemath
      • SageMath pour l'Algèbre linéaire
    • Algebra-linear
    • Crypto
      • Crypto-Cesar
    • Maths-prepas
  • Pedagogy-Workshops
    • Pedagogy
    • RE-KnoX-25
    • Masterclass-SO
    • SS-23-24-May
    • Sites-google
    • Outils-pour-chercheur
    • TIC-Doctoriales25-FSR
Driss Bennis
  • Home
  • Research
  • Teaching
    • Algebra1-S1 - IA
      • Chapitre 1-Alg1
        • Log-1-div
        • Log-2-
        • Log-3-
        • Log-4-
      • Chapitre 2-Alg1
        • Sec1-Ch2-Alg1
        • Sec2-Ch2-Alg1
        • Sec3-Ch2-Alg1
      • Chapitre 3--Alg1
      • Chapitre 4-Alg1
      • Chapitre 5--Alg 1
        • 2-1-def-frac-ration
        • 2-2-practice-decomposition
    • Cat-modules
    • homo-alg
    • cat-theory
    • Introduction à SageMath
      • Avant de commencer
      • insstallation-sagemath
      • calcul-arithm-sagemath
      • SageMath pour l'Algèbre linéaire
    • Algebra-linear
    • Crypto
      • Crypto-Cesar
    • Maths-prepas
  • Pedagogy-Workshops
    • Pedagogy
    • RE-KnoX-25
    • Masterclass-SO
    • SS-23-24-May
    • Sites-google
    • Outils-pour-chercheur
    • TIC-Doctoriales25-FSR
  • More
    • Home
    • Research
    • Teaching
      • Algebra1-S1 - IA
        • Chapitre 1-Alg1
          • Log-1-div
          • Log-2-
          • Log-3-
          • Log-4-
        • Chapitre 2-Alg1
          • Sec1-Ch2-Alg1
          • Sec2-Ch2-Alg1
          • Sec3-Ch2-Alg1
        • Chapitre 3--Alg1
        • Chapitre 4-Alg1
        • Chapitre 5--Alg 1
          • 2-1-def-frac-ration
          • 2-2-practice-decomposition
      • Cat-modules
      • homo-alg
      • cat-theory
      • Introduction à SageMath
        • Avant de commencer
        • insstallation-sagemath
        • calcul-arithm-sagemath
        • SageMath pour l'Algèbre linéaire
      • Algebra-linear
      • Crypto
        • Crypto-Cesar
      • Maths-prepas
    • Pedagogy-Workshops
      • Pedagogy
      • RE-KnoX-25
      • Masterclass-SO
      • SS-23-24-May
      • Sites-google
      • Outils-pour-chercheur
      • TIC-Doctoriales25-FSR

Prise en main

Exploration de SageMath 

Premier pas vers le caclul formel !

Découvrons les fonctionnalités de base de SageMath à travers des exemples de calculs élémentaires.

Pour se familiariser avec l'environnement de SageMath, nous traitons des opérations élémentaires telles que l'addition "+", la soustraction "-", la multiplication "*", la division "/", et le calcul de puissance avec "**" ou "^" sur des nombres. Progressivement, nous introduisons l'aspect calcul formel de SageMath.


Allons-y !


  •  Lancez SageMath. 

Vous pouvez le faire en utilisant `sage-notebook` (Jupyter Notebook). 
Lorsque la session Sage est lancée, elle s'ouvre dans un navigateur web affichant une page appelée "bloc-notes" (ou "worksheet" en anglais). Cette page est composée de cellules (sous forme de cadres rectangulaires) où vous pouvez saisir des commandes et des formules.
N.B. Lors du premier démarrage, Sage peut demander une identification.


  • Exploration de l'environnement de Calcul avec SageMath:

La plateforme SageMath adopte une approche de question-réponse à travers ces cellules. 

 

Saisir vos code  --> Exécuter (tapez  [Shift+Entrée] ou cliquez sur "Run") --> Une réponse, dite Sortie, sera affichée dans une nouvelle cellule.


Notez:

  • Lorsque vous tapez sur [Entrée], rien ne passera, juste vous fait passer à la ligne suivante.

  • Pour effacer une cellule, effacez d'abord son contenu, puis appuyez sur la touche (retour arrière). 

  • Pour effacer toutes les variables, choisissez "Restart worksheet" dans le menu Action en haut de la page.


Instructions générales du ce cours:

  • Tout au long de ce guide, nous préfixerons les codes source par "Sage :" et les sorties de ces codes après exécution par "Sortie:".

  • Un commentaire pour SageMath est placé après le symbole dièse (#). Tout ce qui est après ce symbole sur la ligne n’est pas interprété par le moteur de SageMath.


  • Votre premier calcul avec Sage !


Calculons 2*3+7^3:
 

Sage : 2*3+7^3   # N'oubliez pas d'Exécuter ( tapez sur [Shift+Entrée] ou sur "Run")

Sortie :  349

  • Notions de 'variable' et 'affectation' dans SageMath.
    Le symbole "=" joue le rôle d'affectation. Veut dire quand on écrit, par exemple 'v=3', on comprend qu'on a affecter à la variable v la valeur 3. Si on saisi juste après cela, par exemple v=v+4, cela se comprend qu'on affecte à la variable v la dernière valeur de la variable v et  4.  

  • Attention : Sage fait la distinction entre majuscules et minuscules.


Exemple:

Sage : v=2*3+7^3       # Rien ne se passera après l'exécution, mais Sagemath a compris que 2*3+7^3  est affecté à v.

Sage : v                             # Après exécution, on peut demander la valeur de v

Sortie :  349

Sage :  v - 49                         

Sortie :  300

Sage : v                             # Après exécution, on peut demander la valeur de v

Sortie :  349

Sage : v= v - 49              # la valeur de v est modifiée 

Sage : v                                                        

Sortie :  300


N.B. Pour utiliser dans la suite de votre session de travaille les résultats des calculs effectués, il est recommandé d'affecter ces résultats à des variables (stockage d'une valeur).

  • Le symbole "==" pour vérifier l'égalité!

Tapez le code suivant (on peut mettre plusieurs commandes dans une même ligne en les séparant avec un point-virgule ou une virgule.)


Sage : v; v==7; v>7    

Sortie :  349; False ; True       


La commande v==7 s'interprète: est-ce que 7 et v représente le même objet (ont la même valeur). De même v>7 s'interprète: est-ce que v est supérieur à v (on parle de variable booléenne qui renvoie True ou False).


  • On peut aussi évaluer plusieurs expressions à la fois en les mettant dans le même cadre. On passe à la ligne avec la touche Entrée. Mais, seuls les résultats de calculs dans la dernière ligne sont affichés.

 

Sage : b=a%13                         # % renvoie le reste de la division euclidienne de a par 13

             A=13*(a//13)+b        # // renvoie le quotient de la division euclidienne de a par 13

             A==a

Sortie : True


  • Pour réinitialiser les variables, on peut utiliser la méthode reset() : 


Sage : d=7^2; d; d==7^2

Sortie : 49; True

Sage : reset(); d==7^2


Après reset(), sagemath ne connaît plus la variable d. Ainsi, un message d'erreur s'affichera.


  • Si votre code est très long et que vous souhaitez le diviser en deux lignes (ou plus), utilisez le caractère "\" entre vos lignes comme suit :

Sage : 1+2+3+4+5+ \

               6+7

Sortie : 28


Essayez sans le caractère "\" :

Sage : 1+2+3+4+5+  

               6+7


  • Priorité des opérateurs arithmétiques binaires :
    SageMath suit l'ordre habituel des opérations. Voir : https://doc.sagemath.org/html/fr/tutorial/appendix.html

Vous pouvez modifier l'ordre dans lequel les expressions sont évaluées en utilisant des parenthèses ( ).


Plus d'exemples de calcul :
https://doc.sagemath.org/html/fr/tutorial/tour_assignment.html

Calcul des Nombres Rationnels, des Racines Carrées et des Réels

  • SageMath renvoie la forme réduite d'une fraction :


Testez, par exemple :

Sage: 20/10; 10/20.


En général, SageMath renvoie une forme simplifiée d'une image de ces fonctions prédéfinies comme la racine carrée (voir le glossaire de quelques fonctions mathématiques prédéfinies par SageMath).


Testez, par exemple :

Sage: sqrt(9); sqrt(20)

Sortie: 3

2*sqrt(5)

  • Pour obtenir une approximation d'un nombre, on peut utiliser l'une des commandes suivantes :


Sage: n(sqrt(20)); N(sqrt(20)); numerical_approx(sqrt(20))


Elles fournissent les mêmes résultats. Pour comprendre la différence, testez l'exemple :


Sage: N(sqrt(20), digits=6); n(sqrt(20), digits=6); numerical_approx(sqrt(20), prec=6)


Alors, n, N, et numerical_approx sont des fonctions de SageMath qui renvoient une approximation du nombre sous forme décimale avec, par défaut, 53 bits de précision. Cependant, la fonction numerical_approx accepte en argument optionnel `prec`, qui indique le nombre de bits de précision requis, et la fonction n ou N accepte en argument optionnel, `digits`, qui indique le nombre de décimales demandées.


Notez que "n" et "numerical_approx" agissent aussi comme des méthodes contrairement à N. Ainsi, on peut écrire :


Sage: sqrt(20).n(); sqrt(20).n(digits=6); sqrt(20).numerical_approx(); sqrt(20).numerical_approx(prec=6)


Ne vous inquiétez pas ! "fonction", "méthode" et même "procédure" sont des termes utilisés en programmation que vous allez découvrir au bon moment. Mais, si vous êtes curieux, vous pouvez demander à ChatGPT une explication simple :

"Quelle est la différence entre une fonction, une méthode et une procédure en programmation ?"


N.B. Comme vous l'avez remarqué, n et N sont utilisées comme des fonctions, ainsi il est recommandé de les éviter pour définir une variable, tout comme pour tout autre nom d'une fonction prédéfinie par Sagemath : sin(), cos(), ...


On peut avoir une représentation décimale d'une fraction en écrivant l'un des termes de la fraction sous sa forme décimale. Par exemple :


Sage : 10./20


La sortie sera : 0.500000000000000


En fait, par "10." on a converti le type entier (implicitement déclaré) de 10 au type de virgule flottante. On peut le faire aussi via la fonction RR().


Exemple : 

Sage : a = RR(10); type(a); a/20


Vous avez bien compris que la fonction `type()` renvoie le type de l'élément. Une autre fonction similaire qui nous informe de la nature de l'objet mathématique est `parent()`. Sauf cette dernière renvoie à la structure algébrique où l'objet appartient. Nous en parlons de cela dans la suite.


Pour l'instant, il faut noter que SageMath est fortement typé et chaque type est caractérisé par ses propres opérations, fonctions et méthodes. Les ensembles numériques courants sont : 


- Entiers positifs : `N = NN` par ex. 5, 5*9, 

- Entiers : `Z = ZZ` par ex. -2, -1000, 10^23

- Rationnels : `Q = QQ` par ex. 1/33, 1/1, -42/1

- Décimaux : `R ≈ RR` par ex. 03.33, sqrt(3), sin(8)

- Complexes : `C ≈ CC` par ex. 3+2*i, 1/5-3*i


Il y a d'autres types également utiles comme une chaîne de caractères "str" ou élément booléen de type "bool" (False ou True). Voir la section ci-dessous pour découvrir quelques exemples d'utilisation de ces derniers types :


 


Passer à la section: Premier pas! 

Contact :   Bennis-UM5R  or  Bennis-FSR 

Report abuse
Page details
Page updated
Report abuse