Interrogation de novembre 2003

Interrogation de novembre 2003
UNIVERSITE LIBRE DE BRUXELLES
Faculté des Sciences
Algorithmique et Programmation
Année académique 2003-2004
1re candidature en Informatique
Interrogation du 8 novembre 2003
Remarques préliminaires
– On vous demande de répondre à chaque question sur des feuilles séparées (les
correcteurs sont différents).
– N’oubliez pas d’inscrire vos nom et prénom sur chacune des feuilles.
– Vous disposez de deux heures.
– Vous ne pouvez pas utiliser de notes.
– L’interrogation comporte deux questions.
– Le code qui constitue la réponse à la question doit comprendre :
– le code C++ structuré de la fonction demandée,
– des commentaires pertinents dans vos algorithmes.
Question 1
On vous demande d’écrire une fonction calculant efficacement la puissance k e
d’une matrice carrée A de dimension n, dans le cas où k est une puissance entière
de 2. La puissance k e d’une matrice est le résultat de la multiplication de cette
matrice k fois par elle-même.
Ak = A
| ×A×
{z· · · × A} .
k fois
L’opération de multiplication matricielle C = A × B, pour une matrice A de dimension l×m, une matrice B de dimensions m×n et une matrice C de dimensions
l × n, est définie comme suit :
Cij =
m
X
Aik .Bkj
1 ≤ i ≤ l, 1 ≤ j ≤ n
k=1
Ecrivez une fonction void Apow2i(int A[n][n],int i, int RES[n][n])
i
qui place dans RES le résultat de l’opération A2 . Votre fonction ne devra modifier
que la matrice RES.
N’hésitez pas à définir des fonctions intermédiaires que vous utiliserez dans Apow2i
pour atteindre votre résultat. Si vous en employez, le code de ces fonctions devra
bien entendu être inclus dans votre réponse.
Pensez à utiliser la propriété suivante : Ai × Aj = Ai+j (et donc A2 × A2 = A2
Il est permis de déclarer une matrice intermédiaire pour faire vos calculs.
i
i
i+1
).
Question 2
La série suivante donne le développement de Taylor-Mc Laurin de arcsin(x) :
1 x3 1 3 x5 1 3 5 x7
·
+ · ·
+ · · ·
+...
2 3
2 4 5
2 4 6 7
arcsin(x) = x +
C’est-à-dire :
arcsin(x) = x +
X
i≥1
où :
d1 =
et
∀i ≥ 2 : di =
di
x(2i+1)
2i + 1
1
2
2i − 1
di−1
2i
On vous demande d’écrire une fonction optimisée double arcsin(double x),
qui calcule une approximation de arcsin(x) selon le développement ci-dessus.
Votre fonction devra calculer les j premiers termes, où j est la plus petite valeur
supérieure ou égale à 1 telle que :
dj
x(2j+1)
< ε ou j ≥ nmax
2j + 1
ε et nmax sont des valeurs données (des constantes du programme, par exemple).
2
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertising