Tangentes et dérivées partielles

Tout ce qui concerne l'utilisation ou l'installation d'Asymptote.

Modérateur: gdm_asy

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

Tangentes et dérivées partielles

Messagepar guiguiche » Mardi 04 Janvier 2011, 23:21

Utilisateurs réguliers d'Asymptote, vous avez une occasion (unique?) de me convaincre que ce logiciel est bien adapté à la construction de figures et relativement simple d'emploi !

Dans le cadre de mon chapitre sur les dérivées partielles, je voudrais illustrer la notion en ajoutant à l'image que j'ai mise (créée avec K3DSurf) les tangentes dans la direction de x et dans la direction de y au point d'intersection des plans (quitte à avoir davantage de transparence et un autre angle de vue puisque j'ai fait ça à l'impro avec ce logiciel que je n'utilise quasiment jamais).
Pas d'aide par MP : les questions sont publiques, les réponses aussi.
Tu as apprécié l'aide qui t'a été fournie ? Alors n'hésite pas à rendre la pareille à quelqu'un d'autre.
Un peu d'autopromotion.
guiguiche
Modérateur
 
Messages: 8067
Inscription: Vendredi 06 Janvier 2006, 15:32
Localisation: Le Mans
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: Tangentes et dérivées partielles

Messagepar maurice » Mercredi 05 Janvier 2011, 12:17

Bonjour, aussi simple qu'un calcul de dérivée partielle (ou presque) :

73c91962df706a7345dbc6972e4bfa0a.png

Code: Tout sélectionner
import graph3;

size(12cm,0);

currentprojection=orthographic(
camera=(10.1487211771801,-12.653706254973,5.59072031801976),
up=(-0.00971639011946876,0.000311460138066286,0.0183429061099402),
target=(8.88178419700125e-16,-1.77635683940025e-15,0),
zoom=1);
//currentprojection=orthographic(1,2,1);
//currentlight=(1,-1,0.5);

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

//Definition de la surface

real f(pair z) {return abs(z)^2;}
surface s=surface(f,a,b,Spline);

//Intersection avec y=cy
real cy=-1;
real x1(real t) {return t;}
real y1(real t) {return cy;}
real z1(real t) {return t^2+cy^2;}

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

//Intersection avec x=0
real cx=0;
real x2(real t) {return cx;}
real y2(real t) {return t;}
real z2(real t) {return cx^2+t^2;}

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=(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,gray+opacity(0.5));
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,f(b)),
Arrow3);
draw(tgx,green,Arrow3);
draw(tgy,green,Arrow3);


Je ne sais pas si c'est ce que tu voulais.
Je ne sais pas non plus si le code est optimal. il y a surement des améliorations à apporter.

Maurice

PS : Pour en revenir à ce sujet, est ce que
Code: Tout sélectionner
project(inter)
aurait pu servir ici à la place de
Code: Tout sélectionner
pair interx=(inter.x,inter.y);

Si oui comment ?
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
maurice
Méga-utilisateur
 
Messages: 399
Inscription: Jeudi 25 Mars 2010, 13:49
Statut actuel: Actif et salarié | Enseignant

Re: Tangentes et dérivées partielles

Messagepar GMaths » Mercredi 05 Janvier 2011, 13:06

guiguiche a écrit:Utilisateurs réguliers d'Asymptote, vous avez une occasion (unique?) de me convaincre que ce logiciel est bien adapté à la construction de figures et relativement simple d'emploi !

Houla... bon bein alors, je vais essayer de trouver du temps cet après-midi pour plancher sur le sujet... et tenter de faire aussi une proposition. Simple ? On verra... je vais essayer de faire plus simple que Maurice en tout cas. ;-)
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Tangentes et dérivées partielles

Messagepar guiguiche » Mercredi 05 Janvier 2011, 13:34

maurice a écrit:Bonjour, aussi simple qu'un calcul de dérivée partielle (ou presque)

Quand je regarde ce code, le mot simple n'est pas celui qui me vient en premier à l'esprit :mrgreen:
Disons qu'étant totalement néophyte en langage Asymptote (et en C), je ne sais pas quels sont les paramètres à modifier pour obtenir des choses un peu différentes en moins de 5 minutes.

maurice a écrit:Je ne sais pas si c'est ce que tu voulais.

