umeros Complejos con Matlab
Numeros Complejos con Matlab Contents Números complejos expresados expresa dos en forma binómica. Conjugado de un número complejo Representación gráfica de números complejos en forma binómica. Operaciones con números complejos en forma binómica Números complejos expresados expresa dos en forma polar. Representación gráfica de números complejos en forma polar. Operaciones con números complejos en forma polar. Raíces de números complejos Números complejos expresados en forma binómica. Matlab reconoce números complejos y los expresa en forma binómica. Ejemplo: sqrt(-1)
ans = 0 + 1.0000i
Ingreso de números complejos (ejemplo: asignamos a la variable z1 el valor 4
+ 5i):
z1 = 4 + 5i
z1 = 4.0000 + 5.0000i
Funciones Matlab para extraer la parte real e imaginaria de un número complejo: real() extrae
la parte real de un complejo imag() extrae la parte imaginaria de un complejo Ejecutamos esta función sobre la variable compleja z1 antes definida. En este caso, asignamos esos valores a dos nuevas variables z1Real y z1Imag: z1Real = real(z1) z1Imag = imag(z1)
z1Real = 4
umeros Complejos con Matlab
z1Imag = 5
Conjugado de un número complejo Para obtener el conjugado de un complejo z se usa la función
conj():
conj (3+7i)
ans = 3.0000 - 7.0000i
Representación gráfica de números complejos en forma binómica. Los números complejos pueden representarse utilizando el diagrama de Argand. Para ello se puede usar la función plot(x,y) . Definimos los complejos z2, z3, z4 y z5: z2 z3 z4 z5
= = = =
-3 + 4i -2 - 3i 4 - 2i 4 + 4i
z2 = -3.0000 + 4.0000i
z3 = -2.0000 - 3.0000i
z4 = 4.0000 - 2.0000i
z5 = 4.0000 + 4.0000i
y los representamos usando plot(x,y) . Notas: plot(x,y,'color simbolo tipodelinea') grafica
los valores de los vectores x e y con las opciones seleccionadas. En este caso, como queremos representar los puntos
umeros Complejos con Matlab
del plano complejo que corresponden a cada uno de los cuatro números, y unir el origen de coordenadas con esos puntos por medio de una línea, el vector x tiene dos elementos (coordenadas x de los dos puntos, en este caso 0 y el valor real del complejo) y el vector y también tiene dos elementos (coordenadas y de los dos puntos, en este caso 0 y el valor imaginario del complejo). Los puntos se representan con una marca del color elegido (primer letra, en inglés) con forma "o" unidos por una línea continua "-" hold on permite representar los cuatro números en el mismo gráfico (agrega objetos al gráfico activo), para desactivarlo se % usa hold off grid permite visualizar la grilla xlim e ylim permite definir los límites de los ejes coordenados xlabel e ylabel agregan leyendas que identifican a los ejes coordenados legend agrega leyendas identificando cada gráfico. Para mostrar las leyendas en un lugar del gráfico donde no oculte datos se agrega Location y a continuación la posición del cuadro de leyendas (como si se tratara de un mapa) plot([0 real(z2)],[0 imag(z2)],'bo-'); hold on; plot([0 real(z3)],[0 imag(z3)],'ro-'); plot([0 real(z4)],[0 imag(z4)],'mo-'); plot([0 real(z5)],[0 imag(z5)],'go-'); grid on; xlim([-5 5]); ylim([-5 5]); xlabel('Real'); ylabel('Imaginario'); legend('z2','z3','z4','z5','Location','SouthWest'); hold off;
umeros Complejos con Matlab
Operaciones con números complejos en forma binómica En este caso asignamos a nuevas variables el resultado de operaciones entre las variables complejas definidas hasta ahora. zSuma = z1 + z2 + z3 zResta = z4 - z5 zProducto = zSuma * z3 zCociente = zSuma / zResta
zSuma = -1.0000 + 6.0000i
zResta = 0 - 6.0000i
zProducto = 20.0000 - 9.0000i
zCociente = -1.0000 - 0.1667i
Representamos gráficamente el complejo zSuma (con color cian) y sus sumandos: (Nota: borra la figura anterior) clf; hold on; x1=real(z1); y1=imag(z1); plot([0 x1],[0 y1],'bo-'); x2=x1+real(z2); y2=y1+imag(z2); plot([x1 x2],[y1 y2],'ro-'); x3=x2+real(z3); y3=y2+imag(z3); plot([x2 x3],[y2 y3],'go-'); plot([0 real(zSuma)],[0 imag(zSuma)], 'co-'); grid on; xlim([-3 5]); ylim([-2 10]); xlabel('Real'); ylabel('Imaginario'); legend('|z1|','|z2|','|z3|','z1+z2+z3','Location','SouthEast'); hold off;
clf
umeros Complejos con Matlab
Números complejos expresados en forma polar. Las funciones abs() y angle() permiten calcular el módulo y el argumento, respectivamente, de un número complejo expresado en forma binómica. Importante: el argumento calculado por angle() está en radianes . Definimos el complejo z6: z6 = 4+3i
z6 = 4.0000 + 3.0000i
Calculamos el módulo del complejo z y asignamos el valor a la variable r6: r6 = abs(z6)
r6 = 5
Calculamos el argumento del complejo z y asignamos el valor a la variable theta6rad (argumento en radianes):
umeros Complejos con Matlab
theta6rad = angle(z6)
theta6rad =
0.6435
Pasamos el argumento de radianes a grados: theta6grados = theta6rad*180/pi
theta6grados =
36.8699
Podemos definir un número complejo en Matlab en forma polar, usando la forma exponencial (derivada de la fórmula de Euler): z7 = 5 * exp(i*pi/4)
z7 = 3.5355 + 3.5355i
Como se puede observar en el resultado, aún cuando el número complejo se defina en forma polar, Matlab lo convierte a forma trigonomé trica. Para recuperar la forma polar, debemos usar abs y angle. abs(z7) angle(z7)
ans = 5
ans =
0.7854
Representación gráfica de números complejos en forma polar. Podemos usar la función compass(z) . Representamos los cuatro complejos del primer gráfico:
umeros Complejos con Matlab
compass(z2,'b'); hold on; compass(z3,'r'); compass(z4,'m'); compass(z5,'g'); legend('z2','z3','z4','z5','Location','SouthWest'); hold off;
Operaciones con números complejos en forma polar. (2 * exp(i*pi/2)) * (5 * exp(i*pi))
ans = -0.0000 -10.0000i
De otro modo: z6 = 2 * exp(i*pi/2) z7 = 5 * exp(i*pi) zprod = z6 * z7
z6 = 0.0000 + 2.0000i
umeros Complejos con Matlab
z7 = -5.0000 + 0.0000i
zprod = -0.0000 -10.0000i
Raíces de números complejos Si se usa la función sqrt (raíz cuadrada) en un número complejo, como resultado se obtendrá sólo una de las dos raíces. En este caso, Matlab retorna la raíz más cercana al eje x positivo. Ejemplo: sqrt (2+2i)
ans = 1.5538 + 0.6436i
Cuando hay dos raíces simétricas respecto al eje x (por ejemplo, la raíz de un número negativo o de un imaginario puro) Matlab retorna la raíz con parte imaginaria positiva. Ejemplo: sqrt (-4) sqrt (2i)
ans = 0 + 2.0000i
ans = 1.0000 + 1.0000i
Para obtener todas las raíces cuadradas, y las n-ésimas raíces en general, del complejo z, se debe plantear el problema de buscar las n raíces del polinomio Ejemplo: raíces cuadradas de los complejos planteados anteriormente: Raíces cuadradas w de z
= 2+2i:
son las raíces del polinomio w^2
= z = (2+2i)
Escribimos el polinomio w^2 - (2+2i) = 0 representándolo por medio de un vector de n+1 términos, donde los términos son los coeficientes del polinomio en orden decreciente (en este caso, el polinomio completo es 1*w^2 - 0*w - (2+2i) = 0 :
umeros Complejos con Matlab
polinomio = [1 0 -(2+2i)] r = roots (polinomio)
polinomio = 1.0000
0
-2.0000 - 2.0000i
r = 1.5538 + 0.6436i -1.5538 - 0.6436i
Podemos ver que la primer raíz obtenida es la que había retornado Matlab con la función sqrt() (la más cercana al eje x positivo). Las representamos usando compass : compass (r);
Raíces cuadradas de z Polinomio: w^2
= -4,
es decir, 1*w^2
polinomio = [1 0 4] r = roots (polinomio)
polinomio =
= -4 - 0*w + 4 = 0
umeros Complejos con Matlab
1
0
4
r = 0 + 2.0000i 0 - 2.0000i
Representamos las raíces: compass (r);
Raíces cuadradas de z
= 2i
polinomio = [1 0 -2i] r = roots (polinomio) compass (r);
polinomio = 1.0000
r = 1.0000 + 1.0000i -1.0000 - 1.0000i
0
0 - 2.0000i
umeros Complejos con Matlab
Para las raíces n-ésimas con n Ejemplo: raíces cúbicas de z
= 1
polinomio = [1 0 0 -1] r = roots (polinomio) compass (r);
polinomio = 1
0
0
r = -0.5000 + 0.8660i -0.5000 - 0.8660i 1.0000
> 2,
-1
solamente se debe incrementar el grado del polinomio.
umeros Complejos con Matlab
Ejemplo: raíces cuartas de z
= 16i
polinomio = [1 0 0 0 -16i] r = roots (polinomio) compass (r);
polinomio = Columns 1 through 4 1.0000
0
Column 5 0 -16.0000i
r = -1.8478 -0.7654 0.7654 1.8478
+ +
0.7654i 1.8478i 1.8478i 0.7654i
0
0
umeros Complejos con Matlab
Published with MATLAB® 7.12