• Aucun résultat trouvé

Au début du fichier .py, charger les packages numpy et matplotlib.pyplot via la commande

N/A
N/A
Protected

Academic year: 2021

Partager "Au début du fichier .py, charger les packages numpy et matplotlib.pyplot via la commande"

Copied!
2
0
0

Texte intégral

(1)

Université d’Aix-Marseille L3 de Mathématiques

2017-2018 Analyse Numérique

Travaux pratiques sous Python n

o

0

Au début du fichier .py, charger les packages numpy et matplotlib.pyplot via la commande

i m p o r t numpy a s np

i m p o r t m a t p l o t l i b . p y p l o t a s p l t

Les programmes seront enregistrés dans un fichier .py, commentés et les réponses affichées via la commande print.

Initiation à la programmation en Python pour l’analyse numérique

1. Manipulation des vecteurs et des matrices

On peut utiliser Python comme une super-calculatrice qui opère sur les matrices en chargeant le module numpy.

Exercice 1. L’objectif de cet exercice est de comprendre les commandes suivantes. Leur description pourra être donnée sous forme de textes affichés lors de l’exécution via la commande print.

Création de listes

l i s t e 1 = [ 1 , 2 , 3 , 4 , 5 ]

l i s t e 2 = [ [ 1 1 , 12 ] , [ 2 1 , 22 ] ] l i s t e 3 = [’ t o t o ’, 1 , 4 . 0 ]

Définition de vecteurs et matrices

