les énoncés des TP en maths/info

publicité
TP1 Initiation à Scilab (2)
Le calcul matriciel
Exercice 1 – Quelques rappels de L1 : Création de matrices - L’opérateur « : » - Les
commandes size, length, zeros, ones, eye
-
Affecter à A, b et c les matrices suivantes
-
Faire afficher l’élément A22 ainsi que les éléments b1 et c2.
Mettre dans la variable B la 2ème ligne de A et dans C la 3ème colonne de A.
Extraire de A la sous matrice D correspondante aux deux dernières colonnes.
À partir de A, b et c définir les matrices
-
Faire afficher les dimensions de A, b et c.
Créer des matrices 5!6 de zéros, puis de 1 ainsi que la matrice identité de dimensions 3!3.
Créer les vecteurs lignes x, y, z, t contenant, respectivement :
les nombres « entiers » compris entre 0 et 10,
les nombres pairs compris entre 0 et 10,
les nombres compris entre 0 et 1 par pas de 0.1,
les nombres compris entre 70 et 100 par pas de 10 rangés par ordre décroissant.
Exercice 2 - Addition, multiplication, transposition
On utilise les matrices de l’exercice 1. Calculer
- la matrice E + I où I est la matrice identité 3 ! 3,
- la matrice transposée de A,
- la partie symétrique et la partie antisymétrique de E,
- la matrice produit H = A ! E, le vecteur produit v = A ! d,
Que donnent les instructions : d*d’ et d’*d ? Comparer avec norm(d)^2. Pourquoi les
instructions d*d ou E*F génèrent-elles une erreur ?
Exercice 3 - Matrice inverse – Résolution de système linéaire (commandes inv, min,
max, sum et opérateur « \ » )
On considère le système linéaire
On note A la matrice du système et X le vecteur solution. Calculer le déterminant de A puis sa
trace.
Calculer la matrice B = A-1 inverse de A. Vérifier que AB = BA = I.
Résoudre ce système linéaire par au moins deux façons différentes.
LSTE – Semestre 3
Outils Mathématiques
TP1
Faire afficher le plus grand et le plus petit élément de A puis la somme des coefficients de B.
Exercice 4 – Éléments propres d’une matrice (commande spec)
1) Vérifier que le vecteur
!
$
u=# 1 &
" 1 %
est un vecteur propre de la matrice
"
%
M = $ 0 2 '.
# 3 !1 &
Quelle est la valeur propre associée ?
2) On donne
! 5 0 3 $
A = ## 0 4 0 && .
#" 3 0 5 &%
a) Pourquoi est-on sûr que toutes les valeurs propres sont réelles ? Quelle particularité
ont les vecteurs propres de A ?
b) Faire calculer les valeurs propres et les vecteurs propres. Ranger les vecteurs propres
dans trois tableaux u, v et w. Vérifier les réponses aux questions précédentes.
Rappels sur les graphiques
Exercice 5 – Nuage de points et graphe d’une fonction (commande plot)
Représenter sur l’intervalle [-2, 2] le graphe de la fonction f (x) = x en trait continue rouge, puis
en bleu, celui des fonctions f! (x) = x 2 + ! 2 pour différentes valeurs de ! (on pourra prendre
! = 1, ! =0.5 et ! = 0.1). Représenter sous forme d’un nuage de points le graphe de f0 (x) .
Exercice 6 – Déformation par cisaillement
a) Représenter en bleu le carré R [0,10] ! [0,10] et le cercle C de centre (5,5) et de rayon 3.
On définira pour cela dans des tableaux Xr, Yr puis Xc, Yc, les abscisses et les ordonnées
de quelques points sur chacune de ces figures. Faire tracer aussi les diagonales de R. Pour
avoir une vue à l’échelle utiliser la commande isoview.
On suppose que le carré est l’image d’un corps matériel sur lequel on a tracé à la craie le cercle C.
On fait subir à ce corps une déformation qui consiste à mouvoir parallèlement à l’axe x tout point
(X,Y) de C selon un déplacement donné par
! Y / 2$
!
u(X ,Y ) = #
&.
" 0 %
Un point quelconque, initialement en (X,Y), se retrouve donc déplacé à la position (x,y) avec
x=X+Y/2 et y=Y.
b) Représenter en rouge les nouvelles images du carré R, de ses diagonales et du cercle C.
On calculera pour cela les nouvelles positions xr, yr et xc, yc. En quoi est transformé C ?
!
c) Calculer le gradient de la fonction vectorielle u.
d) On appelle tenseur de déformation, la partie symétrique de ce gradient. Faire calculer
les valeurs propres et les vecteurs propres de la déformation.
LSTE – Semestre 3
Outils Mathématiques
TP1
TP2 Initiation à Scilab (2)
Rappels de programmation
On traitera chacun des exercices dans un fichier différent (ex. TD3_ex1a.sce).
Exercice 1 : Les boucles (instruction for)
a) On donne le tableau
Tab =
(
1, 3, 5, 7, 9, 11, 13, 15, 17, 19
)
Utiliser une boucle pour faire afficher, l’un après l’autre, les éléments de Tab.
À l’aide de la même boucle faire calculer le tableau Tab2 dont les éléments sont Tab(i)+1
b) Calculer les 30 premiers termes de la suite de Fibonacci définie par
Faire afficher k, tk, tk / tk-1 pour k = 1, 2,.., 30.
Exercice 2 : Les tests (instructions if-else-end)
a) Conjecture hongroise : soit la suite de nombres entiers engendrée comme suit
(k=2, 3,…)
où N est un entier donné. Vérifier que cette suite finit toujours par cycler sur le triplet 4, 2, 1,
quelle que soit la valeur de N.
Remarque : pour reconnaitre si un nombre est pair, on peut utiliser la fonction modulo(x,y) qui calcule le reste de la
division de x par y.
b) Arrêt suivant un test : reprendre l’exercice 1b en arrêtant les calculs si la valeur du rapport
tk / tk-1 est à moins de 10-6 près du nombre (1+ 5)/2 (pour arrêter l’exécution d’une boucle il
suffit d’utiliser l’instruction break).
Exercice 3 : L’instruction while
Même exercice que le 2b mais supprimer la boucle for et le test if et utiliser une instruction
while.
Exercice 4 : Les fonctions – Programmation du produit matriciel
Écrire une fonction qui calcule à l’aide d’une boucle for le produit matriciel de deux matrices.
Cette fonction prendra comme arguments d’entrée, deux matrices, A et B, et comme argument de
sortie la matrice produit C = AB. Elle affichera un message d’erreur dans le cas où les matrices
A et B sont incompatibles pour la multiplication.
LSTE – semestre 3
Outils Mathématiques
TP2
Exercice 5 : Les fonctions – Programmation de la méthode des trapèzes
Considérons la méthode des trapèzes (approximations numérique d’une intégrale) à n points :
où les xi sont n points de [a,b] régulièrement espacés de h = (b – a)/(n - 1) avec x1 = a et xn = b.
Écrire une fonction (TD2_ex12) qui réalise ce calcul pour toute fonction f. Cette fonction devra
prendre comme arguments d’entrée : les bornes a et b, le nombre n de points et le nom de la
fonction f et bien sûr elle renvoiera l’approximation de I. Attention : prévoir le cas a = b !
Tester cette fonction avec les résultats suivants :
Utiliser cette fonction pour calculer la fonction erreur
erf(x) =
2
!
x
2
"t
# e dt
0
entre 0 et 3 par pas de 0.05 (utiliser une boucle). Placer le résultat dans un tableau E1. Faire la
même chose à partir de la fonction erf de Scilab en mettant le résultat dans un tableau E2.
Comparer les résultats en calculant les différences absolues et relatives exprimées en %.
LSTE – semestre 3
Outils Mathématiques
TP2
TP3 Initiation à Scilab (2)
Simulation du rebond d’une balle
But : il s’agit de simuler le mouvement d’une balle pesante lancée dans un domaine compris entre
quatre murs sur lesquels elle peut rebondir.
1) Description du problème physique
Soit une balle indéformable, dont le mouvement est
assimilé à celui de son centre de gravité, contrainte à
rester dans le domaine compris entre les droites
d’équation x1=0 (« mur gauche »), x1=L (« mur droit »),
x2=0 (« sol ») et x2=H (« plafond »).
!
On notera m sa masse, v = (v1, v2) son vecteur vitesse,
!
!
x = (x1, x2) son vecteur position, g = (g1, g2) le vecteur
accélération de la pesanteur.
a) Équation du mouvement en l’absence de choc
En l’absence de résistance de l’air et de choc avec les murs, la relation fondamentale de la
dynamique s’écrit
!
!
dv
m (t) = mg
(1)
dt
ce qui donne simplement
! !
!
v(t) = (t ! t0 ) g + v0
(2)
!
où v0 = (v01 ,v02 ) est sa vitesse à l’instant initial t0.
!
!
!
Sa position x(t) à l’instant t est définie par l’équation différentielle dx dt = v , ce qui donne
!
où x0 = (x01 , x02 ) est sa position à t0.
!
!
1
! !
x(t) = (t ! t0 )2 g + (t ! t0 ) v0 + x0
2
(3)
b) Modification de la trajectoire lors d’un choc
Supposons qu’à l’instant t1 la balle percute l’un des murs. Sa vitesse juste avant le choc est
! !
!
!
v1 = v(t1 ) donnée par l’équation (2) et sa position est x1 = x(t1 ) donnée par (3). Si le choc est
parfaitement élastique, elle repart juste après le choc, avec une vitesse de même norme mais
dans une direction définie par une réflexion selon l’un des schémas ci-dessous
LSTE – Semestre 3
Outils Mathématiques
TP3
On modélisera un choc inélastique en multipliant la composante normale de la vitesse après le
choc par un coefficient positif r inférieur à 1 (dit coefficient de restitution). Pour r = 1, le choc est
parfaitement élastique. Pour r = 0, le choc est complètement absorbé (choc « mou »).
Dans tous les cas, la vitesse après le choc peut donc être écrite
!
!
v = R v1
(4)
où R est une matrice de réflexion qui est ( r ![0,1] ) :
•
"
%
sur un mur horizontal : R = R v = $ 1 0 ' ,
# 0 !r &
•
"
%
sur un mur vertical : R = R h = $ !r 0 ' .
# 0 1 &
c) Équation du mouvement après un choc
Après le choc, le mouvement est donné par les mêmes équations (2) et (3) mais où
!t0 = t1 ,
#!
!
"v0 = v1 ,
# x! = x! .
1
$ 0
(5)
On repart donc avec de nouvelles conditions initiales jusqu’au prochain choc.
d) Détection d’un choc
Les murs étant horizontaux et verticaux, il est facile de détecter l’instant d’un choc. En désignant
par a le rayon de la balle, le choc a lieu contre
•
le sol quand x2 (t) = a et v2 (t) < 0 (la balle se dirige vers le bas),
•
le mur droit quand x1 (t) = L ! a et v1 (t) > 0 (la balle se dirige vers la droite),
•
le plafond quand x2 (t) = H ! a et v2 (t) > 0 (la balle se dirige vers le haut),
•
le mur gauche quand x1 (t) = a et v1 (t) < 0 (la balle se dirige vers la gauche).
2) Description du programme à écrire et consignes à respecter
On fixera les données physiques du modèle comme suit :
•
•
•
•
•
•
•
•
dimensions du domaine : L = 10 m, H = 5 m,
rayon de la balle : a = 0.1 m,
durée de l’étude : T = 36 s,
!
vecteur accélération de la pesanteur : g = (0, !10) m/s2 (amusez-vous à le changer),
!
position initiale : x0 = (1, 4) m,
!
vitesse initiale : v0 = (5, 5) m/s (amusez-vous à la changer),
instant initial : t0=0 s,
coefficient de restitution : 0 ! r ! 1.
Le seul paramètre numérique à fixer est l’échantillonnage temporel, c’est-à-dire, le nombre N de
pas de temps utilisés (et donc la longueur "t du pas de temps) pour calculer la vitesse et la
position de la balle. On prendra
N = 2001 (soit "t =T/(N-1) = 36/2000 s).
LSTE – Semestre 3
Outils Mathématiques
TP3
Algorithme
Saisie des données physiques du problème
Définition des matrices de réflexion Rh et Rv
Saisie du nombre de pas de temps N et calcul du pas dt
Boucle sur les pas de temps : faire pour i = 2 à N
Calcul du temps t au pas n° i : t = (i-1) ! dt
!
Calcul par (2) du vecteur vitesse v au temps t
!
Calcul par (3) du vecteur position x au temps t
Si collision avec l’un des murs (4 test à faire, voir remarque 1 ci-dessous) :
Modifier la vitesse par (4)
!
!
Modifier t0, v0 et x0
Fin si
Enregistrer les vitesses et les positions successives dans des tableaux V et X
Fin boucle
Représentation graphique sous la forme d’une animation
Remarque 1 : étant donné que le pas de temps est de longueur finie (dt), on ne pourra pas tester la collision de la balle
avec l’un des murs par une simple égalité. En effet, imaginons que la balle s’approche du sol (v2 < 0) et qu’au temps t elle
soit légèrement au dessus du sol (x2 > a). À l’instant suivant (t+dt), sa position prédite par (3) peut la mener sous le sol
(x2 < a). On n’aura en effet jamais (sauf fortuitement) x2 = a. Pour éviter cela, il faut remplacer l’égalité par une
inégalité. Le test pour la collision avec le sol s’écrira : « si x2 < a et v2 < 0 » au lieu de « si x2 = a et v2 < 0 ». Écrire de la
même façon les tests pour les trois autres murs.
Remarque 2 : pour enregistrer les vitesses et positions successives dans des tableaux V et X, on procédera comme suit :
avant la boucle, V=[v0] et X = [x0] (conditions initiales) puis durant la boucle, V = [V,v] et X = [X,x], en supposant que
v0, x0, v et x soient des tableaux à 2 lignes et 1 colonne.
Remarque 3 : pour le dessin de notre balle, on pourra simplement la représenter sous forme d’un rond d’une certaine
épaisseur et rempli par une couleur. Par exemple, au point de coordonnées x,y, la commande plot suivante donne un rond
rouge :
plot(x,y, 'o',' MarkerSize',10, 'MarkerFaceColor','r')
LSTE – Semestre 3
Outils Mathématiques
TP3
Téléchargement