︠8d6ace16-7753-4be2-b9f7-f3849d46be14s︠ ︡c16972e0-51cc-437f-958d-a4cb4956b76a︡{"done":true} ︠2e2514ee-afa5-43f6-bade-d35960bebf7casi︠ %auto typeset_mode(True, display=False) ︡fadbd46e-af68-45a1-aacd-6a113002d4f7︡{"done":true}︡ ︠48c91ef2-d142-40cd-b09c-319b54708cbf︠ %html
Exemple: On considére la fonction $f(x,y)=(x-1)^2+(y-2)^2$. Parmi les points $(x,y)$ sur le cercle $x^2+y^2=45$, on cherche celui où $f$ atteint son minimum/maximum.
︡7ecfc076-ced6-4fa7-8a52-9918a47de01a︡{"done":true,"html":"Exemple: On considére la fonction $f(x,y)=(x-1)^2+(y-2)^2$. Parmi les points $(x,y)$ sur le cercle $x^2+y^2=45$, on cherche celui où $f$ atteint son minimum/maximum.
"} ︠84a4eecb-ad39-413a-aa78-77508582d0d1si︠ import matplotlib.cm; %typeset_mode True var('u,v') f(x,y)=(x-1)^2+(y-2)^2 r=sqrt(45) ︡0765c144-e004-4255-bac9-8e6dfd7f7e72︡{"html":"Voyons le problème en termes de courbes de niveau et du champ gradient de $f$. Rappelons que $\nabla f(x_0,y_0)$ donne la direction dans laquelle il faut se déplacer à partir de $(x_0,y_0)$ pour avoir la plus forte augmentation dans la valeur de $f$ .
Ci-bas, on trouve les courbes de niveau de $f$, le champ $\nabla f$ et la courbe $x^2+y^2=45$ (en rouge)
Voyons le problème en termes de courbes de niveau et du champ gradient de $f$. Rappelons que $\\nabla f(x_0,y_0)$ donne la direction dans laquelle il faut se déplacer à partir de $(x_0,y_0)$ pour avoir la plus forte augmentation dans la valeur de $f$ .
\nCi-bas, on trouve les courbes de niveau de $f$, le champ $\\nabla f$ et la courbe $x^2+y^2=45$ (en rouge)
La courbe de contrainte est donné par $g(x,y)=45$, où $g(x,y)=x^2+y^2$, c'est donc une courbe de niveau pour la fonction de contrainte $g$. Cette fonction a aussi un champ gradient, $\nabla g$. Dessinons les vecteurs de ce champ, mais seulement ceux qui correspondent aux points sur la courbe.
︡57f7fd8c-4132-44e6-b916-7bf806b11b86︡{"html": "La courbe de contrainte est donné par $g(x,y)=45$, où $g(x,y)=x^2+y^2$, c'est donc une courbe de niveau pour la fonction de contrainte $g$. Cette fonction a aussi un champ gradient, $\\nabla g$. Dessinons les vecteurs de ce champ, mais seulement ceux qui correspondent aux points sur la courbe.
"}︡ ︠dc20b85f-924a-4875-8c96-72537c3cfe40s︠ ︡0fac7225-3a7e-4d40-aaeb-554db346bec3︡{"done":true} ︠63b46f1f-0c75-4f68-8951-d5f2845a45fas︠ Pts=[(r*cos(2*t*pi/20),r*sin(2*t*pi/20)) for t in range(20)]; Pts1=[(1.1*r*cos(2*t*pi/20),1.1*r*sin(2*t*pi/20)) for t in range(20)]; Vecs=[arrow(Pts[j],Pts1[j],color='red', width=1) for j in range(20)]; Champg=sum(Vecs) ︡13038497-c318-47a2-bf1b-e000e718f528︡{"done":true} ︠8ab6aeb0-d85f-43c2-9a7b-5d9262bf7be3s︠ show(Contourf+Cercle+Champf+Champg,aspect_ratio=1, figsize = 8); ︡b3251231-caa3-4115-b58b-1ef425dcd2a5︡{"file":{"filename":"/projects/376921f2-eda3-44fc-b33d-1550746c3549/.sage/temp/compute6-us/17462/tmp_2AeNe_.svg","show":true,"text":null,"uuid":"06d12db1-2097-48a2-987e-2f60265660eb"},"once":false}︡{"done":true}︡ ︠e37cf29e-aef1-4bb5-8314-52e1b5159e9di︠ %htmlConjecture : Les points de maximum / minimum de $f$ sur la courbe $g=45$ sont précisément ceux pour lequels les vecteurs gradient $\nabla f$ et $\nabla g$ sont colinéaires. En d'autres termes, il doit exister $\lambda\in \mathbb{R}$ tel que $$\nabla f = \lambda \nabla g$$
Demandons à SAGE de résoudre les équations qu'on a besoin de résoudre. La fonction $f$ a déjà été définie, mais pas $g$, et nous avons également besoin d'une variable supplémentaire $L$, pour $\lambda$.
Conjecture : Les points de maximum / minimum de $f$ sur la courbe $g=45$ sont précisément ceux pour lequels les vecteurs gradient $\\nabla f$ et $\\nabla g$ sont colinéaires. En d'autres termes, il doit exister $\\lambda\\in \\mathbb{R}$ tel que $$\\nabla f = \\lambda \\nabla g$$
\nDemandons à SAGE de résoudre les équations qu'on a besoin de résoudre. La fonction $f$ a déjà été définie, mais pas $g$, et nous avons également besoin d'une variable supplémentaire $L$, pour $\\lambda$.
Ici, $df$ est le gradient de $f$, c'est donc une paire de fonctions de deux variables (voir plus bas). Ainsi df[0] est la première de ces deux fonctions (il y a des gens qui commencent à compter à 0), c'est à dire $\frac{\partial f}{\partial x}$ puis $df[0](x,y)$ est la première de ces fonctions évaluée en (x,y).
︡20d90448-2121-482f-9f56-67cc2b97bd4f︡{"html": "Ici, $df$ est le gradient de $f$, c'est donc une paire de fonctions de deux variables (voir plus bas). Ainsi df[0] est la première de ces deux fonctions (il y a des gens qui commencent à compter à 0), c'est à dire $\\frac{\\partial f}{\\partial x}$ puis $df[0](x,y)$ est la première de ces fonctions évaluée en (x,y).
"}︡ ︠89c795c7-f0dd-4ade-b418-f6e7c6e0fdbfs︠ dg ︡b2929f8e-b513-4fff-95d1-1eeea6246e12︡ ︠d022f0e8-68b7-483b-a8c1-7fd947eaa9f2s︠ dg[0] ︡ef984dd4-156a-4c26-98c8-791505efc346︡{"stdout":"(x, y) |--> 2*x\n"}︡{"done":true} ︠a52c2878-844e-42c2-ae8a-6fe1b6c9e6dcs︠ dg[0](pi,-pi) ︡53bd115b-81d7-4d13-a83f-94c81fe2a633︡{"stdout":"2*pi\n"}︡{"done":true} ︠2dd90a98-b78c-4edb-8a86-1572e1773f97︠