Anda di halaman 1dari 6

Prcticas con Mathematica 9 y 10

1 Clculo diferencial de funciones de varias variables I


Para las derivadas parciales de funciones de varias variables podemos utilizar el mismo comando que
usamos para derivar funciones de una variable: D
Ejemplo 1.1 Ejecutar las siguientes sentencias
1. D[y x3 2x, x]
2. D[y x3 2x, y]
3. D[(x2 + y3)/(x y), x]
4. D[(x2 + y3)/(x y), y]
5. Clear[f]; f[x , y ] := Cos[x] Sin[2y]
6. D[f[u, v], u]
7. D[f[u, v], v]
8. Clear[g]; g[z ] := f[2z, z]
9. D[g[z], z]
Podemos calcular tambin derivadas parciales de orden superior:
Ejemplo 1.2 Ejecutar las siguientes sentencias
1. D[y x3 2x, {x, 2}]
2. D[y x3 2x, {y, 2}]
3. D[y x3 2x, {x, 1}, {y, 1}]
4. Clear[h]; h[x , y ] := Cos[x] Sin[2y]
5. D[h[x, y], {x, 101}, {y, 5}]
6. Clear[hh]; hh[x , y ] := y4 E(3x)
7. D[hh[x, y], x, x, y, y, y]
Ejercicio 1.3 Calcular las siguientes derivadas parciales:
1
1. De la funcin f1(x, y) =
3xy
1+x
2
calcular f1
xxy
.
2. De la funcin f2(x, y) = tan
2
x
2
y
x
calcular f2
xy
y f2
yyy
.
3. De la funcin f3(x, y) = x
x
log(
x+y
1x
2
)e
x
2
x
calcular las derivadas parciales de segundo orden.
4. De la funcin f4(x, y) = xsen(x + y) y cos(x y) calcular f4
xy
(, ) y f4
yy
(0, ).
Ejercicio 1.4 Calcular las siguientes expresiones que involucran derivadas parciales:
1. Dada la funcin g1(x, y) = sen(sen(senx)) cos(cos(cos y)) calcular g1
xy
g1
y
.
2. Dada la funcin g2(x, y) =
cos xy
ysenx
calcular g2
x
+ 2g2
y
+ 3g2
xx
+ 4g2
yy
+ 5g2
xy
.
Podemos calcular tambin derivadas direccionales utilizando la denicin, ya que su formulacin
depende del clculo de lmites de una variable. Por ejemplo, para hallar la derivada direccional de la
funcin f(x, y) = x
3
y
3
en el punto (1, 3) en la direccin del vector (1, 1) podemos denir la funcin
as f[x , y ] := x3y3 y resolver el correspondiente lmite as Limit[(f[1t, 3+t]f[1, 3])/t, t > 0]
(solucin: 54).
Ejercicio 1.5 Calcular las siguientes derivadas direccionales:
1. De la funcin f(x, y) =
3xy
1+x
2
en el punto (3, 2) en la direccin del vector (1, 5)
(solucin
43
50
).
2. De la funcin f(x, y, z) = xyz
2
en el punto (0, 2, 1) en la direccin del vector (1, 0, 1)
(solucin 2).
Ejercicio 1.6 Hallar las derivadas parciales de las siguientes funciones en todo punto de su dominio:
1. f(x, y) =
(
y

x
x
2
+y
2
si (x, y) 6= (0, 0)
0 si (x, y) = (0, 0)
(Solucin:
f
x
(x, y) =
(
y(3x
2
y
2
)
2

x(x
2
+y
2
)
2
si (x, y) 6= (0, 0)
0 si (x, y) = (0, 0)
y
f
y
(x, y) =
(
x(x
2
y
2
)
(x
2
+y
2
)
2
si (x, y) 6= (0, 0)
0 si (x, y) = (0, 0)
)
2. g(x, y) = (log x e
3xy
, 3 arctan
x
y
sen(x
2
3y
3
), e 3).
Podemos calcular la matriz jacobiana de una funcin en un punto sin ms que distribuir ade-
cuadamente las derivadas parciales de la funcin en el punto en forma matricial. Y a partir de
ella podemos hallar la expresin analtica de la diferencial en dicho punto. Por ejemplo la matriz
jacobiana de la funcin g del ejercicio anterior se obtendra as:
Teniendo en cuenta que
g
x
(x, y) = (
1
x
3e
3xy
,
3
1 +
x
2
y
2
1
y
2xcos(x
2
3y
3
), 0) = (
1
x
3e
3xy
,
3y
y
2
+ x
2
2xcos(x
2
3y
3
), 0)
2
y que
g
y
(x, y) = (e
3xy
,
3
1 +
x
2
y
2
(
x
y
2
) + 9y
2
cos(x
2
3y
3
), 0) = (e
3xy
,
3x
y
2
+ x
2
+ 9y
2
cos(x
2
3y
3
), 0)
la matriz requerida es
Jg(x, y) =

1
x
3e
3xy
e
3xy
3y
y
2
+x
2
2xcos(x
2
3y
3
)
3x
y
2
+x
2
+ 9y
2
cos(x
2
3y
3
)
0 0

la cual puede hallarse (y visualizarse) con el Mathematica mediante las siguientes sentencias:
g[x , y ] = {Log[x] Exp[3x y], 3ArcTan[x/y] Sin[x2 3y2], E 3}
MatrixForm[Transpose[{D[g[x, y], x], D[g[x, y], y]}]]
Si quisiramos la matriz en algn punto concreto entonces tendramos que evaluar las derivadas
parciales en tal punto.
Ejercicio 1.7 Hallar la matriz jacobiana y la expresin analtica de la diferencial de las siguientes
funciones en los puntos que se indican:
1. De la funcin f(x, y, z) = x
2
y
2
z
3
en el punto (3, 2, 1).
2. De la funcin f(x, y) = (
1+x
2
y
, xcos x, log(x + y)) en el punto (0, 1).
Ejercicio 1.8 Consideremos las siguientes funciones f : R
2
R
3
y g : R
3
R
2
denidas del
siguiente modo f(x, y) = (x
3
y
2
, cos xy, y 3x) y g(u, v, w) = (ve
2u
senw, uvw
4
). Consideremos la
funcin compuesta h = g f. Hallar las derivadas parciales de h hasta el orden 3, as como la matriz
jacobiana de h. Hallar tambin la expresin analtica de la diferencial de h en el punto (1, 0).
Puede hallarse tambin la ecuacin del plano tangente a una supercie. Veamos algn ejemplo.
Ejemplo 1.9 Hallar el plano tangente a la supercie z = x
2
+ y
2
en el punto (0, 0, 0) y hacer una
representacin grca de la supercie y del plano tangente de forma conjunta, en un rectngulo
adecuado alrededor del punto.
En primer lugar debemos denir la funcin que nos da la supercie. En este caso podemos teclear
Clear[f];f[x_,y_]=x^2+y^2 Como la ecuacin es z0 =
f
x
(0, 0)(x0)+
f
y
(0, 0)(y0) basta con
denir las derivadas parciales del siguiente modo fx[x_,y_]=D[f[x,y],x];fy[x_,y_]=D[f[x,y],y]
Entonces la ecuacin sera z = fx[0, 0]x+fy[0, 0]y, es decir z = 0x+0y, el plano z = 0. Para realizar
la representacin grca conjunta (por ejemplo en el rectngulo {(x, y) : 1 x 1, 1 y 1})
basta utilizar el comando ParametricPlot3D del siguente modo:
ParametricPlot3D[{{x,y,x^2+y^2},{x,y,0}},{x,-1,1},{y,-1,1}]
Ejercicio 1.10 Hacer lo propio con las siguientes supercies en los puntos que se dan:
1. z = x
2
y
2
en el punto (0, 0, 0).
2. z =
p
1 x
2
y
2
en el punto (
1

3
,
1

3
,
1

3
).
3
2 Programacin
Mathematica tambin es un lenguaje de programacin con rdenes que pueden ser utilizadas para
construir algoritmos. Veamos algunas de estas rdenes:
Print Se utiliza para mostrar en la pantalla un mensaje. Ejecutar la siguiente sentencia y
se ver el funcionamiento de esta orden x = 3; y = 4; Print[el valor de x es , x, , el valor de
y es , y] Observemos que lo que gura entre comillas aparece literalmente.
If La sintaxis de este comando es If[a, b, c, d] Lo que se hace es evaluar a; si es
verdadero se ejecuta b, si es falso se ejecuta c, y si no es ni verdadero ni falso (o no puede comprobarse)
se ejecuta d. Puede omitirse d o tambin c y d. En estos casos, cuando no hay condicin alternativa,
el programa no hace nada. Ejecutar las siguientes sentencias para observar el funcionamiento es esta
orden:
1) z = 4; If[z == 4, z = 0, z = 1, z = 2]; Print[el valor de z es , z]
2) z = 5; If[z == 4, z = 0, z = 1, z = 2]; Print[el valor de z es , z]
3) z = w; If[z == 4, z = 0, z = 1, z = 2]; Print[el valor de z es , z]
4) z = 5; If[z == 4, z = 0]; Print[el valor de z es , z]
5) z = w; If[z == 4, z = 0, z = 1]; Print[el valor de z es , z]
El comando If puede ser usado tambin para denir funciones a trozos. Vemos cmo ejecutando
las siguientes sentencias 1) f[x ] := If[x <= 0, 3x5, 2x] 2) f[0] 3) f[1] 4) f[t] Observemos
que la salida correspondiente al valor f[t] es la propia denicin de la funcin. Esto es as porque t
no tiene un valor concreto que el programa pueda determinar si es <= 0 o no. Para evitar esto se
podra hacer algo como lo que viene a continuacin para la funcin g
1) g[x ] : If[x <= 0, 3x 5, 2x, Print[El valor de , x, no est a totalmente determinado]]
2) g[0] 3) g[1] 4) g[t]
Ejercicio 2.1 Supongamos que tenemos la siguiente funcin
f(x, y) =
(
2xy
x
2
+y
2
si (x, y) 6= (0, 0)
0 si (x, y) = (0, 0)
Denirla con el Mathematica (en todos sus puntos incluido el origen (0, 0)). Hallar los valores de f
en los puntos (0, 0) y (2, 3).
Which La sintaxis de este comando es Which[a1, b1, a2, b2, ......, aK, bK] Lo que se
hace es evaluar las condiciones a1, a2, .... hasta que encuentra una verdadera (la primera de la lista
que sea verdadera). Entonces ejecuta la condicin correspondiente b y no sigue evaluando las dems
condiciones. Si ninguna es verdadera no pasa nada. Ejecutar cada una de las sentencias (y observar
despus de cada una cul es el valor de a)
1) a = 1; Which[a == 1, a = 10, a == 2, a = 20, a == 3, a = 30]; a
2) a = 3; Which[a == 1, a = 10, a == 2, a = 20, a == 3, a = 30]; a
3) a = 5; Which[a == 1, a = 10, a == 2, a = 20, a == 3, a = 30]; a
4
4) a = 5; Which[a == 1, a = 10, a == 2, a = 20, a == 3, a = 30, True, a = 0]; a
Observemos que en la ltima sentencia hemos puesto al nal True (que siempre es verdad) con
el objeto de que si ninguna de las anteriores condiciones son verdaderas que se ejecute la ltima
sentencia: a = 0
While La sintaxis de este comando es While[a, b] Lo que se hace en primer lugar
es evaluar a; si su valor es verdadero se ejecuta b y se vuelve a evaluar a; si sigue siendo verdadero se
vuelve a ejecutar b. El proceso continua mientras que a siga siendo verdadero, detenindose cuando
a es falso. Veamos la siguiente sentencia: i = 1; While[i <= 10, i = 2i] El programa doblar el
valor de i (i = 2i) mientras que este valor no supere a 10. En cuanto esto no suceda el programa se
detendr. El valor nal de i deber ser 16.
Debido al carcter recurrente de este comando, es posible que, dependiendo de la lnea de coman-
dos introducida, en alguna ocasin siempre se verique a; si esto sucede nunca se detendr el programa
y deberemos abortar el clculo (con la opcin Abort Evaluation del Men Kernel, de la parte
superior de la pantalla). As sucedera, por ejemplo, con la sentencia i = 1; While[i <= 10, i = 2i1]
Ejecutar tambin la siguiente sentencia: i = 1; While[i <= 0, i = 2i]
Ejercicio 2.2 Hallar el primer nmero cuyo cuadrado sea mayor que 10.000.000.
Ejercicio 2.3 Hallar los 100 primeros trminos de la sucesin dada en forma recurrente
a
n
=

