Page 2 sur 2

Re: Tangentes et dérivées partielles

Publié : mercredi 05 janvier 2011, 22:21
par maurice
Variation sur le même thème :

Code : Tout sélectionner

import graph3;

size(12cm,0);

currentprojection=orthographic(
camera=(6.70544201648284,-0.775280645147703,1.90994169441184),
up=(-0.00381197716192466,0.00208518736562723,0.0142295375229004),
target=(-8.88178419700125e-16,-8.88178419700125e-16,-8.88178419700125e-16),
zoom=1);
//currentprojection=orthographic(1,2,1);
//currentlight=(1,-1,0.5);

pair a=(-2.5,-2);
pair b=(2.5,2);

//Definition de la surface

real f(pair z) {
        real r=z.x^2+z.y^2;
        if (r!=0)  return z.x*z.y/r;
                 else return 0;
                        }
surface s=surface(f,a,b,25,25,Spline);

//Intersection avec y=cy
real cy=0;
real x1(real t) {return t;}
real y1(real t) {return cy;}
real z1(real t) {pair z=(t,cy); return f(z);}

path3 inter1=graph(x1,y1,z1,a.x,b.x);

//Intersection avec x=cx
real cx=0;
real x2(real t) {return cx;}
real y2(real t) {return t;}
real z2(real t) {pair z=(cx,t); return f(z);}

path3 inter2=graph(x2,y2,z2,a.y,b.y);

//intersection des deux chemins
triple inter=intersectionpoint(inter1, inter2);

//Derivées partielles
real dx=0.1^10, dy=dx;

pair interplusdx=(inter.x+dx,inter.y);
//pair interx=project(inter,Z);
pair interx=(inter.x,inter.y);
real partialx=(f(interplusdx)-f(interx))/dx;
path3 tgx=inter--(inter.x+1,inter.y,inter.z+partialx);

pair interplusdy=(inter.x,inter.y+dy);
pair intery=(inter.x,inter.y);
real partialy=(f(interplusdy)-f(intery))/dy;
real nor=sqrt(inter.x^2+(inter.y+1)^2+(inter.z+partialy)^2);
path3 tgy=inter--(inter.x,inter.y+1,inter.z+partialy)/nor;


// Eléments graphiques
draw(s,lightgray+opacity(0.8),lightgray+thick());
draw(inter1,blue);
draw(inter2,red);
dot(inter, 5bp+green);
axes3("$x$", "$y$", "$z$",
	min=(a.x,a.y,0),
	max=(b.x,b.y,1.25),
	Arrow3);
draw(tgx,green,Arrow3);
draw(tgy,green,Arrow3);


Maurice

Re: Tangentes et dérivées partielles

Publié : mercredi 05 janvier 2011, 22:29
par guiguiche
La dérivée partielle par rapport à y est étrange, non ?

Re: Tangentes et dérivées partielles

Publié : mercredi 05 janvier 2011, 22:40
par OG
Non continue en (0,0), alors les dérivées partielles mieux vaut éviter non ?

O.G.

Re: Tangentes et dérivées partielles

Publié : mercredi 05 janvier 2011, 22:45
par guiguiche
Certes mais l'objectif est de montrer qu'avec plusieurs variables, l'existence des dérivées partielles n'implique pas la continuité et donc que la notion de classe C^1 est la notion essentielle.

Re: Tangentes et dérivées partielles

Publié : mercredi 05 janvier 2011, 22:48
par maurice
oui, elle a été normalisée. Le nombre obtenu pour partialy est 435727037.747794
La norme est égale sur la figure à 1.
Comme je n'ai pas d'idée sur le résultat théorique, je ne peux rien dire de plus.
C'est peut être ce que disait OG tout à l'heure.

maurice

Edit : pas vu les 2 messages précédents

Edit2 : Il suffit de diminuer les dx et dy à $0.1 \times 10^{-15}$ par exemple pour que ca marche bien.

code définitif :

Code : Tout sélectionner

import graph3;

size(12cm,0);

currentprojection=orthographic(
camera=(6.70544201648284,-0.775280645147703,1.90994169441184),
up=(-0.00381197716192466,0.00208518736562723,0.0142295375229004),
target=(-8.88178419700125e-16,-8.88178419700125e-16,-8.88178419700125e-16),
zoom=1);
//currentprojection=orthographic(1,2,-2);
//currentlight=(1,-1,0.5);

pair a=(-2.5,-2);
pair b=(2.5,2);

