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