CoCalc Public FilesGradient-Niveau.sagewsOpen with one click!
Author: Juan Carlos Bustamante
Views : 88
Compute Environment: Ubuntu 18.04 (Deprecated)

Vecteur gradient, courbes et surfaces de niveau.

Une propriété cruciale du gradient d'une fonction f\nabla f est que si C\mathcal{C} est la courbe de niveau f(x,y)=cf(x,y)=c, ou si S\mathcal{S} est la surface de niveau f(x,y,z)=cf(x,y,z)=c, et P0P_0 est un point sur C\mathcal{C} ou sur S\mathcal{S}, alors f(P0)\nabla f(P_0) est orthogonal à la courbe C\mathcal{C} (ou à la surface S\mathcal{S} pour les fonctions à trois variables, voir dernier exemple). En particulier, ceci permet d'étudier des questions d'anges ou tangence entre courbes / surfaces.

Exemple 1

On considère la fonction f(x,y)=x22y2+xy1f(x,y) = x^2 -2y^2 +xy-1. Ci-bas on trace :

  • quelques courbes de niveau f(x,y)=cf(x,y) = c pour quelques valeurs de cc
  • le champ de veteurs f\nabla f. En chaque point (x,y)(x,y) on dessine un vecteur parallèle à f(x,y)\nabla f(x,y)
var('x,y') f(x,y)=x^2-2*y^2+x*y-1 C=contour_plot(f, (x,-1, 1), (y,-1, 1),fill=False, cmap='hot',linestyles='solid',colorbar=True) Grad=plot_vector_field(f.gradient(),(x,-1,1),(y,-1,1),color='blue') show(C+Grad, figsize=6)
(x, y)

Il est aussi illustratif de voir la surface d'équation z=f(x,y)z = f(x,y).

cmsel = [colormaps['hot'](i) for i in sxrange(0,1,0.05)] Surff=plot3d(f,(x,-1,1),(y,-1,1),adaptive=True, color=cmsel) show(Surff)
3D rendering not yet implemented
%md ## Exemple 2: Montrer (Illustrer) que les courbes $y=cx^2$ et $y^2+\frac{1}{2}x^2= k$ sont orthogonales. Il s'agit de voir que les gradients sont orthogonaux en chaque point d'intersection.

Exemple 2:

Montrer (Illustrer) que les courbes y=cx2y=cx^2 et y2+12x2=ky^2+\frac{1}{2}x^2= k sont orthogonales. Il s'agit de voir que les gradients sont orthogonaux en chaque point d'intersection.

var('x,y') F1=[implicit_plot(y-c*x^2,(x,-5,5),(y,-5,5),color='blue', aspect_ratio=1) for c in sxrange(-2,2,.2)] F2=[implicit_plot(y^2+x^2/2-k,(x,-5,5),(y,-5,5),color='red',aspect_ratio=1) for k in sxrange(-10,10,1) ] show(sum(F1)+sum(F2),figsize=6)
(x, y)
%md ## Exemple 3 En 3 variables les choses fonctionnent de la même façon, mais les figures sont un peu plus difficiles à produire et interpréter. Soit $F(x,y,z)=x^2+y^2-z^2$. Les surfaces de niveau de $F$ sont des hyperboloïdes à une nappe. Le gradient est $\nabla F=(2x,2y,-2z)$. On voir aussi que $\nabla F$ est orthogonal aux surfaces de niveau.

Exemple 3

En 3 variables les choses fonctionnent de la même façon, mais les figures sont un peu plus difficiles à produire et interpréter.

Soit F(x,y,z)=x2+y2z2F(x,y,z)=x^2+y^2-z^2. Les surfaces de niveau de FF sont des hyperboloïdes à une nappe. Le gradient est F=(2x,2y,2z)\nabla F=(2x,2y,-2z). On voir aussi que F\nabla F est orthogonal aux surfaces de niveau.

var('x,y,z') N=4 F(x,y,z)=x^2+y^2-z^2 F1=[implicit_plot3d(F-2*c^2,(x,-6,6),(y,0,6),(z,-2,2), color=((N-2*c)/N,0,2*c/N), opacity=(c+1)/8) for c in range(1,4)] Champ=plot_vector_field3d(F.gradient(),(x,-6,6),(y,0,6),(z,-2,2)) show(sum(F1)+Champ)
(x, y, z)
3D rendering not yet implemented