//Definition de la surface

real f(pair z) {
        real r=z.x^2+z.y^2;
        if (r!=0)  return z.x*z.y/r;
                 else return 0;
                        }
surface s=surface(f,a,b,72,72,Spline);

//Intersection avec y=cy
real cy=0;
real x1(real t) {return t;}
real y1(real t) {return cy;}
real z1(real t) {pair z=(t,cy); return f(z);}

path3 inter1=graph(x1,y1,z1,a.x,b.x);

//Intersection avec x=cx
real cx=0;
real x2(real t) {return cx;}
real y2(real t) {return t;}
real z2(real t) {pair z=(cx,t); return f(z);}

path3 inter2=graph(x2,y2,z2,a.y,b.y);

//intersection des deux chemins
triple inter=intersectionpoint(inter1, inter2);

//Derivées partielles
real dx=0.1^1, dy=dx;

pair interplusdx=(inter.x+dx,inter.y);
pair interx=(inter.x,inter.y);
real partialx=(f(interplusdx)-f(interx))/dx;
path3 tgx=inter--(inter.x+1,inter.y,inter.z+partialx);

pair interplusdy=(inter.x,inter.y+dy);
pair intery=(inter.x,inter.y);
real partialy=(f(interplusdy)-f(intery))/dy;
path3 tgy=inter--(inter.x,inter.y+1,inter.z+partialy);


// Eléments graphiques
draw(s,lightyellow+opacity(0.75), meshpen=brown+thick(),nolight);
draw(inter1,blue+linewidth(0.5pt));
draw(inter2,red+linewidth(0.5pt));
dot(inter, 5bp+green);
axes3("$x$", "$y$", "$z$",
	min=(a.x,a.y,0),
	max=(b.x,b.y,1.25),
	Arrow3);
draw(tgx,green+linewidth(1pt),Arrow3);
draw(tgy,green+linewidth(1pt),Arrow3);

Re: Tangentes et dérivées partielles

Publié : mercredi 05 janvier 2011, 22:52
par OG
guiguiche a écrit :Certes mais l'objectif est de montrer qu'avec plusieurs variables, l'existence des dérivées partielles n'implique pas la continuité et donc que la notion de classe C^1 est la notion essentielle.
Ok j'avais oublié la pédagogie.

O.G.

Re: Tangentes et dérivées partielles

Publié : mercredi 05 janvier 2011, 23:01
par guiguiche
maurice a écrit :oui, elle a été normalisée. Le nombre obtenu pour partialy est 435727037.747794
La norme est égale sur la figure à 1.
Comme je n'ai pas d'idée sur le résultat théorique, je ne peux rien dire de plus.
C'est peut être ce que disait OG tout à l'heure.
La dérivée partielle vaut 0 comme celle en x qui est correcte sur le graphique, la flèche devrait être horizontale dans la direction de l'axe y. Sûrement un artefact de la non continuité.

Re: Tangentes et dérivées partielles

Publié : mercredi 05 janvier 2011, 23:14
par guiguiche
En tout cas, merci pour le boulot les gars, ça me fait découvrir pas mal de choses.

Re: Tangentes et dérivées partielles

Publié : mercredi 05 janvier 2011, 23:46
par GMaths
Image

Code : Tout sélectionner

import graph3;
import contour;
size(10cm);
defaultrender.merge=false;

currentprojection=orthographic((-8,8,10),up=Z);
currentlight=White;

real f(real x, real y) {
if(x==0 && y==0) return 0;
else return x*y/(x^2+y^2);
}

triple F(pair t) {
  real theta=t.x;
  real r=t.y;
  real x=r*cos(theta);
  real y=r*sin(theta);
  real z=f(x,y);
  return (x,y,z);
}
real a=-1.8, b=-1; // P1 : x=a    P2 : x=b

triple pA=(a,b,f(a,b));
dot(pA,2bp+green);

real thmin=0, thmax=2pi, rmin=0, rmax=4;
surface s=surface(F,(thmin,rmin),(thmax,rmax),144,144,Spline);

surface p1=surface(plane(8X,4Z,(0,pA.y,-2)-4X)),
        p2=surface(plane(8Y,4Z,(pA.x,0,-2)-4Y));

draw(s,paleblue);
draw(p1,.6red,nolight);
draw(p2,.6green+opacity(.7),nolight);

