Exercices : Fonctions d’une variable réelle

Exercice 1

1) Définir dans Mathematica la fonction sinus cardinal : f(u)=(sin u )/u. Cette fonction est-elle définie en u=0 ?

On définit la fonction sinus cardinal :

f[u_]=Sin[u]/u

Cette fonction n’est pas définie en 0 :

f[0]

2) Calculer la limite de cette fonction en u->0. La fonction est-elle prolongeable par continuité en u=0 ?

La limite en u->0 est :

Limit[f[u],u->0]

On peut donc prolonger la fonction par continuité en u = 0 en posant f(0)=1.

3) Vérifier le résultat précédent en traçant la fonction sur un petit intervalle autour  u=0.

Traçons la fonction autour de u = 0 pour se convaincre du résultat précédent :

Plot[f[u],{u,-0.1,0.1}]

La courbe de la fonction est bien continue en u=0.

4) En fait, Mathematica dispose déjà une fonction “Sinc[u]”. Vérifier que cette fonction est définie en u=0.

Utlisons la fonction Sinc déjà définie dans Mathematica :

f[u_]=Sinc[u]

celle-ci est définie en 0 :

f[0]

Remarque : on peut aussi interroger WolframAlpha with sin(x)/x :

WolframAlpha["Is Sin(x)/x continuous?"]

ou directement avec sinc(x) :

WolframAlpha["Is Sinc continuous?"]

5) Traçer la fonction f(u) sur l’intervalle [-15,15].

Plot[f[u],{u,-15,15},PlotRange->{{-15,15},{-0.3,1}}]

6) Calculer les valeurs de u pour lesquelles f(u) s’annule.

Essayons de calculer les points où la fonction s’annule avec Solve :

Solve[f[u]==0,u]

Mathematica nous conseille d’utiliser plutôt Reduce :

Reduce[f[u]==0,u]

c’est-à-dire u=π k avec k∈Ζ sauf u≠0.

7) Calculer la dérivée de f(u) et la tracer sur l’intervalle [-15,15].

Calculons à présent la dérivée :

f1[u_]=D[f[u],u]

et traçons la :

Plot[f1[u],{u,-15,15}]

8) Calculer les valeurs de u pour lesquelles f'(u) s’annule. Pour chacune de ces valeurs de u, vérifier s’il s’agit d’un minimum ou d’un maximum.

Essayons de calculer les points auxquels la dérivée s’annule :

Solve[f1[u]==0,u]

Reduce[f1[u]==0,u]

Il faut procéder autrement. Sur le graphe de la dérivée, on voit que la dérivée s’annule en un point proche u=5. On peut calculer plus précisement ce point avec FindRoot en donnant comme point de départ  u=5 :

FindRoot[f1[u]==0,{u,5}]

Ce pont correspond à un extremum de f(u). Vérifions qu’il s’agit d’un minimum en calculant la dérivée seconde :

f2[u_]=D[f1[u],u]

f2[4.493409457909064`]

La dérivée second en ce point est positive : il s’agit bien d’un minimum. On aurait aussi pu trouver ce mimimum local de f(u) directement avec  FindMinimum en donnant encore comme point de départ de la recherche u=5

FindMinimum[f[u],{u,5}]

On peut trouver d’autres maxima et minima de la même manière, en s’aidant du graphe pour les points de départ :

FindMaximum[f[u],{u,6}]

FindMaximum[f[u],{u,14}]

FindMaximum[f[u],{u,-6}]

FindMaximum[f[u],{u,-14}]

FindMinimum[f[u],{u,11}]

FindMinimum[f[u],{u,-11}]

Exercice 2

1) Définir dans Mathematica la fonction sinus cardinal normalisée : g(u)=(sin (π u ))/(π u).

On définit la nouvelle fonction :

g[u_]=Sin[π u]/(π u)

2) Calculer l’intégrale de cette fonction g(u) de -∞ à +∞. Comparer à l’intégrale de la fonction f(u) de l’exercice précédent.

La fonction g(u) est normalisée dans le sens où son intégrale de -∞ à ∞ vaut 1 :

Integrate[g[u],{u,-∞,∞}]

alors que l’intégrale de f(u) vaut π :

Integrate[f[u],{u,-∞,∞}]

3) Tracer les fonctions f(u) et  g(u) sur le même graphe

Traçons les deux fonctions sur le même graphe :

Plot[{f[u],g[u]},{u,-15,15},PlotRange->{{-15,15},{-0.3,1}}]

La courbe de la fonction g(u) s’obtient à partir de celle de f(u) en contractant l’axe des abscisses.

Remarque : on peut explorer comme on passe progressivement de f(u) à g(u) avec Manipulate :

Manipulate[Plot[((Sin[a u])/(a u)),{u,-15,15},PlotRange->{{-15,15},{-0.3,1}}],{a,1,π}]

Exercice 3

1) Définir dans Mathematica la fonction Γ(ω)=(((Subscript[ϕ, 0])^2)/2)((R((Subscript[ω, 0])-ω))/((R^2)+(((L^2)((Subscript[ω, 0])-ω))^2))) .

Définissons la fonction :

Γ[ω_]=(((ϕ0)^2)/2)((R (ω0-ω))/((R^2)+(L^2)(((ω0-ω))^2)))

2) Pour quelle valeur de ω la fonction Γ(ω) s’annulle-t-elle ?

La fonction s’annule en ω=ω0 :

Solve[Γ[ω]==0,ω]

3) Calculer la dérivée de Γ(ω). Pour quelles valeurs de ω cette dérivée s’annulle-t-elle ?

La dérivée est :

Γ1[ω_]=D[Γ[ω],ω]//Factor

Elle s’annule en :

Solve[Γ1[ω]==0,ω]//Simplify

4) Tracer la fonction Γ(ω) pour des différentes valeurs des paramètres (Subscript[ϕ, 0]), R, L, et (Subscript[ω, 0]). Que se passe-t-il quand R est proche de 0 ?

Traçons la fonction pour des valeurs particulières des paramètres :

Plot[Γ[ω]/.{ϕ0->1,R->1,L->1,ω0->2},{ω,0,10}]

Plot[Γ[ω]/.{ϕ0->1,R->0.1,L->1,ω0->2},{ω,0,10}]

Plot[Γ[ω]/.{ϕ0->1,R->0.01,L->1,ω0->2},{ω,0,10}]

On peut explorer plus facilement l’effet des différents paramètres avec Manipulate :

Manipulate[Plot[(((ϕ0)^2)/2)((R (ω0-ω))/((R^2)+(L^2)(((ω0-ω))^2))),{ω,0,10},PlotRange->{{0,10},{-1,1}}],{ϕ0,0,10},{R,0,10},{L,0,10},{ω0,0,10}]

On s’apperçoit que, quand R est proche de 0, la fonction devient de plus en plus singulière en ω = ω0. En effet, on peut vérifier que la dérivée en ω=ω0 vaut :

Γ1[ω0]

et dont tend vers -∞ quand R->0.

Exercice 4

1) Définir dans Mathematica la fonction g(x)=x ln x + (1-x) ln (1-x) + W x (1-x) .

On définit la fonction :

g[x_]=x Log[x]+(1-x) Log[1-x] + W x(1-x)

2) Utiliser Mathematica pour vérifier que le domaine de définition de g(x) est l’intervalle ]0,1[.

Puisque la fonction ln x n’est définie que sur ]0,+∞[, la fonction g(x) n’est définie que sur  ]0,1[. On peut vérifier avec Mathematica que g(x) n’est pas définie pour x=0 :

g[0]

et pour x=1 :

g[1]

Pour x<0 et x>1, on trouve des valeurs complexes :

g[-1]

g[2]

Mathematica utilise en fait la généralisation complexe du logarithme pour  -x<0:  ln(-x)=ln (x)+i π. Mais, si on veut se limiter à  des nombres réels, alors la fonction n’est pas définie pour ces valeurs de x.

Remarque : il existe aussi une commande Mathematica “FunctionDomain” pour déterminer le domaine de définition d’une fonction :

FunctionDomain[g[x],x]

3) La fonction g(x) est-elle prolongeable par continuité sur l’intervalle [0,1] ?

Calculons la limite à droite de g(x) quand x->0

Limit[g[x],x->0,Direction->-1]

et la limite à gauche de g(x) quand x->1

Limit[g[x],x->1,Direction->1]

3) La fonction g(x) est-elle prolongeable par continuité sur l’intervalle [0,1] ?

On peut donc prolonger par continuité g(x) en posant g(0)=0 et g(1)=1.

4) Calculer la dérivée première et la dérivée seconde de la fonction g(x).

La dérivée première est :

g1[x_]=D[g[x],x]

La dérivée seconde est :

g2[x_]=D[g[x],{x,2}]//Factor

5) Calculer les valeurs de x pour lesquelles la dérivée seconde s’annule et étudier le signe de la dérivée seconde.

Cherchons les points où la dérivée seconde s’annule :

Solve[g2[x]==0,x]

Ces points existent seulement pour W>2 :

Reduce[-2 W+(W^2)>0,W]

Si W<2, la dérivée seconde est toujours positive

Simplify[Sign[g2[x]],Assumptions->{0<W<2,0<x<1}]

Si W>2, la dérivée seconde change de signe :

Simplify[Sign[g2[x]],Assumptions->{x<((W-(Sqrt[-2 W+(W^2)]))/(2 W)),0<x<1}]

Simplify[Sign[g2[x]],Assumptions->{((W-(Sqrt[-2 W+(W^2)]))/(2 W))<x<((W+(Sqrt[-2 W+(W^2)]))/(2 W)),0<x<1}]

Simplify[Sign[g2[x]],Assumptions->{x>((W+(Sqrt[-2 W+(W^2)]))/(2 W)),0<x<1}]

Illustrons ceci sur un graphique. Pour W=1, la courbe de g(x) est toujours convexe :

Plot[Evaluate[{g[x],g1[x],g2[x]}/.W->1],{x,0,1},PlotRange->{{0,1},{-2,5}},PlotStyle->{Red,Blue,Green}]

Pour W=3, la courbe de g(x) a des points d’inflexions en

Solve[g2[x]==0,x]/.W->3.

et la courbe de g(x) est d’abord convexe sur ]0,0.211[, puis concave sur ]0.211, 0.789[, puis convexe sur ]0.789,1[ :

Plot[Evaluate[{g[x],g1[x],g2[x]}/.W->3],{x,0,1},PlotRange->{{0,1},{-0.5,0.5}},PlotStyle->{Red,Blue,Green}]

Quand on augmente W, les points d’inflexions se rapprochent des limites 0 et 1 :

Solve[g2[x]==0,x]/.W->10.

Plot[Evaluate[{g[x],g1[x],g2[x]}/.W->10],{x,0,1},PlotRange->{{0,1},{-3,3}},PlotStyle->{Red,Blue,Green}]

6) Vérifier que g(1-x) = g(x).

On vérifie que g(1-x) = g(x) :

g[1-x]==g[x]

La courbe de g(x) est symétrique par rapport à la droite x=1/2.

7) Tracer g(x), g'(x) et g"(x) sur le même graphe pour W=0.

Les courbes de g(x), g'(x) et g"(x) pour W=0 sont

Plot[Evaluate[{g[x],g1[x],g2[x]}/.W->0],{x,0,1},PlotRange->{{0,1},{-3,6}},PlotStyle->{Red,Blue,Green}]

La dérivée première s’annule en x=1/2 :

Solve[(g1[x]/.W->0)==0,x]