Sei sulla pagina 1di 12

AMPLIACI

ON DE MATEM

ATICAS (2
o
Ing. de Telecomunicacion y Aeronautica)
Departamento de Matematica Aplicada II. Universidad de Sevilla
CURSO ACAD

EMICO 2008-2009
lractica \l Iuncioncs dc una variac comjc,a
Las herramientas que desarrollaremos en esta practica relativas a la transformacion
de una curva o un recinto mediante una funcion compleja w = f(z) seran facilmente
adaptables a la transformacion de una curva o un recinto mediante una funcion vectorial
f : R
2
R
2
denida sobre un recinto plano.
` umcros comjc,os
En MATLAB la unidad imaginaria se denota, por defecto, mediante i o j siempre y
cuando dicha letra no sea utilizada para denotar una variable/ndice/funcion/..., es decir,
si tenemos que trabajar con expresiones complejas, no podemos utilizar la letra i o la
letra j (la que usemos para denotar la unidad imaginaria) como un ndice, un contador
de un bucle, un vector, etc., puesto que al ser usada como variable pierde su valor como
unidad imaginaria.
Cuando i o j son usadas como tal (unidad imaginaria), no es necesario indicar la
operacion mutiplicaci on para obtener un m ultiplo, las dos ordenes
>> 2-3i
>> 2-3*i
dan lugar al mismo resultado.
En la ayuda de Matlab, puedes consultar la sintaxis de las siguientes ordenes rela-
cionadas con los n umeros complejos:
real parte real de un dato complejo
imag parte imaginaria de un dato complejo
complex dato complejo construido a partir de sus partes real e imaginaria
abs modulo de un dato complejo, valor absoluto de un dato real
conj complejo conjugado de un dato complejo
angle Argumento principal de un dato complejo
sign Funcion signo. Para un dato complejo z, no-nulo,
z
|z|
.
isreal determina si un dato es real o complejo
1
De las ordenes anteriores, merece especial atencion angle que, aplicada a un n umero
complejo z, proporciona su argumento principal Arg(z) (, ] (medido en radianes).
Si separamos las partes real x e imaginaria y de z, la orden atan2 aplicada a (y,x)
proporciona el mismo valor. Por ejemplo,
>> t1=angle(-3), t2=atan2(0,-3)
t1 =
3.1416
t2 =
3.1416
>> s1=angle(-1+2i), s2=atan2(2,-1)
s1 =
2.0344
s2 =
2.0344
Aunque desde cierto punto de vista trabajar con n umeros/vectores/matrices comple-
jos, en MATLAB, es similar a trabajar con n umeros/vectores/matrices reales, hay que
tener siempre presente que mientras que con un n umero real representamos un punto de
una recta, con un n umero complejo representamos un punto de un plano. Por ejemplo,
esta situacion queda patente cuando se hace uso del comando plot.
Ejercicio 1. (Resuelto).- Obtener una particion del intervalo [0, 1] y los valores de la
funcion y = f(x) = x
2
en los puntos de dicha particion. Almacenando los puntos y valores
obtenidos en dos vectores-la x e y respectivamente, aplicar la orden plot a x,y como:
(a) pareja de vectores-la, (b) un unico vector-la, (c) una matriz con dos las y (d)
vector complejo con parte real x y parte imaginaria y.
Generamos los vectores reales
>> x=[-1:0.05:1];
>> y=x.^2;
y el vector complejo
>> z=complex(x,y)
cuya parte real es x y cuya parte imaginaria es y. Observa las diferencias y las analogas
de las gracas que se obtienen al ejecutar las siguientes ordenes:
>> subplot(2,2,1), plot(x,y) % dos vectores-fila, dibuja abscisas-ordenadas
>> subplot(2,2,2), plot([x,y])
% un unico vector-fila, dibuja indice-entradas del vector
>> subplot(2,2,3), plot([x;y])
% una matriz con dos filas, dibuja cada columna
>> subplot(2,2,4), plot(z)
% un vector-fila complejo, dibuja parte real-parte imaginaria
2
1 0.5 0 0.5 1
0
0.2
0.4
0.6
0.8
1
0 20 40 60 80 100
1
0.5
0
0.5
1
1 1.2 1.4 1.6 1.8 2
1
0.5
0
0.5
1
1 0.5 0 0.5 1
0
0.2
0.4
0.6
0.8
1
mediante las cuales se obtiene una ventana graca en la que aparecen cuatro gracas (no
superpuestas). Consulta la ayuda sobre la orden subplot para conocer sus caractersticas.
Notemos que si tenemos datos reales (n umeros, vectores, matrices, funciones, ...) di-
chos datos pueden ser tratados como complejos con parte imaginaria nula y al aplicarles
algunas ordenes pueden obtenerse resultados distintos seg un sean tratados como reales o
como complejos. Si, por ejemplo, tenemos un vector real x, mediante la instruccion
> z=complex(x)
queda almacenado en z como vector complejo con parte imaginaria nula.
Ejercicio 2. Genera, mediante rand, un vector x aleatorio de 20 coordenadas. Almacena
dicho vector en z como vector complejo. Ejecuta las ordenes
>> figure(1), plot(x)
>> figure(2), plot(z)
y explica el signicado de cada graca.
Para pasar de coordenadas polares a coordenadas cartesianas podemos usar la orden
de Matlab, pol2cart. Para pasar de coordenadas cartesianas a coordenadas polares
podemos usar la orden de Matlab, cart2pol, teniendo en cuenta que el argumento que
se obtiene es el argumento principal, es decir, el que pertenece al intervalo (, ].
3
Lcnicion dc tuncioncs comjc,as
La denicion, con MATLAB, de funciones complejas w = f(z) de una variable com-
pleja z y la obtencion de los valores de una funcion en las entradas de un vector o una
matriz complejos, no es distinta a lo que ya conocemos del caso real: denicion simb olica
mediante el comando inline, denicion mediante un archivo .m de funcion, obtencion
de los valores mediante feval, .... Obviamente, lo que no puede ser similar es la repre-
sentaci on graca. Para tener una imagen graca de la accion de una funcion de variable
compleja, en las siguientes secciones recurrimos a transformar curvas y recintos.
Las funciones elementales:
Polinomios, racionales,... se manipulan de forma analoga al caso real.
Funciones exponenciales, trigonometricas e hiperbolicas (directas):
exp(z), cos(z), sin(z), tan(z), cosh(z), . . .
se manipulan como en el caso real ya que estan predenidas para valores complejos.
Funciones que tienen varias ramas: logaritmo, potencias fraccionarias, funciones
trigonometricas e hiperbolicas inversas, ... Hay que tener en cuenta que MATLAB
trabaja, de forma predeterminada con la rama principal de dichas funciones.
En lo que respecta a la funcion logaritmo (neperiano), la funcion log predenida en
MATLAB es la funcion compleja de variable compleja: Logaritmo principal,
0 = z C w = log(z) = log |z| + iArg(z), < Arg(z) ,
es decir, siendo z = re
i
, r > 0, < su logaritmo denido en Matlab es
log(z) = log(r) + i.
As, en terminologa Matlab:
z=abs(z)*exp(i*angle(z)) log(z) = log(abs(z))+i*angle(z).
En lo que respecta a las potencias fraccionarias cabe decir algo similar, el calculo
de, por ejemplo, la raz c ubica de un n umero complejo (no nulo) z no es el calculo
de sus tres races c ubicas sino el de una de ellas, en concreto la que se obtiene a
partir del argumento principal = Arg(z) (, ] de z mediante
z = |z| e
i

z =
3

|z| e
i

3
.
As, en terminologa Matlab:
z=abs(z)*exp(i*angle(z))} ---->
----> z^(1/3) = (abs(z))(1/3)*exp(i*angle(z)/3).
4
Por ejemplo, para calcular
3

1 tenemos que ejecutar >> (-1)^(1/3) y aunque


una de las tres races c ubicas de 1 sea real, el resultado que se obtiene es 0.5000
+ 0.8660i que es la raz c ubica de 1 que tiene argumento

3
.
Si quisieramos/necesit aramos trabajar con otra rama distinta de la principal de las
funciones anteriores, antes o despues de aplicar la funcion de Matlab necesitaramos
hacer un giro, es decir multiplicar por una determinada exponencial e
i
.
Transtormacion dc curvas cn c jano comjc,o
En esta seccion vamos a considerar curvas que podamos describir de forma parame-
trica con lo cual tendremos tambien descrita en forma parametrica la curva transformada
f() = {w = f(z) : z }. Es decir, conocida z = z(t), t [a, b] obtenemos su
imagen mediante f() w = f(z(t)), t [a, b].
Ejercicio 3. (Resuelto).- Transforma, mediante w = f(z) = e
z
los siguientes segmentos
de recta:
(a)
1
el segmento de recta que une los puntos (1, 0) 1 y (1, 3) 1 + 3i.
(b)
2
el segmento de recta que une los puntos (1, 2) 1 + 2i y (2, 2) 2 + 2i.
(a) Siguiendo los pasos descritos:
Parametrizamos
1
,
z = z(t) = 1 + ti, t [0, 3].
Obtenemos la curva transformada,
f(
1
) w = f(z(t)) = e
1+ti
, t [0, 3].
Codigo Matlab para representar en una misma gura, con dos ventanas gracas,
las curvas
1
y f(
1
)
>> t=[0:0.1:3]; % particion del intervalo del parametro
>> z=1+t*i; % puntos de la curva original
>> w=exp(z); % puntos de la curva transformada
>> subplot(1,2,1), plot(z), axis([-1,2,-1,4],equal)
>> subplot(1,2,2), plot(w), axis([-3,3,-3,3],square)
(b) Siguiendo los pasos descritos:
Parametrizamos
2
,
z = z(t) = t + 2i, t [0, 3].
Obtenemos la curva transformada,
f(
2
) w = f(z(t)) = e
t+2i
, t [1, 2].
5
Codigo Matlab para representar en una misma gura, con dos ventanas gracas,
las curvas
1
y f(
1
)
>> t=[-1:0.1:2]; % particion del intervalo del parametro
>> z=t+2*i; % puntos de la curva original
>> w=exp(z); % puntos de la curva transformada
>> subplot(1,2,1), plot(z)
>> subplot(1,2,2), plot(w)
Ejercicio 4. Transforma, mediante w = f(z) =
1
z
, las curvas siguientes:
(a)
1
: El segmento de recta cuyos extremos son el origen de coordenadas y el punto
(1, 1) (excluyendo el origen de coordenadas).
(b)
2
: El segmento de recta cuyos extremos son el punto (
1
2
,
1
2
) y el punto (3, 3).
(c)
3
: La circunferencia de centro el origen de coordenadas y radio 2.
(d)
4
: La circunferencia de centro (1, 0) y radio 1 (excluyendo el origen de coordenadas).
Para cada curva, tienes que obtener, en una misma gura con dos ventanas gracas, la
curva original y la curva transformada.
Ejercicio 5. (El perl de Joukowski).- Transforma, mediante w = f(z) = z +
1
z
, las
curvas siguientes:
(a)
1
: La circunferencia de centro el origen de coordenadas y radio 1. A pesar del
resultado graco que obtengas, fruto de calculos numericos, es facil comprobar que
f(
1
) es el segmento que une los puntos (1, 0) y (1, 0).
(b)
2
: Una circunferencia que pase por los puntos (1, 0) y (1, 0) y con centro distinto
del origen, por ejemplo con centro en (0, 1) i.
(c)
3
: Una circunferencia que pase por (1, 0) y tenga al punto (1, 0) en su interior,
por ejemplo la que tiene centro en el punto (1, 1) 1 + i.
Para cada curva, tienes que obtener, en una misma gura con dos ventanas gracas, la
curva original y la curva transformada.
Transtormacion dc rccintos cn c jano comjc,o
Una forma de estudiar como se transforma un recinto plano, mediante una determinada
funcion, es recorrer el recinto mediante dos haces de curvas de forma que cada punto del
recinto sea la intersecci on de una ( unica) curva de uno de los haces con una ( unica) curva
del otro. Los casos mas simples, relacionados con las coordenadas cartesianas y polares
respectivamente son:
6
Un rectangulo con lados paralelos a los ejes coordenados:
Un crculo ya que cada punto es la intersecci on de una semirrecta que parte del
centro con una circunferencia con centro el del crculo.
Utilizando coordenadas polares, el segundo caso se reduce al primero puesto que para
recorrer el crculo en cuestion las coordenadas polares respectivas recorren un rectangulo.
La herramienta basica que vamos a utilizar, ademas de considerar recintos que puedan
describirse en forma parametrica, es la orden meshgrid que permite obtener un mallado de
un rectangulo. Esto permitira obtener cada haz de curvas sin necesidad de parametrizarlas
una a una y recorrerlas todas mediante un bucle.
Si tenemos particiones de los lados de un rectangulo (con lados paralelos a los ejes)
almacenadas en los vectores
x, el lado paralelo al eje de abscisas, con N + 1 coordenadas [x
0
, x
1
, , x
n
], e
y, el lado paralelo al eje de ordenadas, con M + 1 coordenadas [y
0
, y
1
, , y
m
],
al ejecutar >> [X,Y]=meshgrid(x,y); se obtienen dos matrices X e Y de dimensiones
m n siendo X la matriz cuyas M + 1 las son todas iguales al vector x e Y la matriz
cuyas N + 1 columnas son todas iguales al vector y. De esta forma, las coordenadas
(x
h
, y
k
) de cada punto del mallado, asociado a las particiones, se obtienen como entradas
(h + 1, k + 1) de X (la primera coordenada) e Y (la segunda coordenada). Notemos que,
siendo las matrices X e Y reales, esto mismo se podra conseguir con las transpuestas de
X e Y . Por ejemplo, consideremos
>> x=[1, 2];
>> y=[3,4,5];
>> [X,Y]=meshgrid(x,y)
X =
1 2
1 2
1 2
Y =
3 3
4 4
5 5
>> Z=X, T=Y
Z =
1 1 1
2 2 2
T =
3 4 5
3 4 5
7
Los puntos del mallado asociado a x=[1,2], y=[3,4,5],
(1, 3), (1, 4), (1, 5), (2, 3), (2, 4), (2, 5)
se pueden obtener mediante las entradas de las matrices X, Y o mediante las entradas
de las matrices Z, T. El hecho de que Matlab almacene las matrices por columnas queda
patente cuando aplicamos la orden plot a un mallado.
Ejercicio 6. (Resuelto).- Consideremos un mallado del rectangulo [1, 3] [1, 2], par-
tiendo cada lado en subintervalos de longitud 0.1 (por ejemplo) y apliquemos la orden
plot a [X,Y] y a [X,Y][transpose(X),transpose(Y)]
>> x=[1:0.1:3];
>> y=[1:0.1:2];
>> [X,Y]=meshgrid(x,y);
>> subplot(1,2,1), plot(X,Y)
>> subplot(1,2,2), plot(X,Y)
Siendo >> Z=complex(X,Y); Zt=complex(X,Y);
las ordenes plot ejecutadas son equivalentes, respectivamente, a
>> plot(Z); >> plot(Zt);
Notemos que, dada una matriz compleja Z, la matriz Z es la transpuesta-conjugada
de Z, la matriz transpuesta de Z se obtiene mediante transpose(Z).
Ejercicio 7. (Resuelto).- Transforma mediante la funcion w = f(z) = z
2
el rectangulo
= {z C : 0 real(z) 1, 0 imag(z) 2} = [0, 1] [0, 2]
describiendo como se transforman los segmentos paralelos a los lados del rectangulo.
>> x=[0:0.1:1]; % particion del lado horizontal
>> y=[0:0.1:2]; % particion del lado vertical
>> [X,Y]=meshgrid(x,y); % puntos del mallado
>> Z=complex(X,Y);
>> subplot(1,2,1), plot(Z,b)
% lineas horizontales determinadas por el mallado
>> hold on
>> subplot(1,2,1), plot(transpose(Z),r)
% lineas verticales determinadas por el mallado
>> W=Z.^2; % transformacion de los puntos del mallado
>> subplot(1,2,2), plot(W,b), hold on
% transformadas de las lineas horizontales
>> subplot(1,2,2), plot(transpose(W),r)
% transformadas de las lineas verticales
8
Ejercicio 8. (Resuelto) De forma analoga a lo hecho en el Ejercicio 7, transforma los
siguientes recintos mediante la funcion exponencial w = f(z) = e
z
:
(a) El cuadrado unidad.
(b) El crculo unidad, recorriendo dicho crculo mediante segmentos que parten del origen
de coordenadas.
(a) Se deja como ejercicio.
(b) Utilizando coordenadas polares, un segmento que este sobre una recta que parta del
origen de coordenadas esta formado por puntos para los cuales el angulo polar es
constante y el radio vara en un cierto intervalo. Por tanto, para recorrer el crculo
unidad, el argumento (angulo) debe variar en un intervalo de longitud 2 y el modulo
(radio) debe variar en [0, 1]. De esta forma, en terminos complejos, el crculo unidad
esta formado por los puntos
z = re
it
, 0 t 2, 0 r 1.
>> t=[0:2*pi/100:2*pi]; % particion del intervalo de t
>> r=[0:0.1:1]; % particion del intervalo de r
>> [T,R]=meshgrid(t,r);
% mallado del rectangulo de variacion de los parametros
>> Z=R.*exp(i*T);
% mallado correspondiente en el recinto de variacion de z
>> W=exp(Z); % mallado del recinto transformado w
>> subplot(1,2,1), plot(Z), axis square % dibujo z
>> subplot(1,2,2), plot(W), axis square % dibujo w
1 0.5 0 0.5 1
1
0.5
0
0.5
1
z
0 1 2 3
1.5
1
0.5
0
0.5
1
1.5
w=exp(z)
9
Ejercicio 9. De forma analoga a lo hecho en el Ejercicio 7, transforma los siguientes
recintos mediante la funcion w = f(z) = z
2
:
(a) Un rectangulo [0, 1] [0, b].
(b) El primer cuadrante del crculo unidad, recorriendo dicho crculo mediante segmentos
que parten del origen de coordenadas.
Ejercicio 10. De forma analoga a lo hecho en el Ejercicio 7, transforma los siguientes
recintos mediante la funcion w = f(z) =
1
z
:
(a) Un rectangulo [1, a] [b, b].
(b) El crculo unidad (excepto el origen de coordenadas), recorriendo dicho recinto me-
diante circunferencias con centro el origen de coordenadas.
Transtormacioncs dc `oius
Una funcion compleja w = f(z) denida por
w =
az + b
cz + d
siendo a, b, c y d cuatro constantes complejas se denomina transformacion de Mobius (o
transformacion bilineal o transformacion lineal fraccional). La utilidad de esta transfor-
macion proviene de las siguientes propiedades:
Si consideramos esta transformacion tambien denida sobre z = y pudiendo
tomar el valor , se tiene una transformacion uno-a-uno C{} C{}, es
decir, dado w
0
C {} arbitrario, la ecuacion
az + b
cz + d
= w
0
tiene una unica solucion z
0
C{}. Por otra parte, la transformacion inversa
de una transformacion de Mobius es otra transformacion de Mobius,
w =
az + b
cz + d
z =
dw + b
cw a
.
Una transformacion de Mobius queda determinada conociendo los transformados
w
1
, w
2
, w
3
C{} (distintos entre s) de tres puntos z
1
, z
2
, z
3
C{} (distintos
entre s). Notemos que aunque la transformacion de Mobius sea unica, no lo son los
coecientes a, b, c, d. Dichos coecientes son unicos salvo constantes. Por ejemplo,
2z + (3 i)
(1 + i)z 4
=
2iz + (3i + 1)
(i 1)z 4i
, z C {} .
10
Una transformacion de Mobius, transforma una circunferencia generalizada (recta o
circunferencia, curva que puede expresarse mediante una ecuacion del tipo

z z
0
z z
1

=
> 0) en otra circunferencia generalizada.
Conserva la simetra respecto de una circunferencia generalizada.
Para mas detalles sobre estas propiedades, y en particular sobre el concepto de simetra
respecto de una circunferencia, consultar casi cualquier texto sobre un primer curso de
variable compleja.
Ejercicio 11. (Resuelto) Vamos a construir una funcion Matlab que calcule los coe-
cientes a, b, c, d C de la funcion
w = f(z) =
az + b
cz + d
sabiendo que transforma, respectivamente, tres puntos distintos z
1
, z
2
, z
3
C dados en
otros tres puntos distintos dados w
1
, w
2
, w
3
C. Cada una de las ecuaciones
az
1
+ b
cz
1
+ d
= w
1
,
az
2
+ b
cz
2
+ d
= w
2
,
az
3
+ b
cz
3
+ d
= w
3
,
se puede expresar como una ecuacion lineal homogenea con incognitas a, b, c, d C.
Esto nos lleva a un sistema lineal homogeneo de tres ecuaciones con cuatro incognitas
z
1
a + b z
1
w
1
c w
1
d = 0
z
2
a + b z
2
w
2
c w
2
d = 0
z
3
a + b z
3
w
3
c w
3
d = 0