Ça ressemble à ce que j'espérais. Toutefois, 2 petites choses me chagrinent :
- la trace de l'intersection avec le plan y=-1 est la même qu'elle soit en avant ou en arrière de la figure
- la tangente en y devrait être positive il me semble (arf non, j'en étais encore avec ma valeur positive de y sur mon graphique)
En tout cas merci pour cette proposition de code.
Pas d'aide par MP : les questions sont publiques, les réponses aussi.
Tu as apprécié l'aide qui t'a été fournie ? Alors n'hésite pas à rendre la pareille à quelqu'un d'autre.
Un peu d'autopromotion.
guiguiche
Modérateur
 
Messages: 8067
Inscription: Vendredi 06 Janvier 2006, 15:32
Localisation: Le Mans
Statut actuel: Actif et salarié | Enseignant

Re: Tangentes et dérivées partielles

Messagepar maurice » Mercredi 05 Janvier 2011, 13:51

Bonjour,

Pour changer les équations de plans parallèles aux axes de coordonnées il faut juste changer les paramètres cx et cy.
Puis éventuellement choisir un bon angle de vue avec la sortie OpenGL (avec les options -V -render=4 puis la touche (c)).
Voici ce que donne cx=xy=1

4fca0bed58e57468d700c8cdc022828b.png

Code: Tout sélectionner
import graph3;

size(8cm,0);

currentprojection=orthographic(
camera=(16.3503219777234,5.08070557597688,1.10807730598065),
up=(0.000489678852042709,-0.00569298978467105,0.0188778528748774),
target=(1.77635683940025e-15,0,-1.77635683940025e-15),
zoom=1);
//currentprojection=orthographic(1,2,1);
//currentlight=(1,-1,0.5);

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

//Definition de la surface

real f(pair z) {return abs(z)^2;}
surface s=surface(f,a,b,Spline);

//Intersection avec y=cy
real cy=1;
real x1(real t) {return t;}
real y1(real t) {return cy;}
real z1(real t) {return t^2+cy^2;}

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

//Intersection avec x=0
real cx=1;
real x2(real t) {return cx;}
real y2(real t) {return t;}
real z2(real t) {return cx^2+t^2;}

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;
path3 tgy=inter--(inter.x,inter.y+1,inter.z+partialy);


// Eléments graphiques
draw(s,gray+opacity(0.5));
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,f(b)),
Arrow3);
draw(tgx,green,Arrow3);
draw(tgy,green,Arrow3);


Pour la surface, changer la ligne 18 :

Code: Tout sélectionner
real f(pair z) {return abs(z)^2;}


si il n'y pas de points d'intersection entre les deux chemins, il faut agrandir la boite an augmentant les valeurs dans (lignes 13 et 14) :
Code: Tout sélectionner
pair a=(-2,-2);
pair b=(2,2);


Pour les pointillés il va falloir faire appel à un us spécialiste que moi.

Maurice

PS : à tester avec d'autres surfaces pour voir si le calcul des dérivées partielles se passe bien
Dernière édition par maurice le Mercredi 05 Janvier 2011, 13:53, édité 1 fois.
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
maurice
Méga-utilisateur
 
Messages: 399
Inscription: Jeudi 25 Mars 2010, 13:49
Statut actuel: Actif et salarié | Enseignant

Re: Tangentes et dérivées partielles

Messagepar GMaths » Mercredi 05 Janvier 2011, 13:52

Code: Tout sélectionner
import graph3;
size(10cm);

currentprojection=orthographic((15,10,5),up=Z);
currentlight=light(5,2,0);

real f(real x, real y) {return x^2+y^2;}
real dfdx(real x, real y) {return 2*x;}
real dfdy(real x, real y) {return 2*y;}

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);
}
triple pA=(1,2,f(1,2));
dot(pA,2bp+green);

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

surface p1=surface(plane(8X,8Z,pA-5X-4Z)),
        p2=surface(plane(8Y,8Z,pA-6Y-4Z));

draw(s,blue);
draw(p1,red+opacity(.9));
draw(p2,green+opacity(.9));
real h=1;
draw(pA--pA+(h,0,dfdx(pA.x,0)*h),paleblue,Arrow3());
draw(pA--pA+(0,h,dfdy(0,pA.y)*h),paleblue,Arrow3());

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


