Subido por Ignacio Diaz

Grafica-funciones-complejas

Anuncio
UNIVERSIDAD DE CONCEPCIÓN
FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS
DEPARTAMENTO DE INGENIERÍA MATEMÁTICA
Complementos de Cálculo
521234
Concepción, 05 de abril de 2019
Gráfica de funciones de variable compleja
En este documento, se explica cómo graficar una función de variable compleja en el computador.
Para ello utilizaremos el software libre Octave. También es posible utilziar Matlab.
1.
Grafica de funciones
Supongamos que queremos graficar la f (z) = z 2 + 1 con z ∈ C. Como C es no acotado, realizaremos
la gráfica en el conjunto Ω = {z = (x, y) ∈ C : −4 ≤ x ≤ 4 ∧ −4 ≤ y ≤ 4}. Pare ello hacemos lo
siguiente:
Creamos un rutero llamado, por ejemplo, graficoF.m. En él, definimos la función a graficar
de la siguiente manera:
1
f = @( z ) z .^2+1;
Luego creamos una grilla de puntos del dominio Ω = {(x, y) ∈ C : −4 ≤ x ≤ 4 ∧ −4 ≤ y ≤ 4}
1
[x , y ] = meshgrid ( -4:0.1:4 , -4:0.1:4) ;
Como z = x + iy, calculamos los valores de z asociados a cada punto (x, y) de la grilla:
1
z = x + 1i*y;
Observación: En Octave y Matlab la unidad imaginaria i se escribe 1i.
Ahora calculamos u(x, y) = Re(z) y v(x, y) = Im(z):
1
2
u = real ( f ( z ) ) ;
v = imag ( f ( z ) ) ;
Graficamos u(x, y):
1
2
3
4
5
6
figure
set ( gca , ' fontsize ' , 20)
surf (x ,y , u )
title ( 'u (x , y ) = Re ( f ( z ) ')
xlabel ( ' Eje X ')
ylabel ( ' Eje Y ')
1
Figura 1: Izquierda: u(x, y). Derecha: v(x, y).
Observación 1: Hemos usado los siguientes comandos:
• figure: abre una nueva ventana para la figura.
• set(gca,’fontsize’, 20): determina el tamaño de las letras en la gráfica. En este caso
el tamaño de letra es 20.
• surf(x,y,u): grafica u en cada puntos (x,y) de la grilla.
• title: es el tı́tulo de la gráfica.
• xlabel e ylabel: Nombre que le queremos dar a los ejes X e Y , respectivamente.
Observación 2: Si queremos eliminar las lı́neas de la grilla, podemos escribir el comando
shading flat.
El programa descrito se encuentra en INFODA y se llama graficaF.m.
Actividad
Dada las siguientes funciones f (z), descomponer f (z) = u(x, y) + iv(x, y) y modificar el programa
anterior para graficar u(x, ) y v(x, y).
1. f (z) =
z3 + 1
z 2 + (3 − i)z − 3i
3. f (z) = sen(z).
2. f (z) = ez .
4. f (z) = Arg(z).
Obs.: El comando para calcular Arg(z) es angle(z).
2
2.
Grafica de regiones en en el plano complejo
1. Supongamos que queremos graficar la región U := {z ∈ C : R1 ≤ |z| ≤ R2 }, donde R1 = 1
y R2 = 3. Esta región corresponde a un anillo centrado en el origen, de radio interior R1 y
radio exterior R2 :
Definimos las variables R1 y R2 :
1
2
R1 = 1;
R2 = 3;
Como la región es un anillo, utilizamos coordenadas polares (r, θ) para construir la grilla:
1
2
3
theta = linspace (0 ,2* pi ,100) ;
r = linspace ( R1 , R2 ,100) ;
[R , T ] = meshgrid (r , theta ) ;
Como x = r cos θ, y = r sen θ y z = x + iy, construimos los siguientes vectores:
1
2
3
X = R .* cos ( T ) ;
Y = R .* sin ( T ) ;
Z = X +1 i .* Y ;
Finalmente graficamos la región:
1
2
3
4
5
6
7
8
surf (X ,Y , zeros ( size ( X ) ) ) ;
set ( gca , ' fontsize ' , 20)
shading flat
view (0 ,90)
title ( ' Region U ')
xlabel ( 'x ')
ylabel ( 'y ')
axis equal
Obs.: El comando axis equal se utiliza para que ambos ejes tengan la misma proporción.
2. Supongamos que además queremos graficar f (Ω), donde f (z) = 1/z y U es la región del
ejemplo anterior.
Definimos la función f :
1
f = @( z ) 1./ z ;
Extraemos las partes reales e imaginarias de f (z)
1
2
Xrec = real ( f ( Z ) ) ;
Yrec = imag ( f ( Z ) ) ;
Graficamos la región:
3
Figura 2: Izquierda: Region U . Derecha: Región f (U ).
1
2
3
4
5
6
7
8
9
figure
surf ( Xrec , Yrec , zeros ( size ( X ) ) ) ;
set ( gca , ' fontsize ' , 20)
shading flat
view (0 ,90)
title ( 'f ( U ) ')
xlabel ( 'x ')
ylabel ( 'y ')
axis equal
El programa descrito se encuentra en INFODA y se llama graficaF.m.
3. Al utilizar un color uniforme, verde como en las gráficas anteriores, es difı́cil visualizar el
efecto de la transformación f (U ). Para entender mejor esta lo que hace la función f , podemos
utilizar una imagen, como la de la Figura 3 en lugar del color verde.
En el anillo U := {z ∈ C : R1 ≤ |z| ≤ R2 } “enrollaremos” la foto de El Campanil.
Cargamos la foto:
1
foto = imread ( ' campanil . jpg ') ;
Al igual que en el caso anterior, definimos las variables y construimos la grilla. En este
caso, el tamaño de los vectores debe ser acorde con el tamaño de la imagen.
1
2
3
R1 = 1;
R2 = 3;
theta = linspace (0 ,2* pi , size ( foto ,1) ) ;
4
Figura 3: Imagen de El Campanil, Universidad de Concepción.
4
5
6
7
8
r = linspace ( R1 , R2 , size ( foto ,2) ) ;
[R , T ] = meshgrid (r , theta ) ;
X = R .* cos ( T ) ;
Y = R .* sin ( T ) ;
Z = X +1 i .* Y ;
Graficamos la región U := {z ∈ C : R1 ≤ |z| ≤ R2 } con la foto “enrollada”, en lugar del
color verde, como se aprecia en el cuadro izquierdo de la Figura 3:
1
2
3
4
5
6
7
8
9
figure
surf (X ,Y , zeros ( size ( X ) ) , ' cdata ' , double ( foto ) /300)
set ( gca , ' fontsize ' , 20)
shading flat
view (0 ,90)
title ( ' Region U ')
xlabel ( 'x ')
ylabel ( 'y ')
axis equal
Graficamos la región f (U ) y el resultado se muestra:en el cuadro derecho de la Figura 3:
1
2
3
4
5
6
7
8
f = @( z ) 1./ z ;
Xrec = real ( f ( Z ) ) ;
Yrec = imag ( f ( Z ) ) ;
figure
surf ( Xrec , Yrec , zeros ( size ( X ) ) , ' cdata ' , double ( foto ) /300) ;
set ( gca , ' fontsize ' , 20)
shading flat
5
Figura 4: Izquierda: Región U Derecha: Región f (U ). Observamos que en la figura izquierda El
Campanil está enrollado en sentido anti-horario y se ubica en la parte central del anillo. En cambio,
en la figura derecha vemos que la función f hizo que El Campanil se enrolle en sentido horario y se
ubique más cerca del cı́rculo interior.
9
10
11
12
13
view (0 ,90)
title ( 'f ( U ) ')
xlabel ( 'x ')
ylabel ( 'y ')
axis equal
El programa descrito se encuentra en INFODA y se llama ejemplo_anillo.m.
Actividad
Dada las siguientes regiones y funciones f , modificar el programa anterior para graficar U y f (U )
1. U := {z ∈ C : 0,2 ≤ |z| ≤ 3}, f (z) = 1/z.
3. U := {z ∈ C : 1 ≤ |z| ≤ 3}, f (z) = z 2 .
2. U := {z ∈ C : 1 ≤ |z| ≤ 3}, f (z) = z+2+i.
4. U := {z ∈ C : |z| ≤ 3}, f (z) = 1/z.
MSP/FPV/msp/fpv
Concepción 05 de abril de 2019.
6
Descargar