• Aucun résultat trouvé

Stanislas Devoir Surveillé n°2 SUP

N/A
N/A
Protected

Academic year: 2022

Partager "Stanislas Devoir Surveillé n°2 SUP"

Copied!
4
0
0

Texte intégral

(1)

Stanislas Devoir Surveillé n°2 SUP

Le devoir est composé de 3 exercices indépendants dont les solutions seront EXCLUSIVEMENT don- nées sur le document réponse.

Les calculatrices sont INTERDITES.

Exercice 1. Analyse de code.

1. Pour chacune des fonctions suivantes, choisir parmi les propositions : 1. renvoie la valeur de l'intégrale par la méthode des rectangles à gauche.

2. renvoie la valeur de l'intégrale par la méthode des rectangles à droite.

3. renvoie la valeur de l'intégrale par la méthode des trapèzes.

4. renvoie la valeur d'un zéro de la fonction par dichotomie.

5. renvoie une autre valeur. Précisez laquelle.

6. renvoie un message d'erreur. Précisez lequel.

7. ne nit jamais. Préciser pourquoi.

Pour les intégrations, le premier argument de la fonction correspond à une liste contenant les valeurs du temps, alors que le second correspond aux valeurs de la fonction en ces temps.

Pour la dichotomie, le 1

er

argument est la borne gauche de l'intervalle de recherche, le 2

e

est la borne de droite, le 3

e

est la fonction dont on cherche un zéro et le 4

e

est la valeur du critère d'arrêt.

a)

def f01 ( t , y ) : I = 0

for i in range ( len ( t )−1):

I = I + ( t [ i +1]−t [ i ] ) * y [ i ] return I

b)

def f02 ( t , y ) : I = 0

for i in range ( len ( t )−1):

I = I + ( t [ i +1]−t [ i ] ) * y [ i +1]

c)

def f03 ( t , y ) : I = 0

for i in range ( len ( t )−1):

I = I + ( t [ i +1]−t [ i ] ) * y [ i +1]

return I

d)

def f04 ( t , y ) : I = 0

for i in range ( len ( t ) ) :

I += ( t [ i +1]−t [ i ] ) * y [ i +1]

return I

e)

def f05 ( x , y , f , eps ) : while True :

z = ( x+y )/2 i f f ( x )* f ( z ) > 0 :

x = z else :

y = z

i f abs ( x−y ) < eps : return z

f)

def f06 ( t , y ) : I = t [1]−t [ 0 ]

for i in range ( 1 , len ( t )−1):

I += ( t [ i +1]−t [ i ] ) * y ( i ) return I

g)

def f07 ( t , y ) : S = 0

for i in (0 , len ( t )−1):

S = S + ( t [ i +1]−t [ i ] ) * ( y [ i ]+y [ i +1])/2 return S

Stanislas

(2)

. Devoir Surveillé n°2 SUP

h)

def f08 ( t , y ) : VAL = 0

for i j k in range (0 , len ( t )−1):

VAL = VAL + ( t [ i j k +1]−t [ i j k ] ) / 2 * ( y [ i j k ]+y [ i j k +1]

return VAL

i)

def f09 ( t , y ) : a = 0 b = 0 . 5 c = 4*b

for x in range ( len ( t )−1):

a = a + ( t [ x+1]−t [ x ] ) * ( y [ x]+y [ x +1])*b c = 3*a + 1

return a

j)

def f10 ( a , b , f , eps ) : x=a , y=b

while abs ( x−y)>eps : z = ( x+y )/2 i f f ( x )* f ( z ) > 0 :

x = z else :

y = z x=a , y=b return ( x+y )/2

2. Soit une fonction dichotomie(a,b,f,eps) dénie correctement. On applique cet algorithme à la fonction f dénie par

x7→

(x

−6)(x

+ 3)(x

−10)

. Donner ce que renvoie la fonction dans les cas suivants après avoir tracé l'allure de la fonction

f

.

a) Tracer l'allure de la fonction

f

sur le document réponse.

b) dichotomie(0,7,f,1e-16) c) dichotomie(-100,0,f,1e-16) d) dichotomie(8,30,f,1e-16) e) dichotomie(-100,-5,f,1e-16) f) dichotomie(-100,100,f,1e-16)

Stanislas

(3)

. Devoir Surveillé n°2 SUP

Exercice 2. Représentation des entiers en complément à deux.

Dans cet exercice, on utilise la représentation des entiers en complément à deux sur 8 bits, i.e. 1 octet, on notera

N

= 8 le nombre de bits. Étant donné un entier

n

, on notera

ne

sa représentation et

l'addition dans ce système de représentation.

On utilise le complément à 2 pour représenter

n∈Z

:

1 bit détermine le signe, le bit de poids fort à gauche : 0 pour un nombre positif et 1 pour un nombre négatif

les 7 autres bits déterminent la valeur :

?

pour un nombre positif, on utilise le codage binaire naturel,

?

pour un nombre négatif, on utilise le complément à 2, on code en binaire naturel le nombre 2

N − |n|

En pratique (on ne demande pas de démontrer ce résultat), pour obtenir la représentation en com- plément à 2 d'un entier négatif il sut d'écrire la décomposition en base 2 de son opposé, puis de rechercher le bit de poids le plus petit égal à 1 et d'échanger les bits qui se trouvent à sa gauche (lui exclus).

Exemple 1.

