In [ ]:
 
In [33]:
#le adaptative=True semble incompatible avec le region=...
h(x,y)=(2*x^2 - y^2)/(x^2+y^2)
eps=0.001
dessin = plot3d(h, (x,-2,2), (y,-2,2),           \
                mesh=True,\
                region=lambda x,y,z: (abs(x)>=eps) and (abs(y)>=eps),\
                plot_points=400,\
                color='blue'\
                )
                #, aspect_ratio=[1,1,1])
#lepoint = point3d((1,2,-3),size=35,color='black',opacity=1)
#lafleche = arrow3d((1,2,-3), (1+3/2,2+4/2,-3), radius=0.1,color="red")
show(html("<h3>exo 1 : étude de la régularité d'une fonction</h3>"))
show(html("bien voir les lignes x=0 et y=0"))
(dessin).show(aspect_ratio = 1, ymin = -3, ymax = 3)

exo 1 : étude de la régularité d'une fonction

bien voir les lignes x=0 et y=0
In [55]:
f(x,y)=(2*x^2+y^2)*exp(-x-y)
show(html("<h3>exo 2 : Recherche d'extrema</h3>"))    

# calculs généraux
from sage.manifolds.operators import *
E.<x,y> = EuclideanSpace()
F = E.scalar_field(f)
H=f(x,y).hessian()
show(html("<h5>paramètres généraux</h5>"))
T=table([["f",f],["grad f=",grad(F)[:]],["H=",H]],frame=True,align='center')
show(T)

# calcul des points critiques
Cr= solve([grad(f)[0]==0,grad(f)[1]==0],[x,y],solution_dict=True)
liste=[]
for critique in Cr:
    x_et_y_reels=(x(critique).imag()==0 and y(critique).imag()==0)
    x_et_y_avec_parametre=(len(x(critique).variables())>0 or len(y(critique).variables())>0)
    if(x_et_y_reels or x_et_y_avec_parametre): 
        liste.append(["(","x","=",x(critique),";","y","=",y(critique),")",H(critique)])        
show(html("<h5>points critiques</h5>"))
if (len(liste)!=0):
    show(table(liste))
else :
    show("pas de points critiques")
A=point3d((2/3,4/3,f(2/3,4/3)),size=50,color='red',opacity=1)
O=point3d((0,0,f(0,0)),size=50,color='blue',opacity=1)
# graphique
h(x,y,z)=f(x,y)-z
legraphique=implicit_plot3d(h, (x, -1,4), (y, -4, 4), (z, -4, 3),color="green",adaptive=True,mesh=True,region=lambda x,y,z: y<=-1.1 or y>=-0.96)
show("le point critique A est en rouge, et le min O est en bleu")
(legraphique+A+O).show(aspect_ratio = 1, ymin = -3, ymax = 3)

exo 2 : Recherche d'extrema