Image
Dernière édition par GMaths le Mercredi 05 Janvier 2011, 14:30, édité 1 fois.
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Tangentes et dérivées partielles

Messagepar GMaths » Mercredi 05 Janvier 2011, 13:56

Une de mes tangentes semble incorrecte donc à revoir ... mais il faut déjà voir, si ce type de figure convient.
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Tangentes et dérivées partielles

Messagepar guiguiche » Mercredi 05 Janvier 2011, 14:12

GMaths a écrit:Une de mes tangentes semble incorrecte donc à revoir ... mais il faut déjà voir, si ce type de figure convient.

Effectivement, on dirait bien qu'une tangente est fausse, pourtant, tu as bien "triché" en mettant dans le code les expressions des dérivées partielles.
La difficulté principale d'interprétation de ta figure est que les deux plans ne sont pas tronqués à la même hauteur que le paraboloïde donc la logique des couleurs est suspecte au premier regard.
Merci pour cette autre proposition.
Pas d'aide par MP : les questions sont publiques, les réponses aussi.
Tu as apprécié l'aide qui t'a été fournie ? Alors n'hésite pas à rendre la pareille à quelqu'un d'autre.
Un peu d'autopromotion.
guiguiche
Modérateur
 
Messages: 8067
Inscription: Vendredi 06 Janvier 2006, 15:32
Localisation: Le Mans
Statut actuel: Actif et salarié | Enseignant

Re: Tangentes et dérivées partielles

Messagepar GMaths » Mercredi 05 Janvier 2011, 14:31

GMaths a écrit:Une de mes tangentes semble incorrecte donc à revoir ... mais il faut déjà voir, si ce type de figure convient.

La fatigue : voilà ce que c'est que de se coucher à 3h30 quand on se lève à 6h30.

Erreur grossière rectifiée.

guiguiche a écrit:pourtant, tu as bien "triché" en mettant dans le code les expressions des dérivées partielles.

Comme tu aspirais à du code simple, cela m'a semblé le plus simple. ;-)

guiguiche a écrit:La difficulté principale d'interprétation de ta figure est que...

J'ai essayé d'améliorer un peu les choses.
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Tangentes et dérivées partielles

Messagepar guiguiche » Mercredi 05 Janvier 2011, 15:10

GMaths a écrit:Comme tu aspirais à du code simple, cela m'a semblé le plus simple. ;-)

Certes oui et ton code y contribue (surtout après le premier code et les explications de maurice qui ont dégrossi les choses).

GMaths a écrit:
guiguiche a écrit:La difficulté principale d'interprétation de ta figure est que...

J'ai essayé d'améliorer un peu les choses.

C'est bien sympa cette figure avec le passage en cylindrique pour éviter les "coins" et elle est, à mon goût, plus lisible que la première.

Je commence à voir la logique de construction des éléments graphiques. Par contre, je n'ai pas compris les 8X, -5X-4Z, ... dans :
Code: Tout sélectionner
surface p1=surface(plane(8X,8Z,pA-5X-4Z)),
        p2=surface(plane(8Y,8Z,pA-6Y-4Z));
Pas d'aide par MP : les questions sont publiques, les réponses aussi.
Tu as apprécié l'aide qui t'a été fournie ? Alors n'hésite pas à rendre la pareille à quelqu'un d'autre.
Un peu d'autopromotion.
guiguiche
Modérateur
 
Messages: 8067
Inscription: Vendredi 06 Janvier 2006, 15:32
Localisation: Le Mans
Statut actuel: Actif et salarié | Enseignant

A

Messagepar GMaths » Mercredi 05 Janvier 2011, 15:16

guiguiche a écrit:Par contre, je n'ai pas compris les 8X, -5X-4Z, ... dans :
Code: Tout sélectionner
surface p1=surface(plane(8X,8Z,pA-5X-4Z)),
        p2=surface(plane(8Y,8Z,pA-6Y-4Z));

Voir ici : http://marris.org/asymptote/Positions_relatives/index.html pour comprendre plane : il faut fournir deux vecteurs et un point.
  • pA-6Y-4Z, c'est l'image de pA par la translation de vecteur $\vec{u}(0;-6;-4)$
  • 8Y est le vecteur $\vec{v_1}(0;8;0)$
  • 8Z est le vecteur $\vec{v_2}(0;0;8)$
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Tangentes et dérivées partielles

