• Aucun résultat trouvé

1 Présentation de Cocalc

N/A
N/A
Protected

Academic year: 2022

Partager "1 Présentation de Cocalc"

Copied!
7
0
0

Texte intégral

(1)

Universit´e de Paris 7

TP01 D´ ecouverte logiciel

agreg 2021 (F.Han1) Minimum `a retenir/r´eviser avant l’´epreuve, et donc `a archiver cette annn´ee :

1) Etre habitu´e `a utiliser l’aide.

2) op´erations classiques en mode exact, approch´e, alg`ebre lin´eaire, calcul modulaire et polynomial.

Notamment, pgcd, couples de Bezout, produit de matrices, noyau (y compris pour un ´el´ement de Mn(Z/ /pZ/ ),

3) Quelques instructions de programmation : boucles for, while , faire une liste automatiquement, cr´eer une fonction, cr´eer une fonction `a partir d’une Expression.

4) Quelques instructions graphique de base et surtout savoir obtenir ces fonctions et leurs options via l’aide. Ex fonctions (param´etriques, implicites, statistiques ; ex histogrammes) et g´eom´etrie (points, droites...) et options d’affichage via le menu d´eroulant.

1 Pr´ esentation de Cocalc

Le serveur d’origine2 offre un peu plus de logiciels et isole mieux les participants pour l’usage de la RAM et des CPU. Ils proposent des comptes gratuits avec 1CPU et 1Go de RAM. Ensemble nous allons essayer d’utiliser le serveur de l’UFR de math3, mais il faudra ˆetre vigilant sur les ressources utilis´ees car elles sont `a partager avec les autres enseignements. Merci aussi de ne pas diffuser le lien ci dessous hors de notre groupe.

— Le serveur de l’UFR https://cocalc.math.univ-paris-diderot.fr

— Lorsque c’est fait mettez votre nom/prenom dans le chat BBB pour que je puisse vous ajouter `a mon projet sur cocalc.

— Ne cr´eez pas de projets, attendez d’ˆetre associ´es au mien.

D`es que vous cr´eez un nouveau fichier via le menu il devient actif et consommera de la RAM.

— 1 fichier vide .py + un shell pour l’executer : 15Mo

— 1 fichier jupyter : 80Mo. (NB : utiliser le bouton HALT, car fermer l’onglet ne suffit pas `a lib´erer la m´emoire)

— 1 fichier jupyter avec sagemath vide c’est dej`a 225Mo. (NB : utiliser le bouton HALT, car fermer l’onglet ne suffit pas `a lib´erer la m´emoire)

— 1 projet rajoute 150Mo. 1 cours (cf. ”Manage a Course”) oblige `a cr´eer 1 projet par ´etudiants donc cela rajoute n*140Mo. En revanche ils ont leurs fichiers isol´es les uns des autres contrairement `a nous.

1. http://webusers.imj-prg/frederic.han/agreg 2. https://cocalc.com

3. o`u nous avons pu installer la version open source dans l’urgence

1

(2)

2 Pr´ esentation Sage

2.1 Sage

— Une multitude de types, il faut d´eclarer chaque variable, cr´eer les anneaux dans lesquels on souhaite travailler et savoir r´eguli`erement changer d’anneaux. Le symbolic ring SR a une philosophie similaire `a celle d’Xcas, mais il ne suffira pas sous sage. (PolynomialRing . . .)

— Idem pour les Listes : beaucoup de types diff´erents : t-uples, listes, vecteurs, matrices. . .. Les niveaux de parenth`eses et de crochets comptent. Pour les applatir on utilise flatten

Exemple : Un calcul nous am`ene `a une variable F contenant (x^4-4)/(x-sqrt(2)). Nous savons que F est en fait un polynˆome enx et souhaitons calculer son pgcd avec par exemple x^2-2.

(3)

3 Calcul symbolique, calcul approch´ e

(NB : Il y a aussi des Tutoriels disponibles)

3.1 D´ ecouverte du logiciel

Exercice I:

1) a) Comment obtenir de l’aide sur un mot donn´e que l’on connait `a peu pr`es (par exemple sqrt) on fait : ?sqrt (dans sage on peut aussi faire sqrt ?). Par exemple, comment obtenir une valeur approch´ee de

2 avec 50 chiffres significatifs ?

b) Donner une valeur approch´ee de z `a la pr´ecision par d´efaut. (Soit en for¸cant le logiciel a ˆetre en flottants (Ex 1.)

c) Trouver la syntaxe des constantes r´eelles ou complexes π, e,i (o`ui2 =−1).

d)a=1111;. Comment lib´erer la variablea? 2) Rangez la matrice 1 2 3

4 5 6

!

dans la variable M1. Calculez le produit deM1 avec sa transpos´ee, calculez le noyau de M1. Rangez le vecteur (1,2,2) dans la variable v1 et calculez M1*v1 et le produit scalaire de v1 avec lui mˆeme.

3.2 Symboles, fonctions, programmes

Dans vos logiciels de calculs formel, il ne faut pas confondre les symboles, les fonctions, et mˆeme les petits programmes que l’on fait. Un progamme du type :

def f(x):

if(x<0):

return 0 else:

return x

ne pourra pas ˆetre utilis´e pour d´eriver f formellement.

Il faut maintenant maitriser la diff´erence entre fonctions et symboles, car certaines instructions attendent des symboles et d’autres des fonctions.

Exercice II:

1) Par exemple on d´efinit le symbole (ou Expression) P=x/(x^2+1)et la fonction Q(x)=sin(1/x) 2) Etudiez les types de P Q Q(x) Q(5) Q(6/pi). D’une mani`ere g´en´erale, il vaut mieux effectuer les calculs compliqu´es avec des symboles plutot qu’avec des fonctions. Les r´esultats seront le plus souvent bien plus lisibles et rapides.

3) Calculer les d´eriv´ees de P et Q.

4) Comment obtenir `a partir du symbole P d´efini ci dessus, la fonction x7→ x

x2+ 1? En d´eduire la d´eriv´ee de sin(1/x)

(sin(1/x))2+ 1

3

(4)

Exercice III: Calculs et premier dessin

1) Exprimer cos 5a en fonction de cosa (o`ua est une variable formelle).