real gx(pair z) {return z.x-a;}
guide3[][] para1=lift(f,contour(gx,(-4,-4),(4,4),new real[]{-1,-.5,0,.5,1,1.5,2,2.5}));
draw(para1,.7bp+green);
real gy(pair z) {return z.y-b;}
guide3[][] para2=lift(f,contour(gy,(-4,-4),(4,4),new real[]{-1,-.5,0,.5,1,1.5,2,2.5}));
draw(para2,.7bp+red);

draw(pA--pA-2*dir(para1[0][0],intersections(para1[0][0],p1)[0][0]),1bp+blue,Arrow3());
draw(pA--pA+2*dir(para2[0][0],intersections(para2[0][0],p2)[0][0]),1bp+blue,Arrow3());

limits(-5X,5X+5Y+4Z);
xaxis3(Label("$x$",1),Arrow3);
yaxis3(Label("$y$",1),Arrow3);
zaxis3(Label("$z$",1),Arrow3);

Re: Tangentes et dérivées partielles

Publié : jeudi 06 janvier 2011, 09:31
par guiguiche
C'est superbe ça !

Re: Tangentes et dérivées partielles

Publié : samedi 08 janvier 2011, 22:16
par guiguiche
Ma première contribution avec une dérivée directionnelle (il manque encore la trace de l'intersection avec le plan verticale dans la direction du vecteur U.
{"png": {"width": 378, "height": 140}}
Edit : bizarre, je n'ai pas la même image à la compilation chez moi surtout concernant l'opacité.

Re: Tangentes et dérivées partielles

Publié : dimanche 09 janvier 2011, 10:16
par chellier
guiguiche a écrit :Edit : bizarre, je n'ai pas la même image à la compilation chez moi surtout concernant l'opacité.
Il me semble que pour les besoins du forum, le code est compilé avec l'option -render=0, MB en dira surement plus.
Je pense que c'est pour ça que GMaths a mis les images de ses figures dans les posts précédents.

Christophe

Re: Tangentes et dérivées partielles

Publié : dimanche 09 janvier 2011, 11:44
par MB
chellier a écrit :
guiguiche a écrit :Edit : bizarre, je n'ai pas la même image à la compilation chez moi surtout concernant l'opacité.
Il me semble que pour les besoins du forum, le code est compilé avec l'option -render=0, MB en dira surement plus.
Non, pour l'instant cette option de compilation n'est pas utilisée (mais il possible que cette option soit activée un de ces jours).
Par contre, il faut voir que le fichier pdf est transformé en fichier png : les différences au niveau de l'opacité peuvent éventuellement provenir de là.

Re: Tangentes et dérivées partielles

Publié : lundi 10 janvier 2011, 17:49
par guiguiche
Voir ici quelques améliorations

Re: Tangentes et dérivées partielles

Publié : lundi 10 janvier 2011, 18:10
par GMaths
guiguiche a écrit :Voir ici quelques améliorations
... même conseil que dans l'autre sujet :

Le remplacement de Spline par monotonic devrait réduire le problème des deux pointes.

Et tu peux augmenter le 36,36 (chez moi 200,200 passe) jusqu'à ce que ton pc te dise : out of memory... ou jusqu'à ce que la lenteur de déplacement de la figure t'énerve.

Il faudrait que je revois les exemples de ma galerie... car on peut aller plus loin qu'avant pour la valeur du paramètre n, (depuis les améliorations de la version ??), avant d'avoir un out of memory.

Re: Tangentes et dérivées partielles

Publié : lundi 10 janvier 2011, 18:42
par guiguiche
J'ai planté ma machine avec 200,200 !

Re: Tangentes et dérivées partielles

Publié : lundi 10 janvier 2011, 19:00
par GMaths
guiguiche a écrit :J'ai planté ma machine avec 200,200 !
Un "out of memory" logiquement, quand on demande plus que ce que le pc peut... mais pas de plantage.
Avec 250, 250, monotonic, cela passe chez moi et cela donne cela, pour la partie délicate :

Image

Re: Tangentes et dérivées partielles

Publié : lundi 10 janvier 2011, 19:03
par guiguiche
Disons que la machine m'a affiché un message totalement incompréhensible, que le processus asy.exe ne pouvait pas être terminé et que les autres applications ne réagissaient plus dans un temps raisonnable donc j'ai redémarré mon pc.

Re: Tangentes et dérivées partielles

Publié : lundi 10 janvier 2011, 19:06
par guiguiche
J'ai mis à jour la 2ème image avec plan tangent pour 100,100 (c'est suffisant compte tenu de l'angle de vue choisi).