/* [wxMaxima batch file version 1] [ DO NOT EDIT BY HAND! ]*/ /* [ Created with wxMaxima version 13.04.2 ] */ /* [wxMaxima: title start ] Práctica 8b. Funciones de varias variables. [wxMaxima: title end ] */ /* [wxMaxima: comment start ] Veremos como hacer derivadas de funciones de varias variables mediante la definición y mediante comandos directos. También veremos la ecuación del plano tangente y como hallar el gradiente de una función en un punto. [wxMaxima: comment end ] */ /* [wxMaxima: section start ] Derivada según un vector. Derivada direccional. [wxMaxima: section end ] */ /* [wxMaxima: comment start ] La derivada de una función según un vector se define mediante un límite. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Como ejemplo, nos planteamos hallar la derivada de la función f(x,y)=x^2+2*y^3 en el punto A=(2,3) según la dirección del vector v=(1,2), para lo cual necesitamos hallar el siguiente límite: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ f(x,y):=x^2+2*y^3; A:[2,3]; v:[1,2]; A+t*v; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ limit( (f(2+1*t,2*t+3)-f(2,3))/t, t, 0); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ej. Halle la derivada de la función g(x,y)=x+cos(x*y) en el punto A=(pi,1) según el vector v=(1,1). Idem según el vector unitario ( 1/sqrt(2), 1/sqrt(2) ). (Sol. 1, 1/sqrt(2) ). [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Ej. Sean f(x,y)=x^2+x*y^2, el punto A=(1,3) y el vector v=(1,-1). Halle la derivada direccional de f en A según la dirección del vector v. (Sol. 5/sqrt(2) ) [wxMaxima: comment end ] */ /* [wxMaxima: section start ] Derivadas parciales. [wxMaxima: section end ] */ /* [wxMaxima: comment start ] Si en una función de dos variable hacemos las derivadas según los vectores (1,0) o (0,1) se obtienen las derivadas parciales respecto a las variables x e y respectivamente. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Estas derivadas parciales pueden hacerse con el comando diff con la sintaxis diff(expresión, variable). [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ f(x,y):=x^2+x*y^7; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ diff(f(x,y), x); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ diff(f(x,y), y); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ej. Considere la función f(x,y)=x+cos(x*y) . Halle la derivada parcial de f con respecto a x. Halle la derivada parcial de f con respecto a y. (Sol. 1-y*sin(x*y), -x*sin(x*y) .) [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Si queremos evaluar las derivadas parciales en un punto, podemos usar el comando define. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ define (fx(x,y), diff(f(x,y), x) ); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ fx(0,1); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ define (fy(x,y), diff(f(x,y), y) ); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ fy(0,1); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ej. Considere gx y gy las parciales de la función g(x,y)=x^4+5*y^3+2*x*y . Halle gx(2,1) y también gy(2,1). (Sol. 34, 19). [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Ej. Dadas f(x)=sin(x), g(x)=cos(x)^2 y z(x,y)=x^2*y*f(x/y)+x*y^2*g(y/x), simplifique la expresión x*zx(x,y)+y*zy(x,y), donde zx y zy son las parciales de z. (Sol. 3*x*y^2*cos(y/x)^2+3*x^2*sin(x/y)*y .) [wxMaxima: comment end ] */ /* [wxMaxima: section start ] Plano tangente. [wxMaxima: section end ] */ /* [wxMaxima: comment start ] Con las derivadas parciales podemos hallar el plano tangente a una función en un punto. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ f(x,y):=exp(-(x^2+y^2)); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ plot3d(f(x,y), [x,-2,2], [y,-2,2]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Definimos las parciales de la función f. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ define(fx(x,y), diff(f(x,y),x) ); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ define(fy(x,y), diff(f(x,y),y) ); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Definimos el punto (a,b) donde vamos a calcular el plano tangente. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ a:0.1; b:0.1; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ya podemos dar la expresión del plano tangente z=P(x,y). [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ P(x,y):=f(a,b)+(x-a)*fx(a,b)+(y-b)*fy(a,b); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Para representar conjuntamente dos funciones debemos poner entre unos corchetes tanto las funciones como los intervalos de x e y. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ plot3d( [ f(x,y),P(x,y), [x,-2,2], [y,-2,2] ] ); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ej. Halle el plano tangente a la gráfica de la función sen(x^2+y^2) en el punto (sqrt(pi), sqrt(pi)/2) y en el punto (sqrt(pi), sqrt(pi)/sqrt(2)). (Sol. z=-sqrt(pi/2)*(y-sqrt(pi)/2)-sqrt(2*pi)*(x-sqrt(pi))-1/sqrt(2), z=-1 .) [wxMaxima: comment end ] */ /* [wxMaxima: section start ] Matriz jacobiana. Vector gradiente. [wxMaxima: section end ] */ /* [wxMaxima: comment start ] La matriz jacobiana y el vector gradiente contienen las derivadas parciales de una función, con la diferencia de que la matriz jacobiana, como su nombre indica, es una matriz y el gradiente es un vector. Para hallar la matriz jacobiana usamos el comando jacobian, con la sintaxis jacobian( [lista de funciones], [variables] ) debemos observar que la función o funciones deben ir entre unos corchetes, aunque sólo haya una función. El resultado es una matriz. Para una única función, el resultado es una matriz fila. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ jacobian( [x^4+5*y^3+2*x*y], [x,y] ); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Podríamos obtener el mismo resultado de una manera más engorrosa, que nos sirve para comprobar que el resultado de jacobian es una matriz formada por derivadas parciales. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ matrix( [ diff(x^4+5*y^3+2*x*y,x) ,diff(x^4+5*y^3+2*x*y,y) ] ); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Si queremos evaluar la matriz jacobiana (o el gradiente) en un punto es conveniente usar el comando define. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ define(j(x,y), jacobian([x^4+5*y^3+2*x*y],[x,y]) ) ; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ j(1,2); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Así, el gradiente de la función en el punto (1,2) es el vector (8,62). Según como vayamos a utilizarlo podemos dejarlo como matriz, o escribirlo como una lista. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ v:[8,62]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ j(1,2)[1]; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ej. Halle el vector gradiente de la función g(x,y)=sqrt(4-(x^2+y^2) en el punto (0,0) y en el punto (1,1). ¿Puede calcularse en el punto (2,0)? ¿y en el (2,2)? (Sol. (0,0), (-1/sqrt(2),-1/sqrt(2)) .) [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Ej. Considere la función h(x,y)=x^2*y+x*y^3. Halle el valor máximo de la derivada direccional en el punto (2,3). ¿En qué dirección se alcanza? (Sol. sqrt(4885), v=( 39/sqrt(4885),58/sqrt(4885) ) .) [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Ej. Usando el vector gradiente de la función g(x,y)=x+cos(x*y) en el punto A=(pi,1). Usando el vector gradiente halle la derivada de g en el punto A según el vector v=(1,1) . (Sol. gradiente=(1,0), Dvg(A)=1 ). [wxMaxima: comment end ] */ /* Maxima can't load/batch files which end with a comment! */ "Created with wxMaxima"$