Messagepar guiguiche » Mercredi 05 Janvier 2011, 15:19

@maurice

J'ai mis du temps à comprendre pourquoi ton :
Code: Tout sélectionner
real f(pair z) {return abs(z)^2;}

calculait x^2+y^2 :roll: (le temps que je retienne que "pair" désigne un couple)

maurice a écrit:PS : à tester avec d'autres surfaces pour voir si le calcul des dérivées partielles se passe bien

Oui, mais il va déjà falloir que je configure convenablement notepad++, notamment la coloration syntaxique (malgré les nombreux renvois de GIYF sur le forum, je ne m'en sors pas pour le moment).
Pas d'aide par MP : les questions sont publiques, les réponses aussi.
Tu as apprécié l'aide qui t'a été fournie ? Alors n'hésite pas à rendre la pareille à quelqu'un d'autre.
Un peu d'autopromotion.
guiguiche
Modérateur
 
Messages: 8067
Inscription: Vendredi 06 Janvier 2006, 15:32
Localisation: Le Mans
Statut actuel: Actif et salarié | Enseignant

Re: Tangentes et dérivées partielles

Messagepar GMaths » Mercredi 05 Janvier 2011, 15:28

guiguiche a écrit:Oui, mais il va déjà falloir que je configure convenablement notepad++, notamment la coloration syntaxique


N'est-ce pas vite réglé avec l'export import ? Il suffit de demander à quelqu'un, non ?

2011-01-05_152642.png
2011-01-05_152642.png (27.12 Kio) Vu 774 fois



----------------

Edition du 29/12/11 : Tutoriel sur Notepad++, l'éditeur qu'il faut sous Windows pour éditer, colorer et compiler du code Asymptote
Dernière édition par GMaths le Jeudi 29 Décembre 2011, 15:23, édité 1 fois.
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Tangentes et dérivées partielles

Messagepar guiguiche » Mercredi 05 Janvier 2011, 15:47

J'ai déjà regardé dans ce menu : pas d'asy par défaut et quand je mets asy dans la case puis clique sur import, je ne vois pas bien ce que je peux choisir (pas même dans le dossier asymptote) !
Pas d'aide par MP : les questions sont publiques, les réponses aussi.
Tu as apprécié l'aide qui t'a été fournie ? Alors n'hésite pas à rendre la pareille à quelqu'un d'autre.
Un peu d'autopromotion.
guiguiche
Modérateur
 
Messages: 8067
Inscription: Vendredi 06 Janvier 2006, 15:32
Localisation: Le Mans
Statut actuel: Actif et salarié | Enseignant

Re: Tangentes et dérivées partielles

Messagepar GMaths » Mercredi 05 Janvier 2011, 15:50

asy.zip
(7.14 Kio) Téléchargé 77 fois


;-)
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Tangentes et dérivées partielles

Messagepar guiguiche » Mercredi 05 Janvier 2011, 15:58

C'est sûr que c'est tout de suite mieux avec le bon fichier xml :D
Merci.
Pas d'aide par MP : les questions sont publiques, les réponses aussi.
Tu as apprécié l'aide qui t'a été fournie ? Alors n'hésite pas à rendre la pareille à quelqu'un d'autre.
Un peu d'autopromotion.
guiguiche
Modérateur
 
Messages: 8067
Inscription: Vendredi 06 Janvier 2006, 15:32
Localisation: Le Mans
Statut actuel: Actif et salarié | Enseignant

Re: Tangentes et dérivées partielles

Messagepar maurice » Mercredi 05 Janvier 2011, 16:22

guiguiche a écrit:@maurice

J'ai mis du temps à comprendre pourquoi ton :
Code: Tout sélectionner
real f(pair z) {return abs(z)^2;}

calculait x^2+y^2 :roll: (le temps que je retienne que "pair" désigne un couple)


Pardon, d'une manière générale, pair désigne un couple de réels et plus précisément un nombre complexe, triple un triplet de réels.
Si z est de type z, z.x est son abscisse, z.y est son ordonnée (pour un triple a, il y a a.x, a.y et a.z)
Le produit de deux pairs correspond a la multiplication complexe, abs (z) est le module de z.

maurice a écrit:PS : à tester avec d'autres surfaces pour voir si le calcul des dérivées partielles se passe bien