cuya matriz A =

z
1
1 z
1
w
1
w
1
z
2
1 z
2
w
2
w
2
z
3
1 z
3
w
3
w
3

tiene rango 3. Para resolver este sistema homogeneo vamos a usar la orden null que,
aplicada a una matriz, proporciona una base del conjunto solucion del sistema homogeneo
asociado.
En un archivo .m de funcion, que llamaremos mobius1.m grabamos las siguientes
ordenes:
function [a,b,c,d]=mobius1(z1,z2,z3,w1,w2,w3)
A=[z1, 1, - z1*w1, - w1;
z_2, 1, - z2*w2, - w2;
z_3, 1, - z3*w3, - w3];
sol=null(A,r);
a=sol(1);
b=sol(2);
c=sol(3);
d=sol(4);
11
Al ejecutar, por ejemplo
>> [a,b,c,d]=mobius1(1,2-3i,-2-2i,0,3+i,4i)
se obtienen los coecientes
a =
1.0378 - 0.6270i
b =
-1.0378 + 0.6270i
c =
-0.0108 - 0.5351i
d =
1
de la transformacion de Mobius w = f(z) =
az + b
cz + d
que cumple que
f(z1) = w1, f(z2) = w2 y f(z3) = w3.
Se deja como ejercicio:
(a) Incluir, en el chero mobius1.m, unas lneas de ayuda describiendo lo que hace la
funcion y las limitaciones que tiene.
(b) Incluir, en el chero mobius1.m, unas lneas mediante las cuales se compruebe si
los argumentos de entrada dados (z1,z2,z3,w1,w2,w3) verican las condiciones
descritas y, en caso de que no se cumplan, muestre un mensaje de error.
12

Potrebbero piacerti anche