Universidad Diego Portales
Facultad de Ingeniería. Asignatura: Cálculo III Instituto de Ciencias Básicas
Laboratorio N° 10, Operaciones diferenciales. Gradiente,
divergencia y rotacional.
Introducción.
El gradiente es una operación que se aplica sobre una función real f :ℜ → ℜn 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 :ℜ → ℜ3 tenemos que:
f x y z
(
, ,)
grad( )
f f , f , f x y z⎛∂ ∂ ∂ ⎞
∇ ⋅ ≡ = ⎜ ⎟
∂ ∂ ∂
⎝ ⎠
JJJJG G
.
La divergencia es una operación que se aplica sobre una función vectorial F:ℜ → ℜn n y su resultado es una función real formada por la suma de las derivadas parciales:
( )
1
n i
i i
F F div F
dx
=
∂ ∇ ⋅ ≡G G G =
∑
.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 3 3
:
F ℜ → ℜ tenemos:
( )
3 2 1 3 2 11 2 3
ˆ
ˆ ˆ
ˆ
ˆ ˆ
rot
i j k
F F F F F F
F F i j k
x y z y z z x x y
F F F
⎛∂ ∂ ⎞ ∂ ∂ ⎛∂ ∂ ⎞
∂ ∂ ∂ ⎛ ⎞
∇× ≡ = =⎜ − ⎟ +⎜ − ⎟ +⎜ − ⎟
∂ ∂ ∂ ⎝ ∂ ∂ ⎠ ⎝ ∂ ∂ ⎠ ⎝ ∂ ∂ ⎠
JJG
G G G
.
Las funciones vectoriales FG, tales que ∇× =G FG 0 se denominan campos potenciales o conservativos. Como se verá en el ejercicio resuelto (3a), deberá existir una función real f , que habitualmente se le denomina potencial escalar, tal que FG = ∇Gf . 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.
Solución.
Denominamos “grad” a la función de usuario que permite calcular el gradiente de funciones
3
:
f ℜ → ℜ:
Debemos hacer notar que el gradiente, también puede calcularse usando la función de usuario “Df3_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 “Df3_m(m,x,y,z)”
Denominamos “div” a la función de usuario que calcula la divergencia de una función vectorial:
Otra manera de calcular la divergencia es tomando la traza de la matriz de derivadas parciales, es decir aplicando el comando “traza(Df3_m(F,x,y,z))”. Recuerde que la traza es una función de usuario que se define de la siguiente manera:
Denominamos “rot” a la función de usuario que calcula el rotacional de una función vectorial:
2. Empleando las funciones de usuario arriba definidas calcule la divergencia y el rotacional de las siguientes funciones vectoriales:
a. FG =
(
xy yz zx, ,)
b. xsen
( )
ˆ xcos( )
ˆ ˆ FG =e y i +e y j+zkSolución
a. Los cálculos se muestran en la figura 1 b. Los cálculos se muestran en la figura 2
3. Con ayuda de la calculadora demuestre que:
a. ∇× ∇ =G
( )
Gf 0, el rotacional del gradiente es cero b. ∇ ⋅ ∇×G(
G FG)
=0, la divergencia del rotacional es cero.Solución
a. Al aplicar la función de usuario “grad” sobre la función general f x y z
(
, ,)
se obtiene un vector en la forma f x y z(
, ,)
, f x y z(
, ,)
, f x y z(
, ,)
x y z
∂ ∂ ∂
⎡ ⎤
⎢ ∂ ∂ ∂ ⎥
⎣ ⎦. Por otro lado la función de
usuario “rot” se aplica sobre una lista por lo que primeramente debemos convertir este vector a una lista mediante el siguiente comando:
Define library\div(a,b,c,e)=diff(a[1],b)+diff(a[2],c)+diff(a[3],e)
Define library\traza(a)=sum(matToList(trn(diag(a)),1))
Define library\rot(a,b,c,e)=[diff(a[3],c)-diff(a[2],e),diff(a[1],e)-diff(a[3],b),diff(a[2],b)-diff(a[1],c)]
Figura 1 Figura 2
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 3. Resumimos aquí los resultados obtenidos:
(
, , ,)
1(
, ,)
(
, ,)
0rot m x y z f x y z f x y z
z y y z
⎛ ⎞ ∂ ∂ ∂ ∂⎛ ⎞ = − + = ⎡ ⎤ ⎜ ⎟ ⎜ ⎟ ⎣ ⎦ ∂ ∂ ∂ ⎝∂ ⎠ ⎝ ⎠
rot m x y z
(
, , ,)
2 f x y z(
, ,)
f x y z(
, ,)
0z x x z
∂ ∂⎛ ⎞ ∂ ∂⎛ ⎞
= − =
⎡ ⎤ ⎜ ⎟ ⎜ ⎟
⎣ ⎦ ∂ ∂⎝ ⎠ ∂ ∂⎝ ⎠
(
, , ,)
3(
, ,)
(
, ,)
0rot m x y z f x y z f x y z
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:
Calculamos su rotacional, lo escribimos como una lista y la almacenamos en “m”
Aplicamos la función de usuario “div” sobre “m” (ver figura 4) y obtenemos el siguiente resultado:
(
)
(
)
(
)
(
)
(
)
(
)
(
)
, , , , , , , , , , ,, , , , 0
div m x y z P x y z P x y z
z y y z
Q x y z Q x y z
z x x z
R x y z R x y z
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:
( )
(
)
( )
ˆˆ cos ˆ cos
FG =yi+z yz +x j+y yz k
Solución
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:
( )
(
)
( )
ˆˆ cos ˆ cos
FG =yi+z yz +x j+y yz k Se muestra en las figuras 5 y 6
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[2]-diff(h,y)),y)
∫
⇒g(simplify(F[3]-diff(h,z)-diff(g,z)),z)
∫
⇒CPrintNatural h+g+C, “El potencial es:” Else
Print "No es conservativo" IfEnd
Programa “Pot_f” {P(x,y,z),Q(x,y,z),R(x,y,z)}⇒ F
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.
Solución
Los factores de escala correspondientes a las coordenadas curvilíneas
(
u u u1, 2, 3)
se denotan por1
h , h2 y h3 respectivamente y se calculan mediante las fórmulas i i r h
u
∂ =
∂
G
, con i=1, 2, 3. 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)
.
a-ii Para calcular los factores de escala para las coordenadas esféricas
(
r, ,θ φ)
construimos la función:{
rcos sin , sin sin , cosφ θ r φ θ r θ}
⇒mLa 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.
Figura 4 Figura 5 Figura 6
Define library\FactEsc(a,b)=√(simplify(dotP(listToMat(diff(a,b)),listToMat(diff(a,b)))))
Solución:
La fórmula del gradiente en coordenadas curvilíneas:
1 2 3
1 1 2 2 3 3
1 1 1
ˆ ˆ ˆ
f f f
f e e e
h du h du h du
∂ ∂ ∂
∇ =G + + , donde h1, h2 y h3 son los factores de escala correspondientes a las coordenadas
(
u u u1, 2, 3)
eˆ1, eˆ2 y eˆ3 son los vectores unitarioscorrespondientes.
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.
Un ejemplo de aplicación de este gradiente para coordenadas esféricas está dado en la figura 9.
[ ]
( )
[ ]
( )
[ ]
( )
1 1 1
Define library\gradCurv(a,b,c,e,f)= diff , , diff , , diff ,
1 a b 2 a c 3 a e
f f f
⎡ ⎤
⎢ ⎥