a
n1
+1, a
1
= 1. Hacerlo con decimales. (Indicacin: puede servir de ayuda el comando
Array.)
For La sintaxis de este comando es For[a, b, c, d] Lo que se hace es ejecutar en primer
lugar a; despus se evala b y si es verdadera se ejecutan c y d. Despus se vuelve a evaluar b y si sigue
siendo verdadera de nuevo se ese ejecutan c y d. Esto acabar cuando b sea falso. Sentencias como
sta deben construirse de manera que llegue el momento en que b sea falso y termine su ejecucin.
En caso de que est mal diseada la sentencia habra que abortar el clculo. Esto puede realizarse
seleccionando Abort Evaluation del men Kernel. Ejecutar la siguiente sentencia (en donde la
sentencia primera a es j = 1; x = 1) For[j = 1; x = 1, x <= 10, j = j + 1, x = x + 1./j]
Observar bien el funcionamiento de la sentencia anterior: realiza sumas parciales (en forma decimal
y no fraccionaria) de la serie numrica
P
j1
1
j
(que es divergente) hasta que su valor es mayor que 10.
Si tecleamos nalmente j observaremos que han sido necesarios 4551 trminos de la serie
para llegar a sumar con la serie ms de 10 unidades.
Do La sintaxis de este comando es Do[expresi on, {variable, min, max, salto}] Lo
que se hace es realizar los clculos que aparecen en expresi on con el valor de variable comprendido
entre min y max aumentando lo que marca salto. Veamos como aplicacin el clculo de la suma
100
X
i=1
i
2
. Para ello podemos teclear la sentencia suma = 0; Do[suma = suma +j
2
, {j, 1, 100, 1}]; suma
El valor de suma debe dar 338350
5
Observacin 2.4 Para hallar sumas es mejor el comando Sum que ya vimos en su momento. As
por ejemplo para hallar la suma de la serie
+
X
j=1
1
j
2
bastara teclear la sentencia Sum[1/j
2
, {j, 1, Infinity}],
aunque podramos hallar una aproximacin hallando el valor de las sumas parciales de orden grande,
por ejemplo de orden 1000, tecleando suma = 0; Do[suma = suma + 1/j
2
, {j, 1, 1000}]; N[suma]
Tambin puede hallarse la aproximacin (sobre todo interesa cuando el valor total de la serie no
es factible de calcular) con el propio comando Sum poniendo Sum[1/j
2
, {j, 1, 1000}]
Ejercicio 2.5 Hallar el valor aproximado de la suma de la serie
+
X
i=1
cos i
i
usando el comando Sum y
de otro modo usando el comando Do
Input Es una orden utilizada para pedir datos externos. Su sintaxis es
nombredeldato = Input[comentario]
Ejemplo 2.6 Ejecutar la siguiente orden (introduciendo el nombre cuando la pantalla muestre la
salida Cmo te llamas? ) nombre = Input[Cmo te llamas?]; Print[Qu tal , nombre, ?]
Ejercicio 2.7 Utilizando los comandos vistos hasta el momento, elaborar un conjunto de sentencias
que te pidan introducir un nmero entero de a lo sumo 10 cifras y que extraiga de l la mayor potencia
de 2 que lo divide, as como la descomposicin del nmero como producto de 2 elevado a esa potencia
multiplicado por el nmero restante (que ya no es divisible por 2).
Nota: Puede resultar til el comando (ya visto) IntegerPart
6

Anda mungkin juga menyukai