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

Exemple

On considère a surface z=ϕ(x,y)=x22y2+xy1z=\phi(x,y)= x^2 - 2 y^2 +xy-1.
Ci bas :

  • Ses courbes de niveau,
  • Son champ gradient.
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='autumn',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)
cmsel = [colormaps['autumn'](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

Les lignes de courant du champ gradient sont les solutions de (x4y)+(2x+y)y(x)=0-(x-4y) + (2x+y) y'(x) = 0

from sage.calculus.desolvers import desolve_system_rk4 var('x') y = function('y')(x) # p est une fonction de la variable t EDO = diff(y,x) == (x-4*y)/(2*x+y) # On déclare l'EDO à considérer. Bien noter le double signe égal. g = Graphics() # On commence par créer un graphique vide for i in srange(-1,1,0.1): # On produit la liste des nobres de 0 à 12, par pas de 0.2. Ces nombres serviront de conditions initiales g += line(desolve_rk4(EDO,y,ics=[0,i], step = 0.02, end_points=[-1,1]), color="green") # Au graphique, on rajoute la courbe solution de l'EDO avec la nouvelle cond. init. var('y')# On fait que y devienne une variable, nécessaire si on veut dessiner le champ. #g+= plot_slope_field((x-4*y)/(2*x+y), (x,-2,2), (y,-2,2), color="red", headlength =2)# on rajoute le champ g+= Grad g.show(ymin=-1, ymax = 1, figsize=6, aspect_ratio=1)# On montre le tout, en spécifiant l'étendue de l'axe des ordonnées.
x y
g+=C g.show(ymin=-1, ymax = 1, figsize=6, aspect_ratio=1)