2) Calculer

Z π

2

0

1

2 + sin(5x)dx. Dans quels cas de fractions trigonom´etriques pensez vous que votre logiciel ne puisse pas vous donner la r´eponse ?

3) Calculez

Z 1

2 + sin(5x). Affichez un dessin de la r´eponse pour v´erifier la continuit´e.

Exercice IV: Matrices et fonctions

Le moyen le plus pratique pour cr´eer des matrices automatiquement est d’utiliser la fonctionmatrix qui prend comme arguments ses dimension et une fonction de deux variables qui sera appliqu´ee pour cr´eer les coefficients. Exemple :

(sage)

d e f c ( u , v ) :

r e t u r n u/(1+v ) A1=m a t r i x ( 5 , 5 , c )

Astuce : en python on peut aussi cr´eer une fonction sans nom lorsqu’elle est courte avec lambda (sage)

A2=m a t r i x ( 5 , 5 , lambda u , v : u/(1+v )

1) Que se passe t’il si l’on essaie d’utiliser la fonction symbolique d(u,v)=u/(1+v) pour cr´eer les matrices pr´ec´edentes ?

2) Affectez `a n la valeur 5, cr´eez un anneau R de polynomes `a coefficients entiers en n variables z1,...,zn et cr´eez la matrice de Vandermonde n×n associ´ee aux variables pr´ec´edentes.

(5)

3.3 Petit programme

Exercice V: listes, modulaires

Dans xcas et sage, on peut cr´eer des listes automatiquement avec une syntaxe type python suivante : [ 1/k for k in range(1,11) ]

1) Cr´eez une liste L1 des ´el´ements non nuls de Z/ /17Z/ . 2) Cr´eez la liste des inverse des ´el´ements deL1

3) En cr´eant un ensemble, donnez la liste des ´el´ements du groupe engendr´e par 2 dans (Z/ /17Z/ )×. Exercice VI: Illustration Newton

Dans cet exercice nous allons illustrer ce que repr´esente une convergence quadratique : ie ce que repr´esente une majoration du type :

|l−un+1| ≤C.|l−un|2

On rencontre par exemple ce genre de majoration dans la m´ethode de Newton pour trouver un z´ero non multiple d’une fonctionf assez r´eguli`ere.

Nous allons ici prendre f :x7→x2−2 et trouver une valeur approch´ee de √ 2.

1) Comparez `a la main la m´ethode de Newton xn+1 = xn− f(xn)

f0(xn) avec celle de Heron qui calcule

d en d´efinissant un+1 comme la moyenne de un et d un.

2) Soit N un entier, exprimer son nombre de chiffres dans son ecriture en base 10 avec des fonctions math´ematiques. Et en base 2 ?

3) On consid`ere la suite r´ecurrente :

xn+1 = xn 2 + 1

xn, x0 = 2

Cr´eez une fonction newt(n,d) qui calcule de mani`ere it´erative xn avec d chiffres significatifs.

