Métodos matemáticos I

Próximas tutorías

Martes, 19 de mayo 16:00–17:30.

Novedades

25/03/2015 En el apartado de cálculo numérico, he copiado el programa que escribí para hallar la solución numérica de una ecuación diferencial por el método de Euler y los comandos para representar un campo de pendientes en Maxima.

18/03/2015 He añadido una sección de divulgación sobre las transformaciones de Möbius y vídeos en los que se ven ampliaciones del fractal de Mandelbrot. A partir de la próxima clase nos dedicaremos a estudiar ecuaciones diferenciales.

Problemas de examen

Otros problemas de examen que merece la pena intentar:

1. a) Si z = x + iy demostrar entonces que zz* = |z|2.
b) Utilizando los resultados del apartado anterior, y teniendo en cuenta que z = xj + iyj (j = 1, 2) encontrar las condiciones bajo las que se verifica que
|z1 + z2| ≤ |z1| + |z2|; |z1z2| ≥ |z1| − |z2|.

2. Determinar y dibujar en el plano complejo el lugar geométrico de los puntos que satisfacen respectivamente las ecuaciones:
|ez2| = 1 y |e(z − 1/z)| = 1.

3. Descomponer el polinomio z4 − 4z2 + 3 en dos factores cuadráticos y con ellos demostrar que si |z| = 2 entonces
|1/(z4 − 4z2 + 3)| ≤ 1/3.

4. a) ¿Cuál es la diferencia entre que una función f(z) sea derivable en un punto y que sea holomorfa (o analítica) en ese punto?
b) Demostrar que si una función compleja es derivable en un punto entonces debe verificar las condiciones de Cauchy-Riemann. ¿Son estas condiciones suficientes para garantizar la derivabilidad en ese punto?

5. Dibujar la imagen del plano complejo bajo la transformación
h(z) = i/Log(z),
donde Log(z) denota la rama principal del logaritmo (Obs: Notar que 1/Log(z) es la composición de 1/z con el logaritmo).

6. Demostrar que si a es un número complejo tal que |a| < 1, entonces la transformación
w = (a − z)/(1 − a* z)
transforma el disco |z| < 1 en sí mismo, y la circunferencia frontera |z| = 1 en sí misma.

7. Mostrar que para cualquier elección de las constantes c1 y c2, la función
f(x) = c1 ex + c2 e2x
es una solución explícita de
y''y' − 2y = 0.

8. Resolver el problema de valor inicial
dy/dx = (−2x + y)2 − 7, y(0) = 0.

9. a) Encontrar la solución general de la ecuación diferencial
dy/dx = y2x2 + y2 + 1 + x2.
b) Encontrar la solución que verifica la condición inicial y(0) = 1.

10. Encontrar el valor del parámetro b en la ecuación diferencial
(xy2 + bx2y)dx + (x + y)x2dy = 0
para que sea una ecuación diferencial exacta y luego encontrar la solución general de dicha ecuación para el valor de b calculado.

11. a) Encontrar la solución general de la ecuación diferencial
dy/dx = y2x2 + y2 + 1 + x2.
b) Encontrar la solución tal que y(0) = 1.

12. a) Demostrar que las funciones y1(x) = ex, y2(x) = e2x y y3(x) = e3x son linealmente independientes en el intervalo (-∞, ∞).
b) Encontrar la ecuación diferencial homogénea para la cual las funciones del apartado a) forman un sistema completo de soluciones.

13. Encontrar la solución general de la ecuación diferencial
d4y/dx4d2y/dx2 = 24x2.

14. a) Encontrar la solución general del sistema de ecuaciones diferenciales

d / dt
x1
x2
x3
=
1 1 0
0 1 0
0 0 2
x1
x2
x3

utilizando exclusivamente métodos matriciales.
b) Hallar la solución cuyas condiciones iniciales son

x1(0)
x2(0)
x3(0)
=
1
1
1
.

Problemas resueltos en tutorías anteriores:

