Devoir Surveillé 
“Calcul Symbolique”
Licence 2 Informatique
Jeudi 5 Novembre 2015

Durée 2 heures. Le barème est donné de manière purement indicative. Il est demandé d’écrire les solutions dans ce document, n’hésitez pas à utiliser le format texte pour expliquer votre démarche.

I. Mathématiques (10 points)

On se propose d’étudier la famille de fonctions réelles définie par
(Subscript[f, k])(x)=k x- ((Log(x))/x), où k est un réel.

I.1. Définir la fonction f(x,k)

I.2. Dessiner, dans un même repère,  les représentations graphiques de (Subscript[f, -1]),(Subscript[f, 0]),(Subscript[f, 1]),(Subscript[f, 2]) pour x variant entre 0 et 5.

I.3. Calculer la dérivée f’(x,k) par rapport à x. Définir la fonction df(x,k) qui retourne f’(x,k)

df[x,k]

I.4.   Montrer que  l’ensemble des points des courbes représentatives de f(x,k) dont la tangente passe par l’origine est la droite verticale d’équation x=(Sqrt[e]).

On rappelle que l’équation de la tangente à la courbe représentative d’une fonction f au point A(a,f(a)) est donnée par 
		y-f(a)=f’(a)(x-a).

I.5.   En utilisant Manipulate, illustrer ce phénomène.

II. Suites croissantes (18 points)

II.1 Génération d’une liste strictement croissante  aléatoire (4 points)

On génère une liste strictement croissante  aléatoire en utilisant plusieurs fois la procédure d’un entier aléatoire entre 1 et k et en additionnant ce nombre au dernier élément de la liste en cours de création.  On obtient ainsi une suite de nombres (Subscript[n, i]) tels que (Subscript[n, i])<(Subscript[n, i+1])=(Subscript[n, i])+RandomInteger[k]≤(Subscript[n, i])+k. 
Ainsi, à d’un tirage {2,1,1,3,2} de nombres aléatoires entre 1 et 3, on construit la suite croissante 
	{2,3,4,7,9}={2,3=2+1,4=2+1+1,7=2+1+1+3,9=2+1+1+3+2}.

II.1.a. Ecrire la fonction ListeStrictementCroissante de manière itérative (en utilisant une boucle For)

ListeStrictementCroissante[6,3]

II.1.b. Ecrire la fonction ListeCroissante sans utiliser de  boucle For, en une ligne

ListeStrictementCroissante2[6,3]

II.2 Test de croissance stricte d’une liste  (2 points)

Ecrire une fonction qui teste si une liste est strictement croissante ou pas

StrictementCroissanteQ[{2,3,5}]
StrictementCroissanteQ[{2,3,3}]
StrictementCroissanteQ[{3,2,4}]

II.3 Représentation Graphique d’une liste strictement croissante (4 points)

Ecrire une fonction qui dessine une  liste strictement  croissante par une fonction en escalier croissante dont la hauteur de chaque pas horizontaux correspond aux valeurs présentes dans la liste.

liste={2,3,5,7,8}
Dessine[liste]

II.4 Adaptez les procédures précédentes à la génération, au test et à la représentation graphique des suites croissantes au sens large (4 points)

liste=ListeCroissante[10,4]
CroissanteQ[liste]
Dessine[liste]

III. Fusion de deux listes croissantes (au sens large) (4 points)

Ecrire une fonction qui prend en paramètre deux listes croissantes au sens large et qui les regroupe en une seule liste croissante.
Par exemple, si l1={1,2,2,4} et l2={2,3,5}, la fusion de l1 et l2 sera {1,2,2,2,3,4,5}. On pourra définir cettye fonction plusieurs manières.

liste1=ListeCroissante[10,4]
liste2=ListeCroissante[10,3]

Fusion[liste1,liste2]

Fusion1[liste1,liste2]

Fusion2[liste1,liste2]

Bonus. Suites croissantes au sens large de taille donnée et de maximum fixé.

Dans cette partie, on veut générer des suites croissantes de nombres entiers positifs, à la fois de taille donnée (nombre d’éléments) , et de maximum fixé (de dernier élément). Proposer un ou plusieurs algorithmes, précisez leurs complexités,leurs avantages et leurs inconvénients.

GénèreSuite[10,7]