4

! On prendra soin de faire tous les calculs en valeur approch´ee avec d chiffres significatifs. Evitez de modifier la variable Digits car il faut bien comprendre sa port´ee, et pr´eferez une fonction qui convertisse un entier en un flottant de pr´ecision d.

4) Pour 0≤n ≤12 donnez la valeur exacte de

E(log10(|xn−√ 2|))

et expliquez grˆace `a cette illustration la notion de convergence quadratique en language commun.

5

(6)

3.4 D´ evelopper/factoriser

Exercice VII: (D´enombrement)

1) Trouver le coefficient de a3b2cd2 dans (a +b+c+d)8. V´erifier votre r´eponse avec la r´eponse th´eorique.

3.5 Anneaux usuels, et extentions

Z/ , Q, Z/ /nZ/ , IFp, IFpn, C, Q[x]/(1 +x+x4)

Exercice VIII:

1) Factoriser x12−1 dans Z/ [x]. En observant les factorisations de polynˆomes judicieusement choisis, devinez la valeur du polynˆome cyclotomique Φ12?

2) Factorisez P = (2x+ 1)2(x5−1)/(x−1) dans IR[x] et dans C[x]. Peut t’on esp´erer un r´esultat exact ?

a) Factoriser X12−1 sur Q[√

3] et sur Q[√

3, i] et sur Q[e2iπ/9].

(7)

3.6 Dessins, calcul formel

Exercice IX: (cf Ecrit 2007)

On acc`edera aux fonctions graphiques facilement via le menu d´eroulant.

1) Cr´eer une fonction : M :t7→(cost sin3t, sint

sin3t) 2) a) En mode g´eom´etrie, dessiner le point M(π/2)

b) D´essiner la courbeC1 :t7→M(t). (Cf menu d´eroulant pour trouver l’instruction)

c) En utilisant la commandeassume(t1=[0.7,0,Pi]);en g´eom´etrie int´eractive4, utilisez le bouton apparu `a droite pour expliquez ce qu’est une courbe param´etr´ee en affichant le pointpoint(M(t1)). Sous Xcas, on peut ins´erer desattributs graphiques via le menu d´eroulant.

d) Ajoutez aussi l’´el´ement t2 de ]0..π[ et dessiner M(t1), M(t2), M(−t1 −t2). Afficher ces points avec une grosse croix en taille un peu plus grande.

e) Dessiner la droite M(t1), M(t2) en bleu. Que conjecturez vous ? 3) D´emontrez votre conjecture par un calcul formel.

4) a) Exprimez les coordonn´ees de M(t) en fonction de u = tan(t/2). On pourra utiliser une instruction logicielle pour passer en tan(t/2) puis subtituer les tan(t/2) par des u ou trouver une m´ethode directe. Stockez les dansxu et yu.

b) On consid`ere l’´equation (un des buts de l’option C sera de bien comprendre ce que font ces commandes) :

mystere=(x*xu.denominator()-xu.numerator()).resultant(y*yu.denominator()-yu.numerator(),u) Dessinez la.

c) D´emontrez que M(t) appartient `a cette courbe.

4. Sous sage on peut regarderinteract

7

Références

Documents relatifs

Ce théorème rappelle le théorème des bornes pour des fonctions de R dans R : &#34;Toute fonction d’une variable continue sur un segment est bornée et atteint ses bornes&#34;..

En pr´ eciser la nature et la

Reprenez le programme fait ` a l’exercice pr´ ec´ edent permettant de tracer les lignes de niveaux entre −3 et 3 de f.. Extrema

(2) Dans le fichier index.php, pour chaque film de la base, cr´ eer un lien vers fiche.php en envoyant un param` etre par la m´ ethode Get ou Post.. (3) R´ ecup´ erer l’id dans

— arrange(xmin,xmax,pas) ( array range ) : cr´ ee un array dont le premier ´ el´ ement est xmin et dont chaque ´ el´ ement est distant de pas, le dernier ´ etant strictement

On retiendra l’idée qu’un ouvert est une partie D qui ne contient pas son bord (si c’était le cas, toute boule centrée sur un point du bord déborderait en dehors de D). Les

Cr´ eer une fonction moyenne de deux arguments u et v qui renvoie une valeur approch´ ee ` a 10 −10 pr` es par d´ efaut de cette limite5. Tracer la courbe

Comme d’habitude, une somme de fonctions continues est continue ; un quotient de fonctions continues dont le dénominateur ne s’annule pas est continue ; une composée de