1. Escribir en la forma a + ib las raíces de la ecuación z3 + 1 = 0.

2. Encontrar la región del plano complejo determinada por la ecuación |z|2 ≤ 2 Re(z).

3. a) Encontrar las raíces de la ecuación z6 + 7 z3 − 8 = 0.
b) ¿Por qué tres de ellas están sobre una circunferencia y las otras tres sobre otra? Determinar dichas circunferencias y representar en el plano complejo-z estas raíces.

4. Sean z1 y z2 dos números complejos cualesquiera. Demostrar que
|z1 + z2| ≤ |z1| + |z2|,
y
|z1z2| ≥ ||z1| − |z2||.

5. Sea B = {z tales que |z| < 1}. Determinar el conjunto
A = {z tales que |ez2| ∈ B}.

6. a) Demostrar que la función u(x, y) = 2xx3 + 3xy2 es armónica en un cierto dominio.
b) Encontrar la función armónica más general v(x, y) de u(x, y) y la función analítica cuya parte real es u y cuya parte imaginaria es v.

7. Sea z = x + iy. Determinar todos los valores de log(z½) en función de x, y.

8. a) Demostrar que u(x, y) = x3 − 3xy2 + 2y puede ser la parte real de una determinada función analítica f(z).
b) Encontrar dicha función f(z) y la armónica conjugada de u(x, y).
c) Si v(x, y) es la armónica conjugada de u(x, y) y se anula en x = 0; y = 0, ¿Cuáles son los ceros de f(z)?

9. Dada una función f(z) = u(z) + iv(z) con u(z), v(z) ∈ ℜ continuas en todo el plano complejo, y tal que
2u/∂x2 + ∂2u/∂y2 = 0,
2v/∂x2 + ∂2v/∂y2 = 0,
¿Podemos asegurar que f es holomorfa?

10. Dada h(z) la rama de la raíz cuarta, con corte de ramificación {x = −y, x ≥ 0}, tal que h(1) = −1,
a) Determinar h(i) y h(−i).
b) Determinar si existen, y calcular en su caso,
limz→−1 h(z) y limz→1−i h(z)

11. Si denotamos por Log el valor principal del logaritmo complejo, definido en todo el plano excepto en 0,
a) Determinar los puntos en los que Log(iz2) no es continua, determinando los límites direccionales en esos puntos (siguiendo trayectorias rectas),
b) Para qué valores de z se tiene que Log(z2) = 2 Log(z)?

12. Determinar la imagen de
{z, |z| < 2 y Re(z) ≥ 0}
bajo la aplicación
h(z) = (iz + 2)/(zi).

13. Dado que y1(x) = e2x cos(3x) e y2(x) = e2x sin(3x) son soluciones de la ecuación homogénea
y'' − 4y' + 13y = 0,
determinar una solución de esa ecuación que satisfaga las condiciones iniciales y(0) = 5, y'(0) = 2.

14. Calcular el valor del parámetro a para que la ecuación diferencial
(axy − 1/cos2x) dx + (x2 + 2y) dy = 0
sea exacta, y dar una solución general en forma implícita para ese valor de a.

15. Determinar la solución general de la ecuación diferencial
dy/dx = (x + y + 2)2.

16. Resolver la ecuación diferencial
dy/dx = sen(xy).

17. Encontrar la solución general de la ecuación diferencial
dy/dx = (x + y + 4)/(xy − 6).

18. Sabiendo que la ecuación diferencial yF(x)dx + x2G(y)dy = 0 admite el factor integrante μ(x, y) = ey sen x se pide:
a) Determinar las funciones F(x) y G(x).
b) Resolver la ecuación resultante.

19. Resolver el problema de valor inicial
d2y/dx2 − 3 dy/dx + 2y = 2e−x;
y(0) = 2;
dy/dx|x = 0 = 1.