On a 123

10

= (0111 1011)

2

Donc

−123 = (1000 0101)2

On rappelle que l'addition binaire sur des nombres de 8 bits (en s'interdisant le dépassement) s'eectue

comme suit : 1 1 0 0 0 1 0 1

+ 1 1 0 0 0 1 1 0

1 1 0 0 0 1 0 1 1

1. Déterminer l'ensemble des entiers représentables en machine.

2. Addition de nombres opposés. Déterminer

a) 62

e

. b)

−62g

.

c) En utilisant les représentations précédentes, déterminer en base 2 en posant l'opération, puis en base 10 , le résultat de la somme 63

e ⊕−63g

.

3. Addition de nombres de signes opposés. Déterminer

a) 29.

e

b)

−29.g

En utilisant les représentations précédentes, déterminer en base 2 en posant l'opération, puis en base 10 , les résultats des sommes

c)

−62g ⊕

29.

e

d) 62

e ⊕−29.g

4. Addition de nombres positifs. Déterminer

a) 36.

e

b) 66.

e

c) 104.

g

En utilisant les représentations précédentes, déterminer en base 2 en posant l'opération, puis en base 10 , les résultats des sommes

d) 36

e ⊕

66

e

. e) 104

g⊕

66

e

.

5. Addition de nombres négatifs. Déterminer

a)

−36.g

b)

−66.g

c)

−104.]

En utilisant les représentations précédentes, déterminer, en base 10 , les résultats des sommes

d)

−36g ⊕−66.g

e)

−104] ⊕−66.g

6. On souhaite maintenant programmer la décomposition d'un nombre entier en complément à deux sur 8 bits.

a) Écrire une fonction base qui, étant donné un entier naturel

n

donné en base 10, retourne la liste [a0,...,am] où

n

= (am...a0)

2

(on ne s'occupera pas du nombre de bits nécessaire pour représenter ce nombre).

b) Écrire une fonction complement_2 qui renvoie le complément à 2, sur 8 bits, d'un entier. Cette fonction renverra False en cas de dépassement de capacité.

Stanislas

(4)

. Devoir Surveillé n°2 SUP

Exercice 3. Mouvement d'une prothèse de main motorisée.

La gure

1

montre une prothèse de main motorisée. La mise au point de ce type de prothèse nécessite de longues phases d'optimisation pour s'adapter au mieux aux mouvements naturels et aux besoins des personnes. L'exercice vise à simuler le mouvement d'ouverture et de fermeture de la pince.

Figure 1 Prothèse de main et modélisation du mouvement des doigts.

Un moteur commande l'angle

β

. La loi de fermeture de la pince dépend des angles

θ

et

β

des doigts, dont les mouvements sont liés par la barre

CD

. En exprimant la contrainte de distance imposée par la barre, il est assez simple d'obtenir l'équation liant

θ

et

β

:

kDCk# »

=

L⇐⇒

(R cos

β

+

d

cos

θ)2

+ (R sin

β−h

+

d

sin

θ)2−L2

= 0 (1)

En résolvant cette équation non linéaire, il est possible de déduire pour tout angle

β

imposé par le moteur à la pince 1, l'angle

θ

de la pince 2.

Données :

h

= 40 mm ,

L

= 44 mm ,

R

= 15 mm et

d

= 1 cm .

Une fonction loi_es(theta,beta), qui prend en argument les angles

θ

et

β

et qui retourne la valeur de la partie gauche de l'égalité (1) a été dénie et pourra être utilisée dans vos programmes.

1. Proposer une fonction derive(f,theta,beta,dt), qui prend en argument une fonction

f

, les angles

θ

et

β

et le pas de dérivation

dt

et qui retourne la valeur de la dérivée numérique de la fonction

f

par rapport à la variable

θ

.

2. Proposer une fonction resolution(f,x_ini, eps, beta,dt) basée sur la méthode de Newton, permettant de résoudre l'équation (1) pour un angle

β

xé et renvoyant

θ

pour toute valeur de

β

donnée comme argument. Vous utiliserez des appels aux fonctions précédemment dénies.

3. Proposer un algorithme permettant de dénir un tableau d'environ 10 valeurs pour

β

entre

−0,5

et 0,3 rad , et de calculer le tableau des angles

θ

correspondants.

4. Donner les lignes de programme permettant de tracer l'évolution de l'angle

θ

en fonction de

β

. Les axes seront légendés et la gure contiendra un titre.

Stanislas

Références

Documents relatifs

[r]

Déterminer les limites de la fonction aux bornes de son ensemble de définition.. Etudier les variations de la fonction

C'est une tangente parallèle à l'axe

avec le minimum de calculs et sans faire appel au théorème du

Mais cela ne préjuge pas d'une absence de limite pour la suite ( ) w n. Pour lever l'ambiguïté, nous allons factoriser la somme w par le terme qui nous n semble plus fort 9..

3) On envoie de la lumière blanche sur un filtre rouge. Déduis-en le rôle du filtre. Une source de lumière blanche est observée à travers 3 filtres se chevauchant partiellement :

La concentration annuelle moyenne en CO2 dans l'air mesurée à la station de Mauna Kea1. (Hawai), en parties par

Pour ces derniers, on pourra utiliser les fonctions scipy.special.gamma (fonction Gamma d’Euler) et scipy.optimize.minimize_scalar (minimise une fonction réelle ; la valeur de