x = np . a r r a y ( [ 1 , 2 , 3 ] ) y = np . a r r a y ( [ [ 4 ] , [ 5 ] , [ 6 ] ] ) z = np . a r r a y ( [ [ 1 , 2 ] , [ 3 , 4 ] )

Matrices et vecteurs particuliers

v1 = np . z e r o s ( 3 ) v2 = np . o n e s ( 2 )

i d e n t i t e 1 = np . e y e ( 5 , 4 ) i d e n t i t e 2 = np . e y e ( 4 , k = −1) i d e n t i t e 3 = np . d i a g ( v2 )

i d e n t i t e 4 = np . d i a g ( v2 , k = −1) z z = np . z e r o s ( ( 2 , 3 ) )

s i z e z = ( np . s i z e ( z , 0 ) , np . s i z e ( z , 1 ) ) z z z = np . z e r o s ( s i z e z )

un = np . o n e s ( ( 2 , 2 ) )

Extraction de coefficients

p r i n t( x [ 0 ] ) p r i n t( x [−1 ] ) p r i n t( z [ 0 , 1 ] ) p r i n t( x [ 1 : 3 ] ) p r i n t( z [ : , 1 ] ) p r i n t( np . d i a g ( z ) )

Opérations d’algèbre linéaire

p r i n t( np . t r a n s p o s e ( z ) ) p r i n t( z . T)

p r i n t( np . l i n a l g . matrix_power ( z , 2 ) ) p r i n t( z+un )

p r i n t( z . d o t ( un ) )

p r i n t( np . l i n a l g . i n v ( z ) )

Operations coefficients par coefficients

p r i n t( z∗z ) p r i n t( 1 / z ) p r i n t( z +1)

Exercice 2. Construire les matrices A et B de taille 4 × 4 telles que

a

ij

=

( 2 si i 6= j

1 si i = j et b

ij

= j.

2. Programmation élémentaire en Python

Il est possible d’utiliser des fichiers pour regrouper des instructions Python. Pour les rédiger, on utilise un éditeur de texte ou un IDE comme Pyzo ou Spyder. Les fichiers peuvent être exécutés directement dans l’IDE ou en ligne de commande dans le terminal.

1

(2)

Exercice 3.

Éxecution de script

Créer le fichier exo3.py contenant les com- mandes d’importations ci-dessus et les instructions suivantes. Executer le et comprendre ce qu’il fait.

n = 5

A = np . z e r o s ( ( n , n ) ) f o r i i n r a n g e( n ) :

A [ i , i ] = i +1 p r i n t("A = ") p r i n t(A)

Utilisation de fonctions

Copier dans exo3.py les instructions suivantes et les éxecuter.

d e f f ( x ) : y = x∗∗3 r e t u r n y

p r i n t( f ( np . a r a n g e ( 4 ) ) )

3. Outils graphiques

De puissants outils graphiques sont fournis avec Python. On en donne ici quelques exemples.

Exercice 4. Comprendre les codes suivants.

Graphique de fonction

p l t . f i g u r e ( 1 ) p l t . c l f ( )

t = np . a r a n g e ( 0 . , 5 . , 0 . 2 )

p l t . p l o t ( t , t , ’ r ’, t , t∗ ∗2 , ’ b s ’, t , t∗ ∗3 ,

’ g ^ ’)

Textes et légendes

p l t . x l a b e l (’ a b s c i s s e s ’) p l t . y l a b e l (’ o r d o n n e e s ’)

p l t . l e g e n d ( [ ’ x ’ , ’ x ^2 ’, ’ x ^3 ’ ] , l o c =2)

Un exemple plus complet

t = np . l i n s p a c e ( 0 , 2∗np . p i , 4 0 0 ) x = np . c o s ( t )

y = np . s i n ( t ) z = np . s i n ( t∗ ∗2 ) p l t . f i g u r e ( 2 ) p l t . c l f ( )

p l t . s u b p l o t ( 3 , 1 , 1 )

p l t . p l o t ( t , z , ’ r−. ’ , lw =3) p l t . x l a b e l (’ t ’)

p l t . y l a b e l (’ s i n ( t ^ 2 ) ’) p l t . s u b p l o t ( 3 , 1 , 2 ) p l t . p l o t ( t , x , ’m ’ ) p l t . p l o t ( t , y ,’ c ’)

p l t . l e g e n d ( [ ’ c o s ’ , ’ s i n ’ ] ) p l t . s u b p l o t ( 3 , 1 , 3 )

p l t . l o g l o g ( x , x∗∗2 , ’+k ’ ) p l t . a x i s ( [ −1 , 1 , −1 , 1 ] ) p l t . s u p t i t l e (’ Gros t i t r e ’)

4. Utilisation de l’aide en ligne

Exercice 5. Trouver les fonctions Python associées aux problèmes suivants et faire un script les utilisant.

Il est plus facile de trouver les fonctions en utilisant les noms anglais.

— Calculer les valeurs propres d’une matrice.

— Donner la matrice de Vandermonde.

— Donner la longueur d’un vecteur.

— Donner la taille d’une matrice.

— Calculer le temps d’execution d’un programme (librairie time).

— Donner une matrice circulante (librairie scipy.linalg)

— Donner une matrice dont les coefficients sont entiers et choisis aléatoirement (librairie numpy.random).

— Donner une matrice dont les coefficients sont décimaux et choisis aléatoirement.

Références

Documents relatifs

On trouvera par exemple la classe (le constructeur) Polynomial pour fabriquer (instancier) des polynômes représentés par le vecteur de leurs coefficients dans la base canonique.

Si vous fermez la fenêtre alors la commande plt.xlabel("ce que vous voulez") se contentera de faire afficher une fenêtre graphique avec axe des abcisses, des or- données

[r]

On décide ensuite de crypter le message par blocs de 2 caractères, en multipliant chaque vecteur v des 2 entiers représentant un bloc par une matrice carrée A de taille 2 modulo

Quelle est la probabilité que le spot considéré soit éteint à 22 heures et 30

La librairie numpy (provient de «numeric» et «Python») propose des tableaux de type ndarray que nous appelerons tableaux «numpy» adaptés au calcul numérique.. Il faut au

Comme aucune de ces fonctions polynomiales n’est nulle, c’est donc une

Ecrire une ´ fonction scilab a=remontee(R, b) qui donne la solution, si elle existe (faire afficher des messages d’erreurs pour les probl` emes de taille, de non inversibilit´ e ou