20. Dada la ecuación diferencial
(x cos(x) - sen(x)) d2y/dx2 + x sen(x) dy/dxy sen(x) = 0,
se pide:
a) Determinar una solución de ella, sabiendo que es del tipo y = xα para un valor determinado del parámetro α.
b) Utilizando los resultados del apartado anterior, hallar la solución general de la ecuación diferencial propuesta y aquella solución yp que está acotada cuando x → +∞ y además yp(π/4) = 1.

21. Resolver el problema del valor inicial:
d3y/dx3 − 5 d2y/dx2 + 9 dy/dx - 5y = 0;
y(0) = 0; dy/dx|x = 0 = 1; d2y/dx2|x = 0 = 6.

22. a) Determinar la solución general del sistema de ecuaciones diferenciales:

x1' = 3x1 + x2,
x2' = 2x1 + 2x2.

b) Hacer un dibujo aproximado del diagrama de fases del sistema y clasificar el tipo de punto crítico que es el punto (0, 0).

23. Encontrar la solución general de la ecuación diferencial
d4y/dx4d2y/dx2 = 24x2.

24. Dar la solución general de la ecuación diferencial
y''' + 3y'' − 4y = et + e−t.

25. Determinar la solución general de la ecuación diferencial
d2y/dt2 + y = tan(t) + 1, t ∈ (−π/2, π/2).

26. Resolver, usando transformadas de Laplace, el siguiente problema de valor inicial.
y'' + 2y' = δ(t − 1), y(0) = 0, y'(0) = 1,
donde δ(t) denota la función delta de Dirac.

Recursos adicionales

Si te gusta apoyarte en las clases para aprender la asignatura, las tutorías del centro asociado no son suficientes, pero tienes muchas otras a tu disposición. Busca "variable compleja" o "complex variables" en Youtube. Copio debajo dos ejemplos:

Cálculo numérico

Números complejos

Muchos programas permiten operar directamente con números complejos. Por ejemplo, yo he programado mis propias rutinas para bc (que por supuesto puedes consultar, utilizar, modificar y distribuir). Recuerda que utilizan la rama arg(z) ∈ (−π, π].

Puedes usar estos programas para comprobar tus cálculos. En física computacional te enseñan a manejar Maxima. En las tutorías vimos que (1 + i)8 = 16. Para comprobarlo, podemos escribir en Maxima lo siguiente:

(%i1) (1 + %i)^8;
                                           8
(%o1)                              (%i + 1)
(%i2) expand((1 + %i)^8);
(%o2)                                 16

Con Maxima puedes operar de manera simbólica, lo cual te permite comprobar cosas como, por ejemplo, que zz* = |z|2.

(%i3) expand( (a + b*%i) * conjugate(a + b*%i) );
                                     2    2
(%o3)                               b  + a
(%i4) expand( cabs(a + b*%i)^2 );
                                     2    2
(%o4)                               b  + a

Más información:

Ecuaciones diferenciales

Esta es una versión comentada del programa que escribí en la tutoría para calcular numéricamente la solución de una ecuación diferencial ordinaria de orden uno por el método de Euler.

/******************************************************************************
 *                                 Euler.bc                                   *
 ******************************************************************************

 Integración numérica de la ecuación diferencial ordinaria de orden 1

                                dy/dx = g(x, y)

 utilizando el método de Euler.

 Autor: Marc Meléndez Schofield.
 Se permite la reproducción, distribución y modificación de este código.

 
/----------------------------------------------------------------------------/

 Para ejecutar este programa en Unix/Linux:
   bc -l Euler.bc
 Para grabar los datos en un fichero, se puede hacer así:
   bc -l Euler.bc > Euler.dat

 La solución numérica se puede representar en gnuplot. Primer se ejecuta
 gnuplot:
   gnuplot
 y luego se utiliza el comando:
   gnuplot> plot "Euler.dat" w l

 */

/* Definición de la función g(x, y) en la ecuación diferencial */
define g(x,y) {
 return 4*y*(1 - y);
}

/* Parámetros del algoritmo de integración numérica */
scale = 5; /* Número de decimales en los cálculos */
dx = 0.001; /* Paso de integración */
x0 = 0; /* Valor inicial de x */
xf = 5; /* Valor final de x */
y = 0.002; /* Valor inicial de y = y(x0) */ 

/* Cabecera de la tabla de datos */
print "# x \t y #\n#---\t---#\n";

/* Algoritmo de integración numérica (método de Euler) */
for(x = x0; x <= xf; x += dx)
{
  y += g(x,y)*dx;

  print x, "\t", y, "\n";
}

quit;
Para representar un campo de pendientes en Maxima, utilizamos los comandos:
(%i1) load("plotdf");
(%o1)         /usr/share/maxima/5.32.1/share/dynamics/plotdf.lisp
(%i2) plotdf([y,x]);
(%o2)                      /home/marc/maxout.xmaxima

Divulgación

El fractal de Mandelbrot

Hace unos años, me pidieron que escribiera un artículo sobre Mandelbrot que puedes encontrar siguiendo el enlace:

Mandelbrot, domador de fieras matemáticas.

El fractal de Mandelbrot

Para dibujar el fractal tenemos que calcular qué ocurre con cada punto c del plano complejo cuando realizamos la siguiente iteración:
zn+1 = zn2 + c, (con z0 = 0).
Pintamos de negro los puntos tales que limn→∞ |zn| < ∞.

He escrito debajo un código sencillo de bc que genera el fractal de Mandelbrot. Se apoya en mis rutinas de números complejos. Genera una lista de coordenadas x e y, junto con el color correspondiente a la coordenada. Luego se pueden utilizar estos datos para representar el fractal. Yo utilicé gnuplot.

/* Ejecutar con bc -l complejos.bc mandelbrot.bc */

scale = 20;
maxcolor = 100;

/* Calcular el color de c = x + iy */

define mandelbrot(x, y) {
      zn[0] = 0;
      zn[1] = 0;
      c[0] = x;
      c[1] = y;

      for(k = 0; k <= maxcolor; k++)
      {
        /* El nuevo valor de zn es (zn)^2 + c */
        . = prodz(zn[], zn[], zn[]); /* Cuadrado */
        . = sumaz(zn[], c[], zn[]); /* Sumar c */

        /* Si el módulo de zn aumenta sin límite,
           se le asigna un color */
        if(modz(zn[]) > 2)
          return maxcolor - k;
      }

      /* Si el módulo sigue acotado,
         dejamos un punto negro */
      return 0;
}

/* Generar el fractal con 400x400 píxeles */

for(x = 0; x <= 400; x++)
{
  for(y = 0; y <= 400; y++)
  {
    print x, " ", y, " ";
    print mandelbrot(-2.0 + 3.0*x/400, 2.0*y/400 - 1.0), "\n";
  }
  print "\n";
}

quit;

Ampliar el fractal de Mandelbrot

Ampliación del fractal de Mandelbrot

En la segunda tutoría, si no recuerdo mal, dije que si amplías el fractal de Mandelbrot tanto como quieras, sigue teniendo una estructura intrincada. Un alumno me dijo que había intentado ampliar la imagen del apartado anterior. Evidentemente, en ese caso se acaban viendo sólo unos cuantos píxeles de colores. Yo me refería a ampliar la estructura matemática, no una imagen del conjunto. Debajo he incluido enlaces a vídeos donde se aplican ampliaciones verdaderamente gigantescas al fractal de Mandelbrot:

Mandelbrot Zoom 10^227 [1080x1920]

Mandelbrot fraktaler super deep 2 2^4750

A mí me encanta el último medio minuto de estos vídeos. Se ve algo realmente fascinante.

Transformaciones de Möbius y la esfera de Riemann

Transformación de Möbius

Durante una tutoría mencioné brevemente que las transformaciones de Möbius se podían entender desde el movimiento de la esfera de Riemann. En 2007, D. Arnold y J. Rogness crearon un cortometraje que ilustraba muy bien esta idea: Möbius Transformations Revealed.