• Aucun résultat trouvé

Programmation avec Sage

N/A
N/A
Protected

Academic year: 2022

Partager "Programmation avec Sage"

Copied!
8
0
0

Texte intégral

(1)

1. SYNTAXE GÉNÉRALE

1.1. Plusieurs instructions par ligne :.Utiliser un point-virgule :

sage: 1+1; 2+2;

2 4

1.2. Commenter une ligne sans qu’elle soit lue par Sage :.Utiliser le caractère croisillon « # » :

sage: 2*3; 3*4; 4*5 # Trois résultats sont attendus 6

12 20

1.3. Effectuer plusieurs retours à la ligne avant d’exécuter une commande :.

Utiliser le caractère «\» : sage: 123 + \ ....: 345 468

1.4. Supprimer l’affectation d’une variable :.

sage: del x

1.5. Ré-initialiser l’ensemble des variables :.

sage: reset()

1.6. Substituer, Permuter :.Méthode économique : sage: (a, b) = (b, a)

• Exemple :

1

(2)

• Méthode équivalente, standard : Employer une variable auxiliaire dotée d’un autrenom :

sage: auxiliaire = a; a = b; b = auxiliaire

1.7. Tester (comparer) l’égalité entre deux objets :.Utiliser le signe égal double

«==»

sage: 2+2 == 2^2, 3*3 = 3^3 (True, False)

1.8. Affecter une valeur à une variable :.Utiliser le signe égal simple «=»

sage: y = 3; y = 3*y + 1; y = 3*y + 1; y 31

• Explication : La partie à droite du symbole «=» est d’abord évaluée, puis sa va- leur est mémorisée dans la variable dont le nom est à gauche.

1.9. Tableau de syntaxe générale :.

1.10. Caractères spéciaux :.

(3)

1.11. Deux symboles équivalents pour écrire « différent » :.

2 ! = 1 et 2 <> 1.

1.12. Parenthèses :.

• Nécessaires pour évaluer une fonction : sage: cos(pi)

• Nécessaire pour oublier : sage: forget()

• Nécessaire pour ré-initialiser l’ensemble des variables : sage: reset()

• Facultatif pour la commande print :

sage: print(25) 25

sage: print 32 32

2. ALGORITHMIQUE ETINDENTATION

2.1. Programmation :.La programmation structurée écrit des programme infor- matiques, qui consistent en une collection finie d’instructionseffectuées les unes à la suite des autres.

Ces instructions peuvent êtreélémentairesoucomposées.

(4)

peuvent elles-mêmes être simples ou composées.

2.2. Indentation :.Avec Sage, il importe au plus haut point destructurer rigou- reusement l’indentation1, parce qu’elle possède unesignification pour la ma- chine, comme cela se voit dans lesboucles.

3. BOUCLES

3.1. Boucles d’énumération..

• Illustration de l’importance de l’indentation par deux exemples :

• Les calculs correspondants diffèrent : S = 2 0 + 1 + 2 + 3

= 12 S = 2 (3 + 2 (2 + 2 (0 + 1))) = 22.

3.2. Importance cruciale des « : ».Les deux points « : » à la fin de la première ligne qui introduit un bloc d’instructions annoncent le bloc, et sont d’une importance cruciale pour le langage de Sage.

3.3. Boucles « tant que ».. Voici un exemple très typique de l’utilisation de la boucle « tant que » :

sage: x = 10^4; u = 1; n = 0 sage: while u <= x:

n = n+1 u = 2*u sage: n

1. En informatique, l’indentationdésigne la disposition particulière du texte d’un programme faisant apparaître des décalages de la marge dans l’écriture des divers blocs, les diverses lon- gueurs étant rigoureusement les mêmes pour chaque bloc.

(5)

Sn = 1 + 2 + 3 +· · ·+n tant que l’exponentielle den:

en < 106

reste inférieure à un million, ce qui s’arrête àn = 13, puisque : e13≈442 413 < 106 < e14 ≈ 1 202 604, et donc on doit obtenir :

12+ 22+· · ·+ 132 = 13(13 + 1) 2

= 819

3.4. Boucles « for » et suites..Encore un autre exemple, concernant l’itération de la suite défine paru0 := 1et :

un+1 = 1 1 +u2n.

3.5. Approche numérique et approche formelle..Soit à calculer : Sn =

n

X

k=1

(2k) (2k+ 1)

= 2·3 + 4·5 +· · ·+ (2n)·(2n+ 1),

ce qui peut aussi se formuler sous forme d’une suite, en partant deS0 = 0: Sn = Sn−1+ (2n)·(2n+ 1).

Une première approche consiste à calculer ces sommes itérativement pour une valeur fixée concrète de l’entiern:

(6)

• Mais si l’on souhaite une expression close valable pout tout entiern, il faut pro- céder différemment :

4. TESTS

4.1. Structure générale :.

4.2. Exemple :.

À ce jour, on ignore si, pour tout choix deu0 ∈ N, la suite converge toujours vers le cycle :

17−→27−→47−→17−→ · · · ,

mais les ordinateurs sont suffisamment simplets pour tester la conjecture en par- tant de n’importe quelu0fini concret, par exemple en partant deu0 = 6.

sage: u = 6; n = 0

sage: while u != 1: # test "différent de", symbole alternatif: <>

....: if u % 2 == 0 # reste de la division euclidienne ....: u = u//2 # quotient de la division euclidienne

....: else:

....: u = 3*u+1

(7)

4.3. Utilisation d’un « print-espion » :.

sage: u = 6; n = 0 sage: while u != 1:

....: if u % 2 == 0

....: u = u//2

....: else:

....: u = 3*u+1

....: n = n+1 ....: print u, n sage: n

8

4.4. Imbrication des boucles « if . . .else . . .if . . .else » :.

5. PROCÉDURES ET FONCTIONS

(8)

sage: fonction(a,2*a) 5*a^2

RÉFÉRENCES

[1] Casamayou, A. ; Cohen, N. ; Connan, G. ; Dumont, T. ; Fousse, L. ; Maltey, F. ; Meulien, M. ; Mezzarobba, M. ; Pernet, C. ; Thiéry, N. ; Zimmermann, P. :Calcul mathématique avec Sage, Creative Commons, 2014, xii+460 pp.

Références

Documents relatifs

La commande roots permet d’obte- nir les solutions exactes d’une équation avec multiplicité, dans un corps

A utili ty program is available under your operating system to further configure the software for your terminal. Failing to do this may be very confusing

10. Une automobile effectue une manœuvre qui l’oblige à modifier la vitesse de sa voiture. Le graphique ci-dessous représente la vitesse de la voiture en fonction du temps. a)

Outil de planifi cation et de déclinaison du Schéma Directeur d’Aménagement et de Gestion des Eaux (SDAGE), défi ni au niveau d’un grand district hydrogra-

Les informations libres et les champs statistiques définis sur les fiche Tiers Gestion Commerciale sont répliqués vers les fiches Tiers et Sociétés Sage 100cloud

I Un ensemble d’interfaces : Atlas, GAP, GMP, Linbox, Maxima, MPFR, PARI/GP, NetworkX, NTL, Numpy/Scipy, Singular, Symmetrica, .... I Une Communaut´ e de

• Elle peut aussi vous accompagner après la naissance de bébé en se rendant chez vous pour vous conseiller sur les soins de puériculture (bain, change et soins

Au cas où votre caisse de compensation paye plus que les cotisations légalement dues, vous pouvez adapter les montants dans le menu Données de base, Salaire, Tableau CAF... 1.11