paramètres généraux
f \(\left( x, y \right) \ {\mapsto} \ {\left(2 \, x^{2} + y^{2}\right)} e^{\left(-x - y\right)}\)
grad f= \(\left[-{\left(2 \, x^{2} + y^{2} - 4 \, x\right)} e^{\left(-x - y\right)}, -{\left(2 \, x^{2} + y^{2} - 2 \, y\right)} e^{\left(-x - y\right)}\right]\)
H= \(\left(\begin{array}{rr} {\left(2 \, x^{2} + y^{2}\right)} e^{\left(-x - y\right)} - 8 \, x e^{\left(-x - y\right)} + 4 \, e^{\left(-x - y\right)} & {\left(2 \, x^{2} + y^{2}\right)} e^{\left(-x - y\right)} - 4 \, x e^{\left(-x - y\right)} - 2 \, y e^{\left(-x - y\right)} \\ {\left(2 \, x^{2} + y^{2}\right)} e^{\left(-x - y\right)} - 4 \, x e^{\left(-x - y\right)} - 2 \, y e^{\left(-x - y\right)} & {\left(2 \, x^{2} + y^{2}\right)} e^{\left(-x - y\right)} - 4 \, y e^{\left(-x - y\right)} + 2 \, e^{\left(-x - y\right)} \end{array}\right)\)
points critiques
( x = \(\frac{2}{3}\) ; y = \(\frac{4}{3}\) ) \(\left(\begin{array}{rr} \frac{4}{3} \, e^{\left(-2\right)} & -\frac{8}{3} \, e^{\left(-2\right)} \\ -\frac{8}{3} \, e^{\left(-2\right)} & -\frac{2}{3} \, e^{\left(-2\right)} \end{array}\right)\)
( x = \(0\) ; y = \(0\) ) \(\left(\begin{array}{rr} 4 & 0 \\ 0 & 2 \end{array}\right)\)
\[\newcommand{\Bold}[1]{\mathbf{#1}}\verb|le|\phantom{\verb!x!}\verb|point|\phantom{\verb!x!}\verb|critique|\phantom{\verb!x!}\verb|A|\phantom{\verb!x!}\verb|est|\phantom{\verb!x!}\verb|en|\phantom{\verb!x!}\verb|rouge,|\phantom{\verb!x!}\verb|et|\phantom{\verb!x!}\verb|le|\phantom{\verb!x!}\verb|min|\phantom{\verb!x!}\verb|O|\phantom{\verb!x!}\verb|est|\phantom{\verb!x!}\verb|en|\phantom{\verb!x!}\verb|bleu|\]
In [65]:
#le adaptative=True semble incompatible avec le region=...
h(x,y)=2*x+exp(y)
eps=0.001
dessin = plot3d(h, (x,-2,2), (y,-2,2),           \
                mesh=True,\
                #region=lambda x,y,z: (abs(x)+abs(y)<=2),\
                plot_points=100,\
                color='orange'\
                )
                #, aspect_ratio=[1,1,1])
dessin=dessin.add_condition(lambda x,y,z: (abs(x)+abs(y)<=2) and x>=0)
#lepoint = point3d((1,2,-3),size=35,color='black',opacity=1)
#lafleche = arrow3d((1,2,-3), (1+3/2,2+4/2,-3), radius=0.1,color="red")
show(html("<h3>exo 3 : une intégrale double</h3>"))
#show(html("bien voir les lignes x=0 et y=0"))
(dessin).show(aspect_ratio = (5,5,1), ymin = -3, ymax = 3)

exo 3 : une intégrale double

In [69]:
#le adaptative=True semble incompatible avec le region=...
h(x,y)=1/(2*x^2+x*y+y^2)
eps=0.001
dessin = plot3d(h, (x,-1,3), (y,-1,3),           \
                mesh=True,\
                #region=lambda x,y,z: (abs(x)+abs(y)<=2),\
                plot_points=100,\
                color='orange'\
                )
                #, aspect_ratio=[1,1,1])
dessin=dessin.add_condition(lambda x,y,z: (3<=x^2+y^2<=9) and 0<=x<=y)
#lepoint = point3d((1,2,-3),size=35,color='black',opacity=1)
#lafleche = arrow3d((1,2,-3), (1+3/2,2+4/2,-3), radius=0.1,color="red")
show(html("<h3>exo 4 : une intégrale double en polaires</h3>"))
#show(html("bien voir les lignes x=0 et y=0"))
(dessin).show(aspect_ratio = (1,1,5), ymin = -3, ymax = 3)

exo 4 : une intégrale double en polaires

In [70]:
texte1 = text("faiblement moteur", (3.5,-1.7),rotation=40,color="black",background_color="white")
texte2 = text("résistant", (0.5,1.7),rotation=220,color="black",background_color="white")
texte3 = text("vraiment moteur", (3.5,1.7),rotation=180-40,color="black",background_color="white")
texte4 = text("faiblement moteur", (0.5,-1.7),rotation=-40,color="black",background_color="white")
chemin = circle ((2, 0), 2, color = "green") 
E(x,y)=((2-2*x)*y,y^3)
(xminn,xmaxx,yminn,ymaxx)=(-0.5,4.5,-2.5,2.5)

demicercle(x)=sqrt(4-(x-2)^2)
eps=0.1
(abs1,abs2,abs3)=(1,3.2,1.8)
fleche2=arrow2d((abs2,demicercle(abs2)),(abs2-eps,demicercle(abs2-eps)),color = "green")
# -------
champ = plot_vector_field(E,(x,xminn,xmaxx),(y,yminn,ymaxx))
tout=champ+chemin+texte1+texte2+fleche2+texte3+texte4
show(html("<h3>exo 5 : Circulation</h3>"))
show(tout)

# tout.save('circulation_1.png', xmin=xminn, xmax=xmaxx, ymin=yminn, ymax=ymaxx)

exo 5 : Circulation

In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [53]:
texte1 = text("kifkif", (3.5,2.7),rotation=130,color="black",background_color="white")
texte2 = text("résistant,", (0.5,2.7),rotation=220,color="black",background_color="white")
demicercle(x)=sqrt(4-(x-2)^2)+1
chemin = plot(demicercle,(0,4),aspect_ratio=1)

E(x,y)=(x^2,y^2)
(xminn,xmaxx,yminn,ymaxx)=(-0.5,4.5,-1.5,3.5)
eps=0.1
(abs1,abs2,abs3)=(1,3.2,1.8)
fleche1=arrow2d((abs1,demicercle(abs1)),(abs1-eps,demicercle(abs1-eps)))
fleche2=arrow2d((abs2,demicercle(abs2)),(abs2-eps,demicercle(abs2-eps)))

# -------
champ = plot_vector_field(E,(x,xminn,xmaxx),(y,yminn,ymaxx))
tout=champ+chemin+texte1+texte2+fleche1+fleche2
show(tout)
tout.save('circulation_2.png', xmin=xminn, xmax=xmaxx, ymin=yminn, ymax=ymaxx)
In [ ]:
 
In [45]:
texte1 = text("moteur", (0.6,1.9),rotation=-30,color="black",background_color="white")
texte2 = text("moteur", (-0.6,1.9),rotation=30,color="black",background_color="white")
demicercle(x)=sqrt(1-(x-0)^2)+1
chemin = plot(demicercle,(-1,1),aspect_ratio=1)

E(x,y)=(y^2,x^2)
(xminn,xmaxx,yminn,ymaxx)=(-1,1,0.5,2.5)
eps=0.001
fleche1=arrow2d((-0.8,demicercle(-0.8)),(-0.8+eps,demicercle(-0.8+eps)))
fleche2=arrow2d((0.8,demicercle(0.8)),(0.8+eps,demicercle(0.8+eps)))

# -------
champ = plot_vector_field(E,(x,xminn,xmaxx),(y,yminn,ymaxx))
tout=champ+chemin+texte1+texte2+fleche1+fleche2
show(tout)
tout.save('circulation_3.png', xmin=xminn, xmax=xmaxx, ymin=yminn, ymax=ymaxx)
In [81]:
texte1 = text("résistant", (2,2.2),rotation=180,color="black",background_color="white")
texte2 = text("résistant", (2,-2.2),rotation=0,color="black",background_color="white")
texte3 = text("neutre", (3.1,-1),rotation=75,color="black",background_color="white")
texte4 = text("neutre", (3.1,1),rotation=105,color="black",background_color="white")
chemin = ellipse((2,0),1,2,fill=False,edgecolor='powderblue')
E(x,y)=(x*y,1)
(xminn,xmaxx,yminn,ymaxx)=(-0.5,4.5,-2.5,2.5)

demicercle(x)=2*sqrt(1-(x-2)^2)
eps=0.05
(abs1,abs2,abs3)=(1.1,2.9,1.8)
fleche1=arrow2d((abs1,demicercle(abs1)),(abs1-eps,demicercle(abs1-eps)),color='powderblue')
fleche2=arrow2d((abs2,demicercle(abs2)),(abs2-eps,demicercle(abs2-eps)),color='powderblue')
# -------
champ = plot_vector_field(E,(x,xminn,xmaxx),(y,yminn,ymaxx))
tout=champ+chemin+texte1+texte2+fleche1+fleche2+texte3+texte4
show(tout)
tout.save('circulation_4.png', xmin=xminn, xmax=xmaxx, ymin=yminn, ymax=ymaxx)
In [16]:
texte1 = text("moteur", (0,-1.2),rotation=0,color="black",background_color="white")
texte2 = text("moteur", (0,1.2),rotation=180,color="black",background_color="white")
texte3 = text("moteur", (1.2,0),rotation=90,color="black",background_color="white")
texte4 = text("moteur", (-1.2,0),rotation=270,color="black",background_color="white")
E(x,y)=((x-y)/(x^2+y^2),(x+y)/(x^2+y^2))
(xminn,xmaxx,yminn,ymaxx)=(-1.5,1.5,-1.5,1.5)
fleches=arrow2d((-0.5,1),(-0.6,1),color='black')
fleches+=arrow2d((0.5,-1),(0.6,-1),color='black')
fleches+=arrow2d((-1,-0.5),(-1,-0.6),color='black')
fleches+=arrow2d((1,0.5),(1,0.6),color='black')


K=polygon([(-1,-1),(-1,1),(1,1),(1,-1)], fill=False)
# -------
champ = plot_vector_field(E,(x,xminn,xmaxx),(y,yminn,ymaxx))
tout=champ+K+texte1+texte2+texte3+texte4+fleches
show(tout)
tout.save('circulation_paradoxe.png', xmin=xminn, xmax=xmaxx, ymin=yminn, ymax=ymaxx)
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]: