Vous êtes sur la page 1sur 2

Initiation aux méthodes numériques

Licence 3 SPI, Mécanique et Génie Civil

Travaux Pratiques 2

But de la séance de Travaux Pratiques :


 Familiarisation avec Scilab
 Discrétisation du temps et de l'espace, dénition de la discrétisation d'un vecteur
 Utilisation des boucles : for i=... end
 Utilisation du mode graphique, tracé d'un graphe.

1 Utilisation des boucles


1. Ecrire dans un vecteur nommé a, les nombres de 1 à 3 par pas de 0.1.
2. Ecrire dans un vecteur nommé b, les nombres de 3 à 1 par pas de −0.1.
3. Réécrire dans des vecteurs nommés c et d, les mêmes vecteurs que précédemment mais en
utilisant une boucle dans un script : utilisation_boucle.sce.
4. Quelle est la méthode la plus rapide ? Quelle est l'utilité de travailler avec une boucle ?

2 Dénition d'un vecteur


1. Ecrire dans un vecteur a les 10 premiers entiers. Ecrire dans un vecteur b les 100 premiers
entiers et dans un vecteur c les 1000 premiers entiers. Pouvez-vous le faire directement à la
main ou préfériez-vous le faire à l'aide d'une boucle ?
2. Dans un script denition_vecteur.sce 1 , faites ou refaites la question précédente en utilisant une
boucle.
3. Ecrire dans un vecteur d les carrés des 10 premiers entiers. Ecrire dans un vecteur e les carrés
des 100 premiers entiers et dans un vecteur f les carrés des 1000 premiers entiers. Pouvez-vous
le faire directement à la main ou préférez-vous le faire à l'aide d'une boucle ?
4. Toujours dans le script denition_vecteur.sce, faites ou refaites la question précédente en util-
isant une boucle.
5. Dans le vecteur g de dimension n = 20, incrire dans les 10 premières cases la valeur 0 et dans
les dix suivantes la valeur 1.
6. Faire ou refaire la question précédente en utilisant une boucle et un test if dans le script
denition_vecteur.sce.
7. Refaire la question précédente en utilisant une boucle et un test if pour des valeur de n =
50, 100, 360 et ou la coupure se fait au milieu du vecteur, toujours dans le script deni-
tion_vecteur.sce.
8. Ecrire, sans utiliser de boucle, la matice M d'ordre 6 contenant les entiers de 1 à 36, rangés
par ligne.
1. Sous Scilab, exécuter le script 'denition_vecteur.sce ' soit avec /File/File Operations/denition_vecteur.sce
puis exec, soit dans la fenêtre Scilab par exec("denition_vecteur.sce"). Dans le second cas, assurez-vous d'être dans
le dossier où vous avez placé le chier 'denition_vecteur.sce '

1
9. Dans un script appelé denition_matrice.sce, refaites la question précédente en utilisant une
boucle.
10. Toujours dans le script appelé denition_matrice.sce, écrire à l'aide d'une boucle la matrice A
d'ordre n = 4 telle que :  
2 −1 0 0
 −1 2 −1 0 
A=  0 −1 2 −1 

0 0 −1 2
11. Toujours dans le script appelé denition_matrice.sce, écrire à l'aide d'une boucle la matrice B
d'orde n = 20 similaire à la matrice A.

3 Discrétisation de l'espace
Dans cette section du TP, nous allons travailler sur la discrétisation de l'espace et l'utilisation de
la fonction plot2d de Scilab.
1. Sur une feuille quadrillée, tracer la fonction y = sin (x) pour x ∈ [0, 6π]
2. Sous scilab, dans un script nommé trace_sinus.sce 2 , écrire dans le vecteur x les nombres de 0
à 6π par pas de dx = 0.5
3. Si vous n'avez pas fait la question précédente à l'aide d'une boucle, refaite la à l'aide d'une
boucle.
4. Toujours dans le même script, et toujours à l'aide d'une boucle, inscrire dans le vecteur nommé
sinusx les valeurs de sin(x) correspondantes à chaque élément du vecteur x.
5. Toujours dans le même script, tracer le graphe représentant sin(x) pour x ∈ [0, 6π] à l'aide de
la fonction plot2d de Scilab. Mettre un titre au graphique, les noms correspondant aux abscisses
et aux ordonnées.
6. Refaire les mêmes questions que précédemment mais en considérant un dx = 0.1.
7. Idem avec dx = 0.01 et dx = 0.001.
8. Qu'en concluez-vous ? Qui a été le plus rapide, Scilab ou vous à la main ? Qui a fait le graphique
le plus précis, Scilab ou vous à la main ?

2. Sous Scilab, exécuter le script 'trace_sinus.sce' soit avec /File/File Operations/trace_sinus.sce puis exec, soit
dans la fenêtreScilab par exec("trace_sinus.sce"). Dans le second cas, assurez-vous d'être dans le dossier où vous avez
placé le chier 'trace_sinus.sce'.

Vous aimerez peut-être aussi