1 MATLAB REPRESENTACIÓN Y TRATAMIENTO DE NÚMEROS COMPLEJOS. FUNCIONES DE LIBRERÍA. Los números complejos se representan en Matlab de la siguiente manera: complejo = a + bi; ó complejo = a + bj; ó complejo = a + b*i; Obsérvese que la unidad imaginaria puede representarse tanto con i como con j. La utilización del operador de multiplicación '*' es necesaria en caso de que la parte imaginaria, b, se obtenga como resultado de la aplicación de una función o alguna expresión más compleja que un mero número. Por ejemplo, si ingresamos (sqrt viene de "square root", raíz cuadrada). >> d = 2 + sqrt(4)i; el programa nos arrojará el siguiente error y nos señalará con una barra vertical el motivo del mismo ??? d = 2 + sqrt(4)i | Missing operator, comma, or semi-colon. Esto nos está diciendo que en lugar del + debe ir una coma o un punto y coma, esto es porque Matlab no pudo interpretar el segundo sumando, sqrt(4)i. En cambio si ingresamos >> d = 2 + sqrt(4)*i Mostrará por pantalla >> d d = 2.0000 + 2.0000i ¿Qué sucede con e = 2 + (1/2)i? Ejemplo de uso de las funciones para números complejos: Definimos tres números complejos, recuérdelos, muchas veces haremos referencia a los mismos: >> a = 1 + i; >> b = 1; >> c = i; Las funciones real e imag retornan la parte real y la parte imaginaria de un complejo respectivamente: >> d = 3 + sqrt(2)*i; >> d (sin ;) d = 3.0000 + 1.4142i >> real(d) ans = 3 >> imag(d) ans = 1.4142 La función isreal retorna 0 en caso de que el complejo al cual es aplicada posea parte imaginaria no nula, y 1 en caso contrario. >> isreal(a) ans = 0 >> isreal(b) ans = 1 Apliquemos ahora la función abs: >> abs(a) ans = 1.4142 >> abs(b) ans = 1 >> abs(c) ans = 1 2 Puede observarse que esta función retorna el módulo de un complejo. Para conseguir el argumento se aplica angle, el resultado es el ángulo en radianes. >> angle(a) ans = 0.7854 Note que es lo mismo que hacíamos en clases >> atan(imag(a)/real(a)) ans = 0.7854 Si queremos el ángulo expresado en grados debemos utilizar la función rad2deg (también existe la función inversa deg2rad, pruébela): >> rad2deg(ans) ans = 45 Entonces el ejercicio de convertir un número complejo a forma polar puede llevarse a cabo en dos pasos: >> d = -sqrt(3) + i d = -1.7321 + 1.0000i >> modulo = abs(d) modulo = 2 >> argumento = rad2deg(angle(d)) argumento = 150.0000 Es interesante ver la representación gráfica de los complejos en el plano; mediante la función polar podemos hacerlo. >> polar(angle(a), abs(a)); Esta función recibe dos argumentos, el primero es el argumento del número complejo a representar, y el segundo su módulo. Se abrirá una nueva ventana llamada Figure No.1, ¿ve el punto?, seguro que no, el mismo está sobre la circunferencia por lo tanto es imposible verlo. Sabemos donde está ¿no?. Anteriormente calculamos el argumento de a, el cual es 45°. Hagamos un cambio sutil al comando anterior >> polar(angle(a), abs(a), '*r'); Ahora la función recibe tres argumentos, los dos que ya conocemos y un tercero que le indica a Matlab que aspecto tendrá el complejo, - el asterísco, *, significa que en lugar de aparecer un diminuto punto aparecerá un * - la letra r indica el color del asterísco, en este caso red (rojo). Nuevamente se abrirá una ventana y ahora el complejo se ve claramente. El siguiente listado muestra las distintas posibilidades que tenemos a la hora de elegir como queremos visualizar el complejo Color y yellow g green Aspecto . point o s square d < triangle (left) m b magenta blue circle diamond c w cyan white x x-mark v triangle (down) > triangle (right) r k + ^ p red black plus triangle (up) pentagram * star h hexagram 3 Para obtener el conjugado de un complejo se aplica la función conj. >> conj(a) ans = 1.0000 - 1.0000i OPERACIONES BÁSICAS: Sean >> g = 3 + 2i; >> h = 4 - i; Suma: Sencillamente se utiliza el símbolo +. >> g + h ans = 7.0000 + 1.0000i Resta: Se utiliza el símbolo -. >> g - h ans = -1.0000 + 3.0000i Producto: Se utiliza el símbolo *. >> g * h ans = 14.0000 + 5.0000i División: Se utiliza el símbolo /. >> g / h ans = 0.5882 + 0.6471i NOTAS: El tema de las raíces de complejos se verá en laboratorio. Debido a que Matlab no posee una función predefinida que calcula las n raíces, con n dado, la crearemos nosotros, además mostraremos en un mismo plano todas las raíces. Comentaremos la manera en que podemos agregar más capacidades a Matlab creando nuestras propias funciones o scripts. El lenguaje de programación que utilizaremos a lo largo de estas clases es casi tan poderoso como Pascal o C. EJERCITACIÓN: Resuelva mediante Matlab los ejercicios de la Práctica 1 y verique si los resultados que obtuvo son los correctos. Esta herramienta le será de gran ayuda a la hora de resolver ejercicios de libros de texto de los cuales no se brinda la solución o el procedimiento para obtener la misma.