• Aucun résultat trouvé

4 Produit vectoriel

N/A
N/A
Protected

Academic year: 2022

Partager "4 Produit vectoriel"

Copied!
2
0
0

Texte intégral

(1)

Lyc´ee Benjamin Franklin PTSI−2013-2014

L. Grillet, D. Blotti`ere Informatique

TP n˚4 Fonctions

1 Pr´ esentation de la notion de fonction en Python

La notion de fonction permet d’isoler une instruction qui revient plusieurs fois dans un programme. Une fonction est d´efinie par :

• son nom ;

• ses arguments qui porteront les valeurs communiqu´ees par le programme lors de l’appel de la fonction ;

• ´eventuellement une valeur de retour communiqu´ee au programme par la fonction `a la fin de son ex´ecution.

Ci-dessous, on donne un exemple de programme dans lequel figure une fonction.

• Son nom estdistance.

• Ses arguments sont deux uplets de r´eels Pet Q`a deux composantes, qui repr´esentent les coordonn´ees de deux points du plan (un rep`ere orthonorm´e du plan ´etant fix´e).

• Elle retourne la distance entre les points de coordonn´eesPetQ(l’unit´e ´etant la longueur d’un des vecteurs de la base du rep`ere orthonorm´e).

Ce programme affiche les longueurs des cˆot´es du triangle dont les sommets ont pour coordonn´ees (−12,0), (12,0) et (0,23). Comme on a trois longueurs `a calculer, l’introduction d’une fonction est pertinente ; cela ´evite de r´ep´eter les mˆemes instructions plusieurs fois.

Programme 1 1. import math

2.

3. def distance(P,Q):

4. l=math.sqrt((P[0]-Q[0])**2+(P[1]-Q[1])**2) 5. return(l)

6.

7. A=(0.5,0) 8. B=(-0.5,0)

9. C=(0,math.sqrt(3)/2) 10.

11. l1=distance(A,B) 12. l2=distance(B,C) 13. l3=distance(A,C) 14.

15. print("Les longueurs des c^ot´es de ABC sont:%s, %s et %s.")%(l1,l2,l3)

Exercice 1

1. Saisir le programme 1, l’ex´ecuter et le commenter ligne `a ligne.

2. Remplacer la ligne 7. par la ligne suivante.

7. A=(1/2,0)

Ex´ecuter et commenter le r´esultat.

1

(2)

2 Probl` emes d’arrondis

Exercice 2 :On souhaite modifier le programme 1 de fa¸con `a ce que soit affich´e un message `a l’´ecran indiquant si le triangle ayant pour sommets les points de coordonn´ees (−12,0), (12,0) et (0,23) est ´equilat´eral.

1. Avant de modifier le programme 1, d´eterminerde mani`ere th´eorique(sans Python donc) si le triangle en question est ´equilat´eral ou non.

2. Essayer `a pr´esent de modifier le programme 1de fa¸con na¨ıve pour r´esoudre le probl`eme pos´e. Cette approche fonctionne-t-elle ?

3. Ajouter au programme 1 les lignes de commande ci-dessous pour comprendre quel probl`eme se pose.

16.

17. print abs(l1-l2) 18. print abs(l2-l3) 19. print abs(l1-l3)

Attention :Il n’est pas possible de savoir de fa¸con certaine si le r´esultat d’un calcul effectu´e avec Python est

´egal `a sa valeur th´eorique. Un test du type

a==b

avec des nombres `a virgule flottanteaet bn’a pas de sens ! On le remplacera par : abs(a-b)<epsilon

o`uepsilonsera une valeurproche de z´ero `a choisir en fonction du contexte.

3 Multiplication de deux nombres complexes

Exercice 3 :Ecrire une fonction v´erifiant les propri´et´es suivantes.´

• Son nom estmultcomplexe.

• Ses arguments sont deux uplets de r´eelsz1etz2`a deux composantes.

• Elle retourne un uplet `a deux composantes dont la premi`ere (resp. la deuxi`eme) est la partie r´eelle (resp.

la partie imaginaire) du nombre complexe

(z1[0]+iz1[1])(z2[0]+iz2[1]).

N.B. : Le nombre complexei n’existe pas a priori en Python. On utilisera la d´efinition de la multiplication dansCdonn´ee dans le cours de math´ematiques pour construire la fonction demand´ee.

4 Produit vectoriel

Le d´eterminant d’une matrice

a b

c d

r´eelle 2×2 (i.e. d’un tableau `a 2 lignes et 2 colonnes de nombres r´eels) est le r´eel not´e

a b

c d

et d´efini par :

a b

c d

=ad−bc.

Le produit vectoriel de (x1, y1, z1)∈R3 par (x2, y2, z2)∈R3est le triplet de r´eels not´e (x1, y1, z1)∧(x2, y2, z2) d´efini par :

(x1, y1, z1)∧(x2, y2, z2) =

y1 y2 z1 z2

,

z1 z2 x1 x2

,

x1 x2 y1 y2

.

Le produit vectoriel poss`ede de nombreuses propri´et´es/applications, e.g. le produit vectoriel de deux vecteurs deR3est le vecteur nul (0,0,0) si et seulement si les deux vecteurs sont colin´eaires.

Exercice 4

1. ´Ecrire une fonction Python nomm´ee determinantqui a comme argument un uplet de 4 nombres r´eels (a, b, c, d) et qui retourne le d´eterminant de la matrice

a b

c d

.

2. En utilisant la fonctiondeterminantconstruite en 1., ´ecrire une fonction nomm´eeprodvectqui a comme argument deux upletsu1et u2de trois nombres r´eels et qui retourne l’uplet de trois nombres r´eels donn´e paru1∧u2.

3. ´Ecrire une fonction utilisant la fonction construite en 2., nomm´ee iscollinear, qui a comme argument deux uplets u1et u2de trois nombres r´eels et qui retourne Truesiu1//u2etFalsesinon.

2

Références

Documents relatifs

Antisym´ etrie, bilin´ earit´ e. Caract´ erisation de vecteurs colin´ eaires. Interpr´ etation g´ eom´ etrique et notion d’orientation de l’espace... Chapitre 2.

[r]

(2) ´ Ecrire une fonction traitement qui prend pour arguments une image et une fonction puis applique cette fonction sur la valeur de chacun des pixels de l’image.. (3) Red´

Les deux op´ erations de base utilis´ ee utilis´ ees pour inverser une matrice sont l’´ echange de deux lignes et l’ajout une ligne ` a une autre.. Ecrivons

BCPST R´ esolution de syst` emes et inversions de matrice 2016-2017 Le but de ce TP est de finir le dernier TP en ´ ecrivant l’ensemble des algorithmes sur les matrices vus dans

[r]

´ Ecrire une fonction nombreDeUns d’argument un entier naturel n, qui renvoie le nombre de chiffres de 1 dans l’´ ecriture binaire de n.. Soit n un

Par construction, ces racines sont réelles et distinctes (donc simples).. Nous avons obtenu