Universidad Diego Portales Facultad de Ingeniería. Instituto de Ciencias Básicas Asignatura: Cálculo III Laboratorio N 10, Operaciones diferenciales. Gradiente, divergencia y rotacional. Introducción. n El gradiente es una operación que se aplica sobre una función real f : R R y su resultado es una función vectorial (campo vectorial) cuyos componentes son las derivadas parciales de la función f. En particular para funciones f : R R tenemos que: f f f f ( x, y, z) grad ( f ) =,,. x y z n n La divergencia es una operación que se aplica sobre una función vectorial F : R R y su resultado es una función real formada por la suma de las derivadas parciales: n Fi F div( F) =. i= 1 dxi El rotacional es una operación que se aplica sobre una función vectorial y el resultado es otra función vectorial. En particular, para funciones F : R R tenemos: iˆ ˆj kˆ F F rot ( ) ˆ F F 1 ˆ F F F F = = i j 1 kˆ + +. x y z y z z x x y F1 F F Las funciones vectoriales F, tales que F = 0 se denominan campos potenciales o conservativos. Como se verá en el ejercicio resuelto (a), deberá existir una función real f, que habitualmente se le denomina potencial escalar, tal que F = f. Un campo de divergencia nula se denomina campo solenoidal. Ejemplos Resueltos: 1. Defina funciones de usuario para calcular las operaciones diferenciales básicas, es decir para el gradiente, la divergencia y el rotacional.. Denominamos grad a la función de usuario que permite calcular el gradiente de funciones f : R R: Define library\grad(a,b,c,e)=[diff(a,b),diff(a,c),diff(a,e)] Debemos hacer notar que el gradiente, también puede calcularse usando la función de usuario Df_m aplicada sobre funciones definidas en la forma {f} m, es decir, suponiendo que las funciones reales (campos escalares) son funciones vectoriales con un solo componente y escribiendo el comando Df_m( m,x,y,z)
Denominamos div a la función de usuario que calcula la divergencia de una función vectorial: Define library\div(a,b,c,e)=diff(a[1],b)+diff(a[],c)+diff(a[],e) Otra manera de calcular la divergencia es tomando la traza de la matriz de derivadas parciales, es decir aplicando el comando traza(df_m(f,x,y,z)). Recuerde que la traza es una función de usuario que se define de la siguiente manera: Define library\traza(a)=sum(mattolist(trn(diag(a)),1)) Denominamos rot a la función de usuario que calcula el rotacional de una función vectorial: Define library\rot(a,b,c,e)=[diff(a[],c)-diff(a[],e),diff(a[1],e)-diff(a[],b),diff(a[],b)-diff(a[1],c)]. Empleando las funciones de usuario arriba definidas calcule la divergencia y el rotacional de las siguientes funciones vectoriales: a. F = ( xy, yz, zx) x b. ( ) ˆ x F = e sen y i + e cos( y) ˆj+ zkˆ a. Los cálculos se muestran en la figura 1 b. Los cálculos se muestran en la figura Figura 1 Figura Figura. Con ayuda de la calculadora demuestre que: a. ( f ) = 0, el rotacional del gradiente es cero b. ( F ) = 0, la divergencia del rotacional es cero. a. Al aplicar la función de usuario grad sobre la función general f (,, ) f ( xyz,, ) f( xyz,, ) f( xyz,, ) xyz se obtiene un vector en la forma,,. Por otro lado la función de x y z usuario rot se aplica sobre una lista por lo que primeramente debemos convertir este vector a una lista mediante el siguiente comando: mattolist(trn(grad(f(x,y,z),x,y,z)),1) m
Aplicamos ahora la función rot sobre la lista m. El resultado se muestra en la figura. Resumimos aquí los resultados obtenidos: = f( xyz,, ) + f( xyz,, ) = 0 1 z y y z = f( xyz,, ) f( xyz,, ) = 0 z x x z = f( xyz,, ) + f( xyz,, ) = 0 y x x y Vemos que cada componente esta compuesto por la resta de las derivadas cruzadas, como estas derivadas son iguales cada componente se anula. b. Definimos un campo vectorial general: {P(x,y,z),Q(x,y,z),R(x,y,z)} F Calculamos su rotacional, lo escribimos como una lista y la almacenamos en m mattolist(trn(rot(f,x,y,z)),1) m Aplicamos la función de usuario div sobre m (ver figura 4) y obtenemos el siguiente resultado: divmxyz (,,, ) = Pxyz (,, ) + Pxyz (,, ) z y y z + Q( x, y, z) Q( x, y, z) z x x z R( xyz,, ) + R( xyz,, ) = 0 y x x y En esta expresión se observa claramente que las derivadas cruzadas de una misma función aparecen con distintos signos y por lo tanto se cancelan. 4. Cree un programa que permita determinar si un campo vectorial es conservativo o no y en caso de que sea conservativo calcule el potencial escalar correspondiente. a. Utilice el programa creado para encontrar el potencial escalar del campo: F = yi ˆ + z cos yz + x ˆ j+ ycos yz k ( ( ) ) ( ) ˆ En el recuadro se muestra en programa Pot_f que permite calcular el potencial escalar (salvo constante numérica) en caso de que la función vectorial sea un campo conservativo. a. La utilización del programa Pot_f para determinar el potencial escalar del campo: F = yi ˆ + z( cos( yz) + x) ˆ j+ ycos( yz) k ˆ Se muestra en las figuras 5 y 6 Programa Pot_f DelVar F,h,g,C Input F, "{P(x,y,z),Q(x,y,z),R(x,y,z)}" If norm(rot(f,x,y,z))=0 Then (F[1],x) h (simplify(f[]-diff(h,y)),y) g (simplify(f[]-diff(h,z)-diff(g,z)),z) C PrintNatural h+g+c, El potencial es: Else Print "No es conservativo" IfEnd
5. Construya una función de usuario para calcular factores de escala de coordenadas curvilíneas. a. Utilice la función de usuario para calcular los factores de escala de las coordenadas i. Cilíndricas. ii. Esféricas. Los factores de escala correspondientes a las coordenadas curvilíneas (,, ) u1 u u se denotan por r h 1, h y h respectivamente y se calculan mediante las fórmulas h i =, con i = 1,,. ui Definimos función de usuario FactEsc : a-i La figura 7 muestra el cálculo de los factores de escala para las coordenadas cilíndricas r, θ, z. ( ) Figura 4 Figura 5 Figura 6 Define library\factesc(a,b)= (simplify(dotp(listtomat(diff(a,b)),listtomat(diff(a,b))))) Figura 7 Figura 8 Figura 9 a-ii Para calcular los factores de escala para las coordenadas esféricas ( r, θ, φ ) construimos la función: { rcosφsin θ, rsinφsin θ, rcosθ} m La figura 8 muestra el cálculo para los correspondientes factores de escala. Hacemos notar que los factores de escala calculados son esencialmente correctos. Sin embargo, el factor h φ puede simplificarse aún más y quedar en la forma hφ = rsenθ 6. Construya una función de usuario para calcular el gradiente en coordenadas curvilíneas.
: La fórmula del gradiente en coordenadas curvilíneas: 1 f 1 f 1 f f = eˆ ˆ ˆ 1+ e + e, donde h 1, h y h son los factores de escala h1 du1 h du h du correspondientes a las coordenadas ( u1, u, u ) ê, 1 ê y ê son los vectores unitarios correspondientes. La función de usurario gradcurv permite calcular el gradiente en coordenadas curvilíneas. Para poder utilizarlo es necesario calcular antes los factores de escala. 1 1 1 Define library\gradcurv(a,b,c,e,f)= diff ( ab, ), diff ( ac, ), diff ( ae, ) f [] 1 f [ ] f [ ] Un ejemplo de aplicación de este gradiente para coordenadas esféricas está dado en la figura 9.