8503955fb717260644a13cbde8f6402d.png

Code: Tout sélectionner
import graph3;

size(12cm,0);

currentprojection=orthographic(
camera=(16.3503219777234,5.08070557597688,1.10807730598065),
up=(0.000489678852042709,-0.00569298978467105,0.0188778528748774),
target=(1.77635683940025e-15,0,-1.77635683940025e-15),
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=2pi*(z.x^2+z.y^2);
if (r!=0) return sin(r)/r;
else return 1;
}
surface s=surface(f,a,b,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;
path3 tgy=inter--(inter.x,inter.y+1,inter.z+partialy);


// Eléments graphiques
draw(s,gray+opacity(0.5));
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);


Ca à l'air de marcher.
Le premier code a été un peu modifié (intersection des plans et de la surface).
Moyennant des petites modif, ça pourrait aller dans pas mal de cas.

Maurice

Edit 1 : en fait ca ne marche pas, les chemins ne collent pas à la surface.
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
maurice
Méga-utilisateur
 
Messages: 399
Inscription: Jeudi 25 Mars 2010, 13:49
Statut actuel: Actif et salarié | Enseignant

Re: Tangentes et dérivées partielles

Messagepar guiguiche » Mercredi 05 Janvier 2011, 16:32

Et comment contourne-t-on le problème d'une division par 0, par exemple f(x,y)=x*y/(x^2+y^2), sachant qu'en plus je voudrais ajouter f(0,0)=0 et, bien sûr, représenter les dérivées partielles en (0,0) ?

Edit : je viens de voir une possibilité sur ta figure, maurice, en ce qui concerne la division par 0
Pas d'aide par MP : les questions sont publiques, les réponses aussi.
Tu as apprécié l'aide qui t'a été fournie ? Alors n'hésite pas à rendre la pareille à quelqu'un d'autre.
Un peu d'autopromotion.
guiguiche
Modérateur
 
Messages: 8067
Inscription: Vendredi 06 Janvier 2006, 15:32
Localisation: Le Mans
Statut actuel: Actif et salarié | Enseignant

Re: Tangentes et dérivées partielles

Messagepar OG » Mercredi 05 Janvier 2011, 18:10

Hy

Pour ces questions de calcul de dérivée, si on a l'expression alors il ne faut pas
s'en priver. Les calculs approchés réservent parfois des surprises, alors pourquoi
se compliquer la vie ?

O.G.
OG
Modérateur
 
Messages: 2277
Inscription: Lundi 12 Mars 2007, 11:20
Localisation: Rouen
Statut actuel: Actif et salarié | Maître de conférence

Re: Tangentes et dérivées partielles

Messagepar GMaths » Mercredi 05 Janvier 2011, 19:06

Une version sans les dérivées partielles.

On peut changer a et b.

Je n'ai pas essayé de changement de fonction f.

Code: Tout sélectionner
import graph3;
import contour;
size(10cm);

currentprojection=orthographic((15,10,5),up=Z);
currentlight=light(5,2,0);

real f(real x, real y) {return 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=2, b=-.5; // 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=3;
surface s=surface(F,(thmin,rmin),(thmax,rmax),36,36,Spline);

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

draw(s,blue);
draw(p1,red+opacity(.9));
draw(p2,green+opacity(.9));

real h=10; // hauteur des paraboles

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

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

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


Image


Edition :

Si on veut changer f, il faudra faire des modifications.

Un exemple :

Code: Tout sélectionner
import graph3;
import contour;
size(10cm);

currentprojection=orthographic((8,5,15),up=Z);
currentlight=light(5,2,3);

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=.5, b=2; // 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),72,72,Spline);

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

draw(s,blue,light(0,0,10));
draw(p1,red+opacity(.9));
draw(p2,green+opacity(.9));

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

draw(pA--pA-3*dir(para1,intersections(para1,p1)[0][0]),paleblue,Arrow3());
draw(pA--pA+3*dir(para2,intersections(para2,p2)[0][0]),paleblue,Arrow3());

limits(O,4X+5Y+3Z);
xaxis3(Label("$x$",1),Arrow3);
yaxis3(Label("$y$",1),Arrow3);
zaxis3(Label("$z$",1),Arrow3);
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Suivante

Retourner vers Asymptote

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité