Soit D⊆Rn une région de l'espace (on peut penser que n=2), et f:D→R une fonction. Soit en plus a∈D. On dit que la fonction f(x) tend vers L lorsque x tend vers a si pour tout réel ϵ>0 il existe un réel δ>0 tel que ∣f(x)−L∣<ϵ aussitôt que ∣x−a∣<δ. Autrement dit, la distance entre f(x) et L est aussi petite que l'on veut, pourvu que la distance entre x et a soit suffisament petite. On écrit dans ce cas x→alimf(x)=L
La fonction f est continue en a si x→alimf(x)=f(a). Ceci présuppose notamment que a fait partie du domaine de f. Ceci signifie que les valeurs de f ne varient pas brusquement lorsque x varie aux alentours de a. Dans le cas où n=2 (deux variables) l'interprétation de ceci en termes de la surface z=f(x,y) est essentiellement la même que celle de la contuité d'une fonction y=f(x) en termes de sa courbe : il n'y a pas de déchirures. Par ailleurs, en plusieurs variables on dispose de l'outil supplémentaire qui sont les courbes de niveau.
Voyons quelques exemples.
On considère le fonction f(x,y)=x2+y2y. Ci après on trouve ce qu'il faut pour tracer la surface, joliment coloriée et le diagramme des courbes de niveau.
var('x,y') cm = colormaps.Blues def f(x,y) : return y/(x^2 + y^2) def c(x,y): return 0.5+0.7*y/(x^2 + y^2+0.01) S=plot3d(f,(x,-2,2),(y,-2,2),color = (c,cm), opacity=1, mesh=1) show(S, aspect_ratio=[10,10,1]) C=contour_plot(f, (x,-2, 2), (y,-2, 2), cmap='Blues',linestyles='solid', contours=[-5,-3,-2,-1,0,1,2,3,5], colorbar=True) show(C,figsize=4)
On considère la fonction
f(x,y)={x2+y2x2−y20 si si (x,y)=(0,0)(x,y)=(0,0) On voit bien qu'il y a un problème à l'origine (le 11e commandement). Voyons la surface et les courbes de niveau. Voyons les courbes de niveau : on voit bien que si l'on se rapproche de l'origine par différentes droites, les valeurs de f sont différentes aussi. La limite de f en (0,0) n'existe simplement pas, cette fonction ne peut pas être continue en ce point.
var('x,y') f(x,y)=(x^2-y^2)/(x^2+y^2) cm = colormaps.Blues def c(x,y): return 0.5+0.5*(x^2-y^2)/(x^2+y^2+0.005)# Un bricolage pour colorier... la discontinuité pose problème S=plot3d(f,(x,-1,1),(y,-1,1),color = (c,cm), opacity=1, mesh=1) show(S) C=contour_plot(f, (x,-1, 1), (y,-1, 1), cmap='Blues',linestyles='solid', colorbar=True) show(C,figsize=4)
considérons la fonction g(x,y)=arctan(xy) lorsque x=0. La présence du x au dénominateur indique qu'il y aura des problèmes pour des valeurs de x très petites.
var('x,y') g(x,y)=arctan(y/x) cm = colormaps.Blues def c(x,y): return (1/pi.n())*arctan(y/x) + 1/2 S=plot3d(g,(x,-1,1),(y,-1,1),color=(c,cm), opacity=0.55, mesh=1) show(S) C=contour_plot(g, (x,-1, 1), (y,-1, 1),cmap='Blues',linestyles='solid', colorbar=True) show(C,figsize=4)
Voyons maintenant à quoi ressemble une surface continue. Soit h la fonction définie par
h(x,y)={x2+y23x2y0 si si (x,y)=(0,0)(x,y)=(0,0)
Ici on pourrait penser que le même problème que ci-haut va se présenter, mas ce n'est pas le cas, en fait, le numérateur est de degré 3, le dénominateur de degré 2. Le numérateur tend vers 0 plus vite que le dénominateur.
var('x,y') = colormaps.Blues h(x,y)= 3*x^2*y/(x^2+y^2) def c(x,y): return 0.5+1.5*x^2*y/(x^2+y^2+0.005)# S=plot3d(h,(x,-1,1),(y,-1,1), color = (c,cm), opacity=1, mesh=1) show(S) C=contour_plot(h, (x,-1, 1), (y,-1, 1),cmap='Blues',linestyles='solid', colorbar=True) show(C,figsize=4)
Soit maintenant la fonction définie par h(x,y)=x2+y4xy2 pour (x,y)=(0,0) Nous avons vu en classe que si Cm est la droite de pente m, alors Cm(x,y)→(0,0)limf(x,y)=0
mais sur la parabole x=y2, la limite a une autre valeur. Ainsi, la limite de f(x,y) lorsque (x,y) tend vers 0 n'existe pas. Voyons la surface, mais mieux encore, les courbes de niveau.
var('x,y,s,t') h(x,y)= x*y^2/(x^2+y^4) cm = colormaps.Blues def c(x,y): return 0.6+x*y^2/(x^2+y^4+0.005)# Colorier ceci pose des problèmes, à cause de la singularité. S=plot3d(h,(x,-1,1),(y,-1,1),color = (c,cm), opacity=1, mesh=1) show(S) C=contour_plot(h, (x,-1, 1), (y,-1, 1),cmap='Blues',linestyles='solid', colorbar=True) show(C,figsize=4)