MATLAB 6.

1
ANÁLISIS NUMÉRICO, MATEMÁTICA SIMBÓLICA Y VISUALIZACIÓN GRÁFICA
para ciencias e ingeniería

®

CURSO BÁSICO INTRODUCTORIO

Ing. Benedicto Medina V. Docente Titular IUT Agro-Industrial“Región los Andes” Departamento de Electrónica Industrial San Cristóbal, Enero 2003

2

1.- OBJETIVO: El programa MATLAB® puede considerarse como un lenguaje de programación, tal como lo es el C, Fortran o Basic, que se distingue en si por una serie de características notables para los análisis numéricos, entre las cuales se pueden citar: .......La programación es mucho más sencilla. Hay continuidad entre valores enteros, reales y complejos. La amplitud de intervalo y la exactitud de los números son mayores. Presenta una biblioteca matemática amplia. Presenta abundantes herramientas gráficas. Incluye funciones de interfaz gráfica con el usuario. Presenta capacidad de vincularse con lenguajes de programación clásicos.

Una característica importante del manejo de números con MATLAB® es que no hay distinción entre reales, complejos, enteros, de precisión sencilla o precisión doble. Todos estos números, en MATLAB, están conectados continuamente, como debe ser. Esto significa que en MATLAB cualquier variable puede contener números de cualquier tipo sin una declaración especial durante la fase de programación, lo cual hace ésta más fácil, rápida y productiva. En otros programas, Fortran por ejemplo, se requiere la declaración de una subrutina distinta para cada tipo de variable sencilla o doble, real o compleja o entera, mientras que con MATLAB no es necesario el separarlas. La biblioteca matemática de MATLAB facilita los análisis matemáticos. El usuario puede crear rutinas matemáticas adicionales con mucha mayor facilidad que con cualquier otro lenguaje de programación, ello es debido a la continuidad entre las variables reales y complejas. La comprensión de las soluciones a los problemas matemáticos se facilita con el análisis visual de los mismos. La presentación de resultados gráficos con MATLAB resultan bastantes sencillos, ello gracias a que el programa posee unos cuantos comandos que facilitan la producción de presentaciones gráficas del análisis matemático. Es posible crear objetos gráficos científicos e incluso artísticos en la pantalla del PC mediante expresiones matemáticas. Hay demostraciones de que las gráficas generadas a través de MATLAB motivan e incluso excitan al estudiante para aprender métodos matemáticos y numéricos que de otra forma resultarían tediosos. MATLAB permite el procesamiento de imágenes así como la producción de películas animadas tanto como para cálculos científicos como para la producción de material artístico o de aficiones. En la enseñanza profesional técnica universitaria el programa tiene su aplicación en cursos de Electrónica, Sistemas de Control, Sistemas Lineales, Procesamiento de Señales, Comunicaciones, Instrumentación Industrial, Análisis y Métodos Numéricos, etc. El programa en si presenta un elevado potencial de aplicaciones especificas, desarrolladas por especialistas de universidades y centros de estudios profesionales de IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

3

todo el mundo, siendo tantos y tan variados los campos de conocimientos, que se hace prácticamente imposible el aprender a usar todo el programa en si. El objetivo de la presente guía introductoria de MATLAB® v6.1, es el lograr en el participante un conocimiento básico y a su vez la habilidad para el manejo del programa, así como conocer la amplia aplicación del mismo en el campo de las cie ncias e ingeniería. Al finalizar su estudio se estará en capacidad de realizar programas en MATLAB, versión 6.1, así como el comprender y aplicar estas herramientas que se están incorporando cada vez más en la enseñanza profesional técnica universitaria a través de libros revistas, manuales, folletos e internet.

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

4

2.-¿QUE ES MATLAB ? MATLAB es un programa o lenguaje de computación técnica de alto rendimiento para cómputos numéricos y visualización gráfica, que integra: análisis numérico, cómputo de matrices, procesamiento de señales y gráficas en un ambiente fácil de usar; y donde los problemas y sus soluciones se expresan tal como se haría n matemáticamente, es decir sin una programación tradicional. El nombre de MATLAB® deriva de la contracción de MATRIX LABORATORY. El programa en si puede considerarse como un sistema interactivo, cuyo elemento básico es una ma triz que no requiere de dimensio namiento, característica que permite al usuario resolver muchos problemas numéricos en una fracción del tiempo que le llevaría el escribir un programa en uno de los lenguajes tradicionales de programación. (Fortran, Basic, C, C++, etc.). El programa ha evolucionado a través de los años con el aporte de programadores y usuarios. En la enseñanza universitaria, MATLAB se ha convertido en una herramienta fundamental en curso de álgebra y matemáticas, al igual que en cursos básicos y avanzados de diferentes áreas del conocimiento técnico-científico. En el ambiente industrial, MATLAB es usado para la investigación y la solución de problemas prácticos de ingeniería. El programa MATLAB® está conformado por una serie de aplicaciones agrupadas en lo que se denomina “Caja de Herramientas” o “Toolboxes”. Estas cajas de herramientas son, en si, agrupaciones de funciones, códigos o macros de MATLAB, conocidos “Mfiles”, desarrollados por investigadores y usuarios de MATLAB®, los cuales son de fácil comprensión y uso, y extienden el ambiente del programa con la finalidad de resolver situaciones o áreas especificas de problemas. Entre las áreas para las cuales existen “Cajas de Herramientas” o “Toolboxes” se tienen, entre otros, los siguientes campos: Procesamiento de Señales, Control de Procesos, Sistemas de Identificación, Comunicaciones, Sistemas de Adquisición de Datos, Matemática Simbólica, Diseños de Filtros (Analógicos o Digitales), Finanzas, Lógica Difusa, Redes Neuronales, Procesamiento de Imágenes, Realidad Virtual, Estadísticas, Optimización, etc. El programa MATLAB® cuenta además con una herramienta para el modelaje, simulación y análisis de sistemas dinámicos, conocida como SIMULINK, el cual es un subprograma que permite realizar todo lo que se puede hacer con MATLAB en un ambiente gráfico (diagrama de bloque). Con Simulink se puede realizar, simular y analizar sistemas lineales y sistemas no lineales, modelados en tiempo continuo o discreto o en una combinación de los dos. También se han desarrollado tarjetas de adquisición de datos que permiten procesar información directamente (en tiempo real) desde sistemas físicos con MATLAB.

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

5

3.- CONOCIENDO EL PROGRAMA MATLAB ® v6.1 Para un efectivo aprovechamiento de las bondades que presenta el programa MATLAB, es necesario el conocer inicialmente sobre los tipos de ventanas con los que se encontrará el usuario comúnmente. Estos tipos de ventanas son: la Ventana de Comandos, en la cual generalmente se escriben las instrucciones o comandos y se obtienen los resultados de cálculo; las Ventanas de Figuras, donde se muestran las gráficas que ejecuta el programa según las instrucciones que se le indiquen en la Ventana de Comando; la Ventana de Edición y Corrección, en la cual se pueden escribir programas o guiones, editarlos, corregir errores de sintaxis o de ejecución y ejecutarlos posteriormente desde la Ventana de Comandos; la Ventana de Modelo, la cual permite el uso del subprograma SIMULINK, y la Ventana de Interfaz Gráfica de usuario.

Figura 1. Ventana de Comandos de MATLAB v6.1:

Figura 2.

Ventana de Figuras de MATLAB v6.1:

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

6

Figura 3.

Ventana de Edición y Corrección de MATLAB v6.1:

Figura 4.

Ventana de Modelo de MATLAB v6.1:

Figura 5.

Ventana de Interfaz Gráfica de usuario.

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

7

Además existe otra Ventana de llamado especial y la cual permite hacer uso de uno de los comandos especiales de MATLAB, el comando DEMOS. Esta ventana se llama desde la Ventana de Comandos a través de la ejecución de la siguiente instrucción: >> help demos Figura 6. Ventana de Demos de MATLAB v6.1

Menús de la Ventana de Comandos: Al abrir, desde el Botón Inicio de Windows, el programa MATLAB v6.1, aparece la Ventana de Comandos de MATLAB, tal como se muestra en la figura 1., ésta Ventana es la pizarra o espacio de trabajo del programa, en ella se introducen los datos a procesar y las instrucciones a ejecutar y s presentan los resultados analíticos. Una vez abierta e ésta Ventana aparece el siguiente signo: >>, el cual es el PROMPT de MATLAB, indicando que el programa está esperando instrucciones para iniciar su ejecución. La Ventana de Comando despliega los siguientes menús: File: presenta las siguientes opciones: New: permite según la opción escogida: M-file: abrir una nueva Ventana de Edición y Corrección. Figure: abrir una nueva Ventana de Gráfico. Model: abrir una nueva Ventana de Simulink. GUI: abrir una nueva Ventana de Interfaz Gráfica de Usuario. Open: abre en la Ventana de Edición (Editor) el archivo de extensión **.m seleccionado. IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

8

Close Command Window: apaga la Ventana de Comandos. Import Data: permite importar archivos desde carpeta predeterminada. Save Workspace As: permite grabar en un archivo **.mat, las variables que se encuentran en el espacio de trabajo (Ventana de Comandos) Set Path: presenta un doble listado de archivos: directorios y contenidos, permite modificar la ruta de acceso a estos archivos. Preference: permite seleccionar el formato numérico, predeterminar el editor, el tipo de letra, y las opciones de copiado Print: permite la impresión del co ntenido de la Ventana de Comandos. Print Selection: permite imprimir solamente la parte seleccionada del conténi do de la Ventana de Comandos. Exit MATLAB : permite salir del programa MATLAB.

Edit: presenta los submenús tradicionales de Windows: Undo; Redo; Cut; Copy; Paste; Paste Special; Select All, Delete., y adicionalmente los siguientes: Clear Command Window: limpia la Ventana de Comandos, llevando el >> a la parte superior izquierda de la pantalla. Clear Comand History: borra el historial de comandos. Clear Workspace: borra la variables introducidas en la Ventana de Comandos. La Ventana de Comandos presenta también los menús mostrados en la barra de herramientas mostrada a continuación: Figura 6. Barra de Herramientas de la Ventana de Comandos de MATLAB v6.1

En esta barra de herramientas tal como puede observarse, se encuentran los menús que dan acceso a funciones tradicionales de Windows y que permiten acceder a las variables que se encuentran en la Ventana de Comandos, así como para visualizar y modificar rutas de acceso, iniciar trabajo con el Simulink, conectarse a páginas web en busca de apoyo técnico, abrir los comandos de ayuda propia de programa, etc. En el submenú de Preferences, del menú File, se puede seleccionar el formato numérico para la presentación de las respuestas de las operaciones matemáticas, entre las opciones que se presentan se tienen: para formato numérico: short (notación de punto fijo de 5 dígitos); long (notación de punto fijo de 15 dígitos); short e (notación de punto flotante de 5 dígitos mas exponente); long e (notación de punto flotante de 15 dígitos más exponente); short g y long g ( muestran la mejor aproximación entre punto fijo y punto flotante); hex (hexadecimal); bank (dos cifras decimales) ; + (signo +, - ó 0 según el caso), rational (presentación en forma de fracción). Para formato de presentación IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

9

(display format) se presentan las opciones: loose (deja espacio en blanco después de cada instrucción ejecutada); compact (no deja espacio después de cada instrucción ejecutada). Algunos Comandos de Interés en el uso de MATLAB v6.1: >> help: presenta una explicación precisa y concisa de los comandos a ejecutar, por ejemplo si se desea saber que hace el comando help, se procede en la ventana de comandos de MATLAB a escribir: >> help help y luego pulsar la tecla ENTER , el resultado de la ejecución de éste comando es el siguiente: >> help help HELP On-line help, display text at command line. HELP, by itself, lists all primary help topics. Each primary topic corresponds to a directory name on the MATLABPATH. "HELP TOPIC" gives help on the specified topic. The topic can be a command name, a directory name, or a MATLABPATH relative partial pathname (see HELP PARTIALPATH). If it is a command name, HELP displays information on that command. If it is a directory name, HELP displays the Table-Of-Contents for the specified directory. For example, "help general" and "help matlab/general" both list the Table-Of-Contents for the directory toolbox/matlab/general. HELP FUN displays the help for the function FUN. T = HELP('topic') returns the help text in a '\n' separated string. LOOKFOR XYZ looks for the string XYZ in the first comment line of the HELP text in all M-files found on the MATLABPATH. For all files in which a match occurs, LOOKFOR displays the matching lines. MORE ON causes HELP to pause between screenfuls if the help text runs to several screens. In the online help, keywords are capitalized to make them stand out. Always type commands in lowercase since all command and function names are actually in lowercase. For tips on creating help for your m-files 'type help.m'. See also LOOKFOR, WHAT, WHICH, DIR, MORE Overloaded methods help cvtest/help.m help cvdata/help.m >> IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

10

Versión: uno de los primeros conocimientos que el usuario de MATLAB debe tener sobre el programa, es la versión que está usando, para obtener ésta información se hace uso del comando version >> version ans = 6.1.0.450 (R12.1) >> El comando clock da como resultado de su ejecución: el año, mes, día, hora, minuto y segundo, en un formato de vector fila: [año, mes, día, hora, minuto, segundo]. >> clock ans = 1.0e+003 * 2.0030 >> La misma información puede obtenerse utilizando un formato entero con fix(clock): >> fix(clock) ans = 2003 >> El comando date proporciona la fecha en un formato simple: >> date ans = 01-Feb-2003 >> 2 1 12 22 40 0.0020 0.0010 0.0120 0.0200 0.0149

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

11

Asignación de Variables a Operaciones Aritméticas: El programa MATLAB opera como una calculadora realizando operaciones aritméticas y las asigna a una variable de respuesta identificada como: ans, tal como pudo observarse en los casos anteriores y en los casos siguientes: >> 2+3 ans = 5 % operacion de suma

>> 53.24*13.5 % operacion de multiplicacion ans = 718.7400 >> 1234-785 ans = 449 % operacion de resta

>> 456/432 % operacion de division ans = 1.0556 >> 23^2 ans = 529 % operacion de potenciacion

>> sqrt(25) % operacion de raiz cuadrada ans = 5 >> exp(1) caso) ans = 2.7183 % operacion de elevar el numero de euler a una potencia (1 en este

>> 5+3i % suma de un real y un imaginario, formar un complejo. ans = 5.0000 + 3.0000i >> sqrt(-9) % raiz cuadrada de un numero negativo ans = 0 + 3.0000i >> pi % llamado del numero pi ans = 3.1416 IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

12

Una manera de familiarizarse con el ambiente de MATLAB y aprender a trabajar con el, es mediante la utilización y estudio de las demostraciones que trae el programa. Seguidamente se presentan algunas de ellas: 3.a.- Ejecución de instrucción: >> intro El programa responderá con un tour a través de algunas opciones disponibles, observe las líneas de comando, las de comentarios y las respuestas del programa. 3.b.- Ejecución de instrucción : >> lorenz Presenta una de las herramientas gráficas del programa. 3.c.- Ejecución de instrucción: >> census Muestra algunas de las capacidades del programa para el ajuste de curvas y predicciones. 3.d.- Ejecució n de instrucción: >> spline2d Muestra un método de entrada de datos por pantalla para construir una curva. 3.e.- Ejecución de instrucción: >> bench Permite al programa medir la velocidad de la computadora que Ud. usa y la compara con otras marcas reconocidas. 3.f.- Ejecución de instrucción: >> demos Ejecuta un paseo mostrando los distintos potencialidad de aplicación.

toolboxes de MATLAB y su

3.g.- Ejecución de instrucción: >> clear,clc Limpia la ventana de comandos de todo lo escrito en ella, al ejecutarse ésta instrucción el Promt (>>) aparecerá en la parte superior de la Ventana de Comandos. 3.h.- Ejecución de instrucción: >> echo on Esta instrucción usada antes de ejecutar un archivo **.m, permite ver las líneas de comandos en la medida en que se van ejecutando. Se suspende con el comando echo off. Nota: Todas las instrucciones que se han ejecutado desde la Ventana de Comandos, tal como puede observarse, se han escrito en minúsculas, ello motivado a que ésta es la forma predeterminada de MATLAB. Si las instrucciones o comandos de ejecución se escriben en mayúsculas, el programa emitirá un mensaje de error : >> CLEAR ??? Capitalized internal function CLEAR; Caps Lock may be on.

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

13

4.- INICIANDO CÁLCULOS con MATLAB v6.1 4.1.- Cálculos con una Variable Simple : El programa MATLAB permite la ejecución de cálculos de parámetros a través de operaciones matemáticas que realiza en forma secuencial, es decir conforme se vaya n introduciendo los comandos o instrucciones y los datos respectivos. Como ejemplo, se considerará el caso en que se quiere calcular el volumen de una esfera de radio r (es importante el tener en cuenta que al definir variables al programa, el mismo diferencia entre letras mayúsculas y letras minúsculas. Para MATLAB la variable r es diferente de la variable R). La formula que permite el cálculo del volumen de una esfera de radio r, es la siguiente: 4 vol = * π * r 3 3 si el radio de la esfera es 2, la ejecución con MATLAB es la siguiente: >> r=2; % Definicion del radio de la esfera >> vol=(4/3)*pi*r^3; % Definicion de la ecuacion para el calculo del volumen >> vol vol = 33.5103 En ésta ejecución puede observarse que, después de la declaración bien sea de datos o instrucción de ejecución aparece el signo ; el cual permite que una vez pulsada la tecla ENTER, la variable y el valor declarado no aparezcan en la ventana una vez que han sido registrados. De igual forma puede introducirse un comentario después del signo % Para obtener el valor del resultado se le solicita al programa escribiendo la correspondiente variable a calcular (vol en éste caso) y pulsando la tecla ENTER. MATLAB solamente acepta una instrucción por línea, pero en una misma línea puede escribirse dos o más instrucciones si se separan cada una por medio del signo ; . Se debe pulsar la tecla ENTER cada vez que se requiera la ejecución de una línea de instrucción o comando. Otra forma de ejecutar el cálculo anterior sería: >> r=2; >> vol=(4/3)*pi*r^3 vol = 33.5103 % Definicion del radio de la esfera % Definicion de la ecuacion para el calculo del volumen

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

14

En esta ejecución puede observarse que después de declarada la expresión para el cálculo de vol, no aparece el signo; por lo que al pulsar la tecla ENTER aparece el resultado de la operación. Otra forma de efectuar la operación anterior con MATLAB será: >> r=2;vol=(4/3)*pi*r^3 % Calculo del volumen de una esfera vol = 33.5103 En este caso se están escribiendo las dos instrucciones en una sola línea de instrucción, separadas por ;. Puede observarse que la segunda parte de la línea de instrucción no finaliza con ; por lo que el resultado de la operación aparece una vez pulsada la tecla ENTER. Si se quiere que aparezcan como registrados los datos y variables cada vez que se introduce una línea de instrucción, se efectúa la operación de la forma siguiente: >> r=2 r= 2 >> vol=(4/3)*pi*r^3 vol = 33.5103 o escribiendo las instrucciones en una sola línea: >> r=2,vol=(4/3)*pi*r^3 % Calculo volumen de una esfera r= 2 % Definicion de la ecuacion para el calculo del volumen % Definicion del radio de la esfera

vol = 33.5103

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

15

puede observarse en este caso que las instrucciones se separan por una coma (,) lo que permite escribir dos o más instrucciones en la misma línea.

4.2.- Operadores Aritméticos en MATLAB: Los operadores aritméticos usados en MATLAB para la suma, resta, multiplicación y división son los mismos usados en los lenguajes de programación tradicionales como Fortran o Basic. Los respectivos operadores o signos para las operaciones de suma, resta, multip licación y división son respectivamente los siguientes: Suma =è Resta =è Multiplicación =è División =è División Inversa =è operador: “+” operador: “- ” operador: “*” operador: “/ ” operador: “\” ; éste operador produce el resultado reciproco de la división.

Ejemplos de operaciones aritméticas: >> a=125;b=235;c=100;d=456; >> x=(a+b)*c-d x= 35544 >> y=(a/b-c)*d y= -4.5357e+004 >> Y=a/b Y= 0.5319 >> Z=b\a Z= 0.5319 >> Nota: el operador \ (división inversa o reciproca) es de gran utilidad en aplicaciones de álgebra lineal; no es conveniente su uso en cálculos ordinarios. IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

16

4.3.- Operadores Lógicos: Los operadores lógicos: mayor que, mayor o igual que, menor que, menor o igual que, diferente de, se representan en MATLAB según la siguiente simbología: Operador Lógico: “mayor que” “mayor o igual que” “menor que” “menor o igual que” “diferente de” Simbología: “>” “ >= ” “<” “ <= ” “ -= ”

4.4.- Variables y nombres de V ariables: En MATLAB no es necesario declarar los nombres de las variables ni sus tipos. Ello se debe a que los nombres de las variables en MATLAB no son diferentes para las variables enteras, reales o complejas. Cualquier variable puede tomar valores reales, enteros o complejos. Es tradicional el uso de los símbolos i, j, k, l, m y n como variables enteras o índices. Debe tenerse presente que la i y la j, son utilizadas en MATLAB para denotar el valor imaginario unitario, − 1 . Existen, igualmente en MATLAB nombres de variables reservados que tienen un significado o valor particular o especial, tal como se muestra a continuación: Tabla 1. Número y Nombres de Variables Especiales en MATLAB Nombre de Variable: Significado: eps Epsilon de máquina pi p i ó j Unidad imaginaria inf Infinito NaN No es número date Fecha flops Contador de operaciones de punto flotante nargin Número de argumentos de entrada de una función nargout Número de argumentos de salida de una función realmin Número real (+) más pequeño realmax Número real (+) más grande

Valor: 2.2204e-16 3.14159…..

−1
8

4.5.- Funciones Matemáticas en MATLAB: Al igual que en otros lenguajes de programación, MATLAB presenta numerosas funciones matemáticas, desde las más elementales hasta las de más alto nivel. Estas funciones matemáticas pueden agruparse en tres categorías. .- Funciones Trigonométricas. .- Otras Funciones Elementales. .- Funciones que realizan Tareas. IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

17

Las funciones matemáticas presentan, para su uso en MATLAB, dos diferencias significativas con respecto a su uso en otros lenguajes de programación (Fortran, C, C ++). Primera: Las funciones matemáticas operan con variables complejas sin discriminación alguna. Segunda: Las funciones matemáticas pueden operar con argumentos vectoriales y argumentos matriciales.

Tabla 2. Funciones Matemáticas Elementales (Trigonométricas). Func iones Comentario (significado) trigonométricas sin(x) seno del argumento x cos(x) coseno del argumento x tan(x) tangente del argumento x asin(x) arcoseno (inverso de seno, sen-1(x)) del argumento x acos(x) arcocoseno (cos-1(x)) del argumento x atan( x) arcotangente (tan-1 (x)) del argumento (-p/2 = atan(x) = p/2) atan2(y,x) equivalente al atan(y/x); (-p = atan(x,y) = p) sinh(x) seno hiperbólico del argumento x cosh(x) coseno hiperbólico del argumento x tanh(x) tangente hiperbólica del argumento x asinh(x) arcoseno hiperbólico (sinh-1 (x)) del argumento x acosh(x) arcocoseno hiperbólico (cosh-1 (x)) del argumento x atanh(x) arcotangente hiperbólico (tanh-1(x)) del argumento x sec(x) secante del argumento x csc(x) cosecante del argumeno x sech(x) secante hiperbólica del argumento x csch(x) cosecante hiperbólica del argumento x asech(x) inverso de la secante hiperbólica del argumento x acsh(x) inverso de la cosecante hiperbólica del argumento x cot(x) cotangente del argumento x coth(x) cotangente hiperbólica del argumento x acot(x) inverso de la cotangente del argumento x asec(x) inverso de la secante del argumento x acsh(x) inverso de la cosecante del argumento x acot(x) inverso de la cotangente del argumento x acoth(x) inverso de la cotangente hiperbólica del argumento x

x

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

18

Tabla 3. Funciones Matemáticas Elementales (Exponenciales). Funciones Comentario (significado) Exponenciales exp(x) calcula e a la potencia x, equivale a: ex log(x) calcula el logaritmo natural o neperiano (base e) de x, equivale a: ln(x) log10(x) calcula el logaritmo en base 10 del argumento x, equivale a: log10 (x) sqrt(x) calcula la raiz cuadrada de x, equivale a: x pow2(x) calcula el valor de 2x , es decir eleva 2 a la potencia x. nextpow2(x) calcula el valor de la potencia de 2 inmediatamente mayor a x, es decir calcula p tal que 2p = x log2(x) calcula el logaritmo en base 2 de x, equivale a log2(x) Tabla 4. Funciones Matemáticas Elementales (Complejas). Funciones Comentario (significado) Complejas abs(x) valor absoluto del argumento complejo x angle(x) valor de la fase del argumento complejo x conj(x) conjugada del argumento complejo x real(x) parte real del argumento complejo x imag(x) parte imaginaria del argumento complejo x isreal(x) permite determinar si el argumento x es un número real puro, entrega 1 si x es un número real puro y 0 en cualquier otro caso. unwrap(x) reintegra la expresión compleja del argumento x Tabla 5. Otras Funciones Matemáticas Elementales. Otras Funciones Matemáticas Comentario (significado) Elementales round(x) redondea el valor de x al entero más cercano fix(x) redondea el valor de x a cero foor(x) redondea el valor de x a menos infinito (-8 ) ceil(x) redondea el valor de x a más infinito (+8 ) sign(x) entrega 1 si x > 0, ó -1 si x < 0 rem(x,y) entrega el residuo de la operación x /y Tabla 6. Funciones Matemáticas que realizan Tareas. Funciones Matemáticas que Comentario (significado) realizan Tareas sort(x) reordena los elementos del vector x en orden ascendente sum(x) calcula la sumatoria de los elementos del arreglo x max(x) encuentra el máximo valor del arreglo x min(x) encuentra el mínimo valor del arreglo x rand(n) Entrega una matriz n x n con números aleatorios IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

19

5.- ÁLGEBRA LINEAL con MATLAB ® v6.1 El álgebra lineal es la herramienta fundamental para el aná lisis de los métodos numéricos y se tiene que las capacidades de operación del programa MATLAB están basadas en las operaciones de vectores y matrices. El fundamento del álgebra lineal está en el planteamiento y solución de ecuaciones lineales. Los comandos de MATLAB trabajan con ecuaciones lineales en notación de matrices. 5.1.- Vectores y Matrices: Un vector puede considerarse como un arreglo unidimensional de datos, mientras que una matriz es un arreglo rectangular o bidimensional de datos. En notación matemática, las matrices se encierran entre corchetes [ ] y siguen ciertas reglas matemáticas. Una matriz del orden m por n, indica que la misma está formada por m filas y n columnas. En el caso de vectores, los mismos pueden considerarse como un caso especial de matriz en el cual se pueden presentar dos definiciones: vector fila, constituido por un arreglo de 1 por n (1 fila – n columnas); vector columna constituido por un arreglo de n por 1 (n filas – 1 columna). La representación matemática de una matriz de orden m por n , de un vector fila y un vector columna es la siguiente: Matriz de orden m por n:
 a1 , 1 a1 , 2   a2 , 1 a2 , 2 A :=  . .   . .  am, 1 a m, 2 
. . a1 , n . . . . . . . .

  a2 , n   .  .   a m, n 

Vector Fila:

B := b

(

1, 1

b

1, 2

. . b

1, n

)

Vector Columna:
 c1 , 1     c2 , 1  C :=  .     .  c   n, 1 

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

20

5.1.1.- Definición de Vectores y Matrices en MATLAB: Un vector se define en MATLAB como un arreglo que puede ser arreglo de fila o arreglo de columna, según se trate de un vector fila o de un vector columna, los valores correspondientes estarán entre corchetes, tal como se muestra a continuación. >> % definicion de Vector Fila de orden 1 por 5 >> a=[2 5 1 7 4] a= 2

5

1

7

4

>> % definicion de Vector Columna de orden 5 por 1 >> b=[3;2;4;6;8] b= 3 2 4 6 8 > % definicion de una Matriz orden 3 por 3 >> y=[3 2 1;2 3 5;6 5 4] y= 3 2 6 2 3 5 1 5 4

Tal como puede observarse en las declaraciones anteriores, la definición de vectores y matrices en MATLAB, sigue un orden determinado y en el cual se puede destacar lo siguiente: .- para definir los elementos de un fila, se introducen los datos separados por un espacio simple (también se puede declarar separando los datos por una coma (,)). .- para definir los elementos de una segunda, tercera, etc. fila se introducen los datos respectivos separados de la fila precedente por un punto y coma (;). Otra forma de declarar una matriz en MATLAB es abriendo corchete, introduciendo los datos correspondientes a cada fila, terminándola con <ENTER> y cerrando la última fila con el cierre respectivo del corchete. Tal como puede observarse a continuación:

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

21

>> c=[3 4 5 269 8 6 2] c= 3 2 8

4 6 6

5 9 2

5.1.2.- Operaciones diversas con Vectores: En MATLAB las operaciones se hacen en base a operaciones lineales de vectores y matrices, por consiguiente los datos y resultados se entregan en estos formatos. A continuación se ejecutarán operaciones aritméticas con vectores que normalmente se presentan en los análisis y aplicaciones del programa MATLAB. .- Multiplicación de un vector por un escalar: >> x=[2 5 8 6 2];b=3; >> c=x*b c= 6

15

24

18

6

.- Suma de dos vectores: en este caso los vectores deben ser del mismo tipo (vector fila o vector columna) y tener el mismo número de elementos. >> a=[3 5 8 2 6];b=[2 4 1 6 4]; >> c=a+b c= 5

9

9

8

10

.- Multiplicación punto a punto (elemento por elemento) entre dos vectores: realiza la multiplicación término a término de los elementos de dos vectores de igual dimensión. >> a=[2 3 5];b=[4 3 6]; >> c=a.*b c= 8

9

30

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

22

.- Potenciación de un Vector: eleva a una potencia p cada uno de los elementos de un vector: >> a=[2 4 6 5];p=3; % Eleva los elementos del vector a la potencia p >> c=a.^p c= 8

64 216 125

.- Cálculo del transpuesto de un vector (conversión de un vector fila en un vector columna). >> c=[3 5 2 7 9 3]; >> ct=c' ct = 3 5 2 7 9 3 .- Referencia a un solo elemento de un vector: permite llamar un determinado elemento perteneciente al arreglo vectorial en consideración. >> c=[2 3 4 6 8 2]; >> c(1,5) % captura o llama al elemento (1,5) del arreglo c ans = 8 >> c(5) % otra forma de captura al elemento (1,5) del arreglo c ans = 8

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

23

.- Identificación o llamado de un grupo de valores de un arreglo vectorial: permite llamar los valores de un arreglo vectorial x en una notación dos puntos x(primero:último), tal como se puede observar en el ejemplo siguiente: c=[2 3 5 7 8 19 12 6 7 6]; >> d=c(2:7) % captura en un arreglo d los valores c(1,2) al c(1,7), es decir del C(2)al c(7) d= 3 5 7 8 19 12

.- Selección de todos los elementos de un vector: la notación x(:) permite capturar todos los elementos que constituyen el arreglo vectorial x, previamente fijado. >> x=[1 3 5 7 9 2 4 6 8 10 12]; % definicion previa del vector x >> d=x(:) % notacion dos puntos que permite formar el vector d con los elementos del vector x d= 1 3 5 7 9 2 4 6 8 10 12 .- Construcción de un v ector utilizando notación dos puntos: permite crear un valor utilizando una distribución uniforme de valores definidos entre dos valores extremos (valor mínimo – valor máximo). La notación o sintaxis a utilizar es la siguiente: (a1:? a:a2), donde a1 y a2 son los valores extremos (primero y último) y ?a el incremento entre valor y valor. >> c=(3:0.5:6); % construye un vector con valor entre 3 y 6 con incrementos de 0.5 >> c c= 3.0000

3.5000

4.0000

4.5000

5.0000

5.5000 6.0000

Definido un vector x, es posible construir a partir de sus elementos un nuevo vector y, compuesto con elementos de x y dispuestos en forma creciente o en forma decreciente utilizando ésta notación: y = x(x1:?x:x2). IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

24

.- Construcción de un vector con n valores distribuidos linealmente entre un valor inicial y un valor final. La notación o sintaxis es la siguiente: linspace(a1,a2,n) donde a1 es el valor inicial, a2 el valor final y n el número total de elementos del arreglo. >> d=linspace(-pi,pi,10) % entrega vector fila con 10 valores linealmente distribuidos entre -pi
y +pi

d=
-3.1416 -2.4435 -1.7453 -1.0472 -0.3491 0.3491 1.0472 1.7453 2.4435 3.1416

.- Construcción de un vector con n valores distribuidos uniformemente en forma logarítmica entre dos valores mínimo y máximo. La notación de la sintaxis es la siguiente: logspace(a1, a2,n) donde a1 es el valor inicial, a2 el valor final, n el numero total de elementos del arreglo. >> d=logspace(0,3,8) d= 1.0e+003 * 0.0010 0.0027 0.0072 0.0193 0.0518 0.1389 0.3728 1.0000 .- Construcción de un vector con n primeros elementos nulos y m elementos finales con valores diferentes de cero. En el siguiente ejemplo se crea un vector de 10 ele mentos donde los primeros 6 elementos son nulos (cero). >> p=[zeros(1,6) 3 5 1 8] p= 0

0

0

0

0

0

3

5

1

8

.- Construcción de un vector con los n primeros valores nulos (ceros) y los m valores finales iguales a la unidad. En el ejemplo siguiente se construye un vector con 12 elementos, de los cuales lo seis primeros son iguales a ceo y los seis últimos iguales a la unidad. >> Uk=[zeros(1,6) ones(1,6)]; >> Uk Uk = 0 0 0 0 0 0 1 1 1 1 1 1

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

25

.- Construcción de un vector con los k primeros elementos iguales a la unidad, los m siguientes iguales a cero y los n finales iguales a la unidad. En el ejemplo siguiente se construye un vector con 15 elementos donde los primeros 5 son iguales a la unidad, los 6 siguientes iguales a cero y los 4 finales iguales a la unidad. >> Ek=[ones(1,5) zeros(1,6) ones(1,4)] Ek = 1

1

1

1

1

0

0

0

0

0

0

1

1

1

1

.- Construcción de un vector con los elementos de dos o más vectores dados: Es posible construir un nuevo vector con los elementos de dos o más vectores previamente declarados, utilizando el principio de unión de conjuntos, el orden de los elementos del nuevo vector será conforme se declaren los vectores en el arreglo respectivo. >> % construccion de un vector con los elementos de 3 vectores >> % previamente declarados >> a=[1 4 3]; >> b=[5 2]; >> c=[8 7 6 1]; >> z=[a b c]; >> z z= 1 4 3 5 2 8 7 6 1

.- Multiplicación de dos vectores: La multiplicación de dos vectores es posible con MATLAB utilizando el operador *, y teniéndose presente que sólo es posible multiplicar un vector fila por un vector columna o un vector columna por un vector fila, en el primer caso se obtiene un escalar y en el segundo caso se obtiene una matriz cuadrada de orden p x p, con p igual al número de filas del vector columna e igual al número de columnas del vector fila. >> % Ejemplo de multiplicacion de dos vectores >> % Definicion Vector fila: >> a=[3 5 7 2]; % orden vector 1 x 4 >> % Definicion Vector columna: >> b=[2;4;5;1]; % orden vector 4 x 1 >> % Multiplicacion vector fila por vector columna: >> c=a*b c= 63 IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

26

>> % Multiplicacion vector columna por vector fila: >> d=b*a d= 6 10 14 4 12 20 28 8 15 25 35 10 3 5 7 2 5.1.3.- Operaciones diversas con Matrices: A continuación se presentan operaciones matemáticas con matrices que normalmente se presentan en los análisis y aplicaciones del programa MATLAB. .- Multiplicación de una matriz por un escalar: La operación de multiplicar una matriz por un escalar es posible con MATLAB, utilizando el operador * y definiendo previamente los datos de la matriz y el escalar, tal como se puede apreciar en el siguiente ejemplo: >> % Ejemplo de Multiplicacion de una Matriz por un Escalar: >> a=[3 6 2;1 3 5;4 8 9;1 7 2]; % Matriz de dimensiones 4 x 3 >> c=4; % Definicion del escalar >> d=a*c; % operacion del producto de matriz por escalar La matriz a definida en este caso es la siguiente: a= 3 1 4 1 6 3 8 7 2 5 9 2

El resultado de la operación del producto de la operación de la matriz por el escalar, es el siguiente: d= 12 24 8 4 12 20 16 32 36 4 28 8

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

27

.- Suma de matrices: MATLAB facilita la operación suma de matrices con el operador aritmético +, las matrices que entran en ésta operación deben ser del mismo orden o dimensión. >> % ejemplo de Operacion Suma de Matrices: >> a=[2 3 4;5 4 3;3 4 9;6 4 3];b=[5 8 3;9 7 4;5 4 2;9 8 5]; >> c=a+b; Las matrices a y b consideradas son: a= 2 5 3 6 b= 5 9 5 9

3 4 4 4

4 3 9 3

8 7 4 8

3 4 2 5

El resultado de la operación es el siguiente: c= 7 11 7 14 11 7 8 8 11 15 12 8 .- Multiplicación punto a punto (elemento por elemento) de matrices: el operador .* permite efectuar el producto elemento por elemento de dos matrices de igual dimensión. >> % Multiplicacion punto a punto de dos matrices >> a=[3 4 5;7 8 9]; b=[2 5 8;6 4 2]; >> d=a.*b d= 6 20 40 42 32 18

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

28

.- Potenciación de una matriz: El operador .^ permite elevar a la potencia p cada uno de los elementos de una matriz. >> % Potenciacion de una Matriz >> a=[1 2 3;4 5 6;7 8 9]; >> p=2; >> c=a.^p % Eleva al cuadrado cada uno de los eleme ntos de la matriz a c= 1 16 49

4 9 25 36 64 81

.- Direccionamiento o Indexación de matrices: El programa MATLAB permite realizar diversas operaciones con relación a los elementos de una matriz, entre los cuales se tienen: *.- Llamado de un elemento de la matriz: dada una matriz a es posible operar con un elemento de ésta matriz haciéndole un llamado según la notación a(i,j). >> a=[1 2 3 4;5 6 7 8;9 10 11 12]; >> a a= 1 2 3 4 5 6 7 8 9 10 11 12 >> c=a(2,3) % Asigna a la variable c el valor del elemento a(2,3) de la matriz a c= 7 *.- Notación dos puntos A(fila,primero:último) permite seleccionar determinados elementos de una fila de la matriz A, entregándolos en formato de vector fila. >> c=[1 2 3 4;5 6 7 8;10 2+3i 11 4+2i] c= 1.0000 5.0000 10.0000

2.0000 6.0000 2.0000 + 3.0000i

3.0000 7.0000 11.0000

4.0000 8.0000 4.0000 + 2.0000i

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

29

>> d=c(3,2:4) % Asigna a la variable d los valores c(3,2),c(3,3) y c(3,4) d= 2.0000 + 3.0000i 11.0000

4.0000 + 2.0000i

*.- Extracción selectiva de elementos: la notación: x(fila,[posición elementos]), permite extraer en forma selectiva los elementos de una fila de la matriz x, asignándolos a una variable en forma de vector fila. >> c=[1+2j 3 5j 4+3j 6;2 4 7 9 2+2j;4 9+3j 10j 3-5j 8]; >> d=c(3,[2 4 5]) % Asigna a vector d los valores c(3,2), c(3,4) y c(3,5) d= 9.0000 + 3.0000i 3.0000 - 5.0000i 8.0000 la notación x([posición elementos],columna), permite extraer en forma selectiva los elementos de una columna de la matriz x, asignándolos a una variable en forma de vector columna. >> a=[1 2+3j -5j;4j 2 4;3 6 7;8+2j 3-4j 5; 8 6 3]; >> d=a([2 4 5],1) % Asigna a la variable d los valores de a(2,1), a(4,1) y a(5,1) d= 0 + 4.0000i 8.0000 + 2.0000i 8.0000 *.- Extracción de todos los elementos de una o varias filas de una matriz x: la notación x(fila,:) permite la extracción o selección de todos los elementos de una fila, asignándolos a una variable en forma de vector fila, mientras que la notación x(:,columna) permite la extracción de todos los elementos de una columna, asignándolos a una variable en forma de vector columna. >> a=[2 3 4;5 6 7;8 9 1]; >> d=a(3,:) % Asigna los elementos de la tercera fila de la matriz a a la variable d d= 8

9

1

>> p=a(:,2) % Asigna los elementos de la segunda fila de la matriz a a la variable p p= 3 6 9 IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

30

la notación a(filap:filaz,:) permite extraer todos los elementos desde la fila p hasta la fila z, de la matriz a, asignándolo s a una variable en forma de matriz de dimensión según las filas indicadas y la notación a(:,columnap:columnaz ) permite extraer todos los elementos desde la columna p hasta la columna z, de la matriz a, asignándolos a una variable en forma de matriz de dimensión según las columnas indicadas. >> a=[2 3 12 4 5;8 45 32 12 14;23 56 76 91 10;16 34 52 74 11] a= 2 3 12 4 5 8 45 32 12 14 23 56 76 91 10 16 34 52 74 11

>> p=a(1:3,:) % asigna los elementos desde la fila 1 hasta la fila 3 de a a la variable p %p p= 2 3 12 4 5 8 45 32 12 14 23 56 76 91 10 >> f=a(:,3:4)% asigna los elementos desde la columna 3 hasta la 4 de a a la variable f f= 12 32 76 52 4 12 91 74

.- Cálculo de la Transpuesta de una Matriz: la notación a’ permite calcular la transpuesta de la matriz a. >> a=[8 9 2;3 4 5;1 6 7] a= 8 3 1 9 4 6 2 5 7

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

31

>> b=a' % calcula la transpuesta de la matriz a b= 8 9 2 3 4 5 1 6 7

Ejemplo con una matriz compleja: >> A=[1+2j 2+3j 3+2j;4+2j 2+5j 6+3j;8+2j 5+4j 7+6j] A= 1.0000 + 2.0000i 2.0000 + 3.0000i 3.0000 + 2.0000i 4.0000 + 2.0000i 2.0000 + 5.0000i 6.0000 + 3.0000i 8.0000 + 2.0000i 5.0000 + 4.0000i 7.0000 + 6.0000i >> B=A' % Calcula la transpuesta de la matriz A B= 1.0000 - 2.0000i 4.0000 - 2.0000i 8.0000 - 2.0000i 2.0000 - 3.0000i 2.0000 - 5.0000i 5.0000 - 4.0000i 3.0000 - 2.0000i 6.0000 - 3.0000i 7.0000 - 6.0000i >> D=B' % observese que D = A D= 1.0000 + 2.0000i 2.0000 + 3.0000i 3.0000 + 2.0000i 4.0000 + 2.0000i 2.0000 + 5.0000i 6.0000 + 3.0000i 8.0000 + 2.0000i 5.0000 + 4.0000i 7.0000 + 6.0000i .- División punto a punto de dos matrices: la notación elemento de las matrices a y b >> % Division elemento entre elemento de dos matrices >> a=[4 8 10;6 12 16],b=[2 4 5;3 6 8] a= 4 8 10 6 12 16 IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve a./b divide elemento entre

32

b= 2 3 4 6 5 8

>> c=a./b c= 2 2 2 2 2 2

.- Generación de una matriz unitaria: la notación eye(n) permite editar una matriz unitaria de orden n x n. >> z=eye(4) % edita una matriz unitaria de orden 4 x 4 z= 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 .- Generación de una matriz con elementos unitarios: la notación ones(n) edita una matriz con elementos unitarios de orden n x n, mientras que la notación ones(m,p) edita una matriz con elementos unitarios de orden m x p. >> y=ones(4) y= 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

>> z=ones(3,4) z= 1 1 1 1 1 1 1 1 1 1 1 1

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

33

.- Generación de una matriz con elementos nulos: la notación zeros(n) edita una matriz con elementos nulos de orden n x n, mientras que la notación zeros(n,p) edita una matriz con elementos nulos de orden n x p. >> y=zeros(3) y= 0 0 0 0 0 0 0 0 0

>> z=zeros(3,4) z= 0 0 0 0 0 0 0 0 0 0 0 0

.- Eliminación de elementos de un arreglo: la notación x(:,n)=[ ] elimina de la matriz x todos los elementos de columna n. Mientras que la notación x(m,:)=[ ] elimina de la matriz x todos los elementos de la fila m. > A=[12 15 23 32;45 26 31 21;61 37 55 12] A= 12 45 61 15 26 37 23 31 55 32 21 12

>> A(2,:)=[] % Elimina la fila 2 de la matriz A A= 12 61 15 37 23 55 32 12

>> A(:,3)=[] % Elimina la columna 3 de la matriz A A= 12 15 61 37 32 12

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

34

.- Multiplicación de matrices: la notación a*b ejecuta la operación de multiplicación de la matriz a por la matriz b. Debe tenerse en cuenta las reglas de multiplicación de matrices, las cuales deben prevalecer. >> a=[2 4 7;3 1 6],b=[3 4;5 2;8 6] a= 2 3

4 1

7 6

b= 3 5 8

4 2 6

>> c=a*b c= 82 62

58 50

>> d=b*a d= 18 16 34

16 22 38

45 47 92

.- Inverso de una matriz: dada una matriz A, la notación inv(A) permite el cálculo de la inversa de la matriz A. inv(A) = A-1, cumpliéndose que inv(A)*A = I, con I = matriz identidad. La matriz A debe ser una matriz cuadrada. >> A=[3 4 5;7 2 1;8 9 6] A= 3 7 8 4 2 9 5 1 6

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

35

>> B=inv(A) % calcula el inverso de la matriz A B= 0.0278 0.1944 -0.0556 -0.3148 -0.2037 0.2963 0.4352 0.0463 -0.2037 >> I=B*A I= 1.0000 -0.0000 -0.0000 0 1.0000 0.0000 0 0 1.0000 >> Ia=A*B Ia = 1.0000 0.0000 0.0000 1.0000 0.0000 0.0000

0 0.0000 1.0000

puede observarse que la matriz I = Ia, lo que demuestra que A*A-1 = A-1*A = I. .- Solución de ecuaciones con MATLAB: es posible utilizando operaciones con matrices el encontrar la solución a un sistema lineal de n ecuaciones con n incógnitas, tal como puede observarse en el sistema siguiente:
3 * x + 2 * y − 4 * z = 12 2 * x − 2 * y + 5 * z = 10 4 * x + 3 * y − 4 * z = 18

A partir de este sistema se pueden definir las siguientes matrices:
 3 2 −4  A :=  2 −2 5     4 3 −4   x b :=  y     z

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

36

 12  c :=  10     18 

planteándose la ecuación matricial A*b = c, se deduce que b = inv(A)*c, que llevado a MATLAB permite calcular el vector columna (incógnita b) en éste caso: > % Solucion sistema lineal de ecuaciones >> A=[3 2 -4;2 -2 5;4 3 4]; >> c=[12;10;18]; >> IA=inv(A) % calcula inverso matriz A >> b=IA*c % Entrega valores de x, y, z b= 4.3564 -0.0990 0.2178 de donde se concluye que : x = 4.3564 y = -0.0990 z = 0.2178

5.2.- Polinomios e Interpolación: El objetivo principal de la interpolación es el de interpolar datos conocidos en puntos discretos de forma tal que se puedan valores funcionales entre dichos puntos. Así por ejemplo, los métodos de integración numérica se derivan integrando polinomios de interpolación y las aproximaciones de diferencias finitas son derivadas igualmente de polinomios de interpolación. En esto radica la importancia del estudio de las expresiones de los polinomios de interpolación, su exactitud y los efectos de la selección de puntos de datos. Existen diversas formas para expresar los polinomios de interpolación, una de ellas es la expresión en serie de potencia. Un polinomio de orden o potencia n, tiene n raíces, las cuales pueden ser simples, múltiples o complejas. En general, si todos los coeficientes del polinomio son reales, todas las raíces complejas se encontrarán en pares conjugados complejos. La expresión general de un polinomio en serie de potencia es la siguiente:

y = c1 x n + c 2 x n −1 + c 3 x n − 2 + .......... + c n x + c n +1
donde n es el orden del polinomio (potencia más alta) y los ci son los coeficientes. Un polinomio puede también expresarse en forma factorizada según la siguiente expresión:

y = c1 ( x − r1 )( x − r2 ).......( x − rn )
del polinomio. IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

donde ri son las raíces

37

5.2.1.- Definición de Polinomios en MATLAB: Un polinomio, en MATLAB, se representa mediante la notación usada para definir a un vector fila, éste vector estará conformado por los coeficientes de las potencias del polinomio descritas en forma descendente. Así, por ejemplo el polinomio siguiente:

y = 5x 4 + 3 x 3 − 2 x 2 − 5 x + 6
se representa en MATLAB como un vector fila definido con los elementos:

p = [5

3

− 2

−5

6]

Es importante resaltar que los ceros definidos a la derecha en el vector son significativos, pues indican que el coeficiente de una potencia de orden menor a la potencia máxima es de valor cero, así para el siguiente polinomio: y = 5 x 5 + 2 x 3 + 3x , la definición en MATLAB será de la forma siguiente: y=[5 0 2 0 3 0] y= 5

0

2

0

3

0

lo cual indica que los coeficientes de las potencias de orden 4, 2 y 0 son nulos. 5.2.2.- Operaciones diversas con Polinomios: A continuación se presentan operaciones matemáticas con polinomios que son comunes en los análisis y aplicaciones del programa MATLAB. .- Factorización de un polinomio: factorizar un polinomio consiste en calcular el valor de las raíces de dicho polinomio. La notación roots(p) permite calcular las raíces del polinomio p. El programa devuelve un vector columna con los valores de las raíces del polinomio objeto de análisis. Calcular las raíces del polinomio : y = 4 x 3 + 3 x − 2 >> % Calculo raices de un polinomio >> y=[4 0 3 -2]; % definicion del polinomio a MATLAB >> r=roots(y) % calcula las raices de y r= -0.2500 + 0.9682i -0.2500 - 0.9682i 0.5000

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

38

.- Reconstrucción de un polinomio a partir de los valores de sus raíces: la notación poly(r) permite obtener la expresión del polinomio si se conocen los valores de sus raices, las cuales deben declarárseles al programa en forma de vector columna. >> % Reconstruccion de un polinomio a partir de sus raices r=[-0.25+0.9682j;-0.25-0.9682j;0.5]; % definicion de raices del polinomio y=poly(r) % entrega los valores de coeficientes del polinomio en orden descendente y= 1.0000

0

0.7499 -0.5000

el resultado entregado por el programa se interpreta como que las raíces declaradas en vector columna r son las del polinomio definido por la siguiente relación: y = x 3 + 0.7499 x − 0.5 . Puede observarse que las raíces declaradas en el vector r son las correspondientes a las del vector del ejemplo anterior (cálculo de raíces de un polinomio) y que los valores de los coeficientes corresponden a los valores del polinomio declarado en ese ejemplo divididos por 4. Ello se debe a que un polinomio determinado a partir exclusivamente de sus raíces sigue siendo arbitrario en cuanto a un multiplicador constante. Para poder determinar un polinomio de orden n se requieren n+1 puntos de datos, pero el número de raíces de un polinomio es sólo n; por ello, MATLAB normaliza los coeficientes de modo que el primero sea la unidad. Aunque las conversiones de coeficientes a raíces y viceversa son fáciles con MATLAB debe de tenerse cuidado en lo que se refiere a la exactitud de los cálculos. La conversión tiende a ser menos exacta si hay múltiples raíces. .- Evaluación de Polinomios: la notación polyval(p,xi) permite evaluar el valor del polinomio p(x) para el valor de xi. Si xi es un vector que contiene múltiples valores de la abscisa, el resultado será un vector, con los valores de las respuestas, de la misma longitud de xi. Dado el siguiente polinomio: y = 3x 4 − 7 x 3 + 2x 2 + x + 1 , calcular el valor de y para x = 2.5. >> % Evaluacion de un polinomio para un valor determinado >> y=[3 -7 2 1 1]; % definicion del polinomio >> xi=2.5; % definicion del valor para el cual se evalua el polinomio >> yi=polyval(y,xi) yi = 23.8125

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

39

Evaluación del polinomio y para una serie de valores de x: >> % Evaluacion de un polinomio para una serie de valores de x >> y=[3 -7 2 1 1]; % definicion del polinomio >> xi=[1 2.5 3 5]; % Evalua el polinomio para valores de x = 1, 2.5 3 y 5 >> yi=polyval(y,xi); % Evalua el polinomio para valores de x = 1; 2.5; 3 y 5 >> yi yi = 1.0e+003 * 0 0.0238 0.0760 1.0560 del resultado entregado por MATLAB, se concluye que: para x = 1 ===è y=0 para x = 2.5 ===è y = 23.8 para x = 3 ===è y = 76 para x = 5 ===è y = 105.6 .- Suma de polinomios: definidos dos o más polinomios del mismo orden, la operación suma de los mismos se obtiene con la notación: p1 + p 2 + …+ pn >> % Ejemplo de suma de polinomios (mismo orden) >> p1=[2 5 1 8]; p2=[0 1 4 0]; p3=[1 0 1 0]; >> pr=p1+p2+p3 pr = 3

6

6

8

.- Multiplicación de polinomios: dados dos polinomios p1 , p2, la notación conv(p1,p2) permite evaluar el producto de p1 y p2 . >> % Evaluacion del producto de dos polinomios >> p1=[2 4 -2 0]; p2=[3 6]; >> pq=conv(p1,p2) pq = 6 24 18 -12 0

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

40

.- dados dos polinomios p1 y p2 de igual orden o potencia, la notación p1*p2’ evalúa el producto interno o escalar entre p1 y p2 . >> % Evaluacion producto escalar entre dos polinomios (mismo orden) >> p1=[2 4 3 1]; p2=[1 3 2 0]; >> pe=p1*p2' pe = 20 .- la notación p1.*p2 evalúa el producto elemento a elemento entre dos polinomios p1 y p2 de mismo orden o potencia. >> % Multiplicacion elemento por elemento de dos polinomios (mismo orden) >> p1=[3 5 2 0 1]; p2=[1 0 2 1 2]; >> pp=p1.*p2 pp = 3

0

4

0

2

.- División de polinomios: dados dos polinomios p1 y p2 la división p1 /p2 es posible en MATLAB mediante la notación deconv(p1,p2). >> % Evaluacion de division de dos polinomios >> p1=[2 1 0 3 2 5]; p2=[2 1 0]; >> dp=deconv(p1,p2) dp = 1.0000

0

0

1.5000

.- si la división entre los polinomios no es exacta es posible obtener el cociente y el residuo mediante la notación: [c,r] = deconv(p1,p2), donde c y r son dos vectores filas, siendo c el vector contentivo del cociente de la división y r el vector contentivo del residuo de la división. >> [dp,r]=deconv(p1,p2) dp = 1.0000

0

0

1.5000

r= 0 0 0 0 0.5000 5.0000

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

41

.- Derivada de un polinomio: dado un polinomio p la notación polyder(p) permite obtener la primera derivada del polinomio p. >> % Evaluacion de la primera derivada de un polinomio >> y=[2 1 0.5 2.4 3 4]; >> dy=polyder(y) dy = 10.0000

4.0000

1.5000

4.8000

3.0000

.- Integral de un polinomio: dado un polinomio p la notación polyint(p) permite calcular la integral de p asumiendo como constante de integración k = 0; la notación polyint(p,k) determina la integral de p tomando como constante de integración k. >> p=[2 3 5 0 1 7]; >> ip=polyint(p) ip = 0.3333

0.6000

1.2500

0

0.5000

7.0000

0

>> % caso considerando k diferente de cero (k = 2) >> ipc=polyint(p,2) ipc = 0.3333

0.6000

1.2500

0

0.5000

7.0000

2.0000

5.2.3.- Evaluación de Funciones Racionales: MATLAB permite manejar funciones racionales expresando el numerador y denominador a través de polinomios. Así por ejemplo dada la siguiente función racional: 4x 2 + 2 x − 1 f ( x) = 4 5x + 6 x 3 + 4 x 2 − 3x − 5 esta función se puede definir de la forma siguiente: f ( x) =

nf ( x) df ( x)

donde nf(x) define el polinomio del numerador de f(x) y df(x) define el polinomio del denominador. Es decir:
nf ( x ) = 4 x 2 + 2x − 1

y

df ( x ) = 5 x 4 + 6 x 3 + 4 x 2 − 3x − 5

polinomios que pueden ser declarados al MATLAB para análisis de la función f(x), tales como determinación de polos y ceros, descomposición en fracciones parciales, etc. IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

42

Ejemplo de determinación de los polos y ceros de una función racional f(x): >> % Evaluacion de los ceros y polos de una funcion: >> % Definicion del numerador y denominador de F(x) >> nFx=[4 2 -1]; dFx=[5 6 4 -3 -5]; >> % Calculo de ceros y polos (raices de nFx y dFx) >> ceros=roots(nFx), polos=roots(dFx) ceros = -0.8090 0.3090

polos = 0.7887 -0.5369 + 1.0477i -0.5369 - 1.0477i -0.9148 .- Descomposición en fracciones parciales de una función racional: la notación [r,p,k]=residue(numf(x),denomf(x)) permite la descomposición en fracciones parciales de la función f(x), donde los componente r son los residuos de las fracciones parciales, los componentes p son los polos o raíces de la fracción y k es el orden o factor de ganancia. >> % Descomposicion en Fracciones Parciales de una funcion racional: >> nFx=[4 2 -1]; % Define numerador de f(x) >> dFx=[5 6 4 -3 -5]; % Define denominador de f(x) >> [r,p,k]=residue(nFx,dFx) r= -0.0385 - 0.2932i -0.0385 + 0.2932i -0.0490 0.1261 p= -0.5369 + 1.0477i -0.5369 - 1.0477i -0.9148 0.7887

k= [] IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

43

la interpretación de estos resultados es la siguiente: la función f(x) definida en la forma polinomica: 4 x 2 + 2x − 1 f ( x) = 4 5 x + 6x 3 + 4x 2 − 3 x − 5 al descomponerla en fracciones parciales será igual a:

f ( x) =

0.0385 + 0.2932i 0.0385 − 0.2932 j − 0.049 0.1261 + + + +0 x − ( −0.5369 + 1.0477 j ) x − ( −0.5369 −1.0477 j ) x − (−0.9148) ( x − 0.7887)

En el caso de que en la descomposición de la función en fracciones parciales aparezcan polos múltiples, el desarrollo de la función se presentará en el orden siguiente: ( x − p1 ), ( x − p1 ) 2 , ( x − p1 ) 3 ,........( x − p1 ) n .- Reconstrucción de una función racional a partir de sus fracciones parciales: es posible el reconstruir el numerador y denominador de una función racional utilizado la notación siguiente: [numFx,denFx] = residue(r,p,k). el programa entrega dos vectores contentivos de los datos del polino mio de numerador y del polinomio del denominador de la función f(x). >> nFs=[2 4 2]; >> dFs=[4 6 2 4 2]; >> [r,p,k]=residue(nFs,dFs) r= -0.0320 -0.0396 - 0.3326i -0.0396 + 0.3326i 0.1111

p= -1.4656 0.2328 + 0.7926i 0.2328 - 0.7926i -0.5000

k= []

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

44

>> [numFs,denFs]=residue(r,p,k) numFs = 0 0.5000 1.0000 0.5000

denFs = 1.0000

1.5000

0.5000

1.0000

0.5000

puede observarse en los resultados obtenidos que el polinomio del numerador y el polinomio del denominador aparecen simplificados por un factor de escala ( 4 en este caso) que es el coeficiente de la potencia de mayor orden del polinomio del denominador, si ambos (numerador y denominador) se multiplican por este factor, se obtienen los respectivos valores iniciales (definidos) de los polinomios de la función racional. >> 4*numFs ans = 0 2.0000 4.0000 2.0000 >> 4*denFs ans = 4.0000

6.0000

2.0000

4.0000

2.0000

5.2.4.- Operaciones con funciones en MATLAB: MATLAB permite operar con funciones matemáticas permitiendo generarlas o crearlas como archivo **.m o definiéndolas como cadena de caracteres. .- Función como cadena de caracteres: en MATLAB pueden definirse las funciones en forma de caracteres alfanuméricos, permitiendo operar con ellas de forma tal que su análisis se simplifica para el objetivo planteado. La función f ( x) = 2.e − x .sen( x) se define en MATLAB, para su análisis y evaluación, como una cadena de caracteres de la forma siguiente: >> % Definicion de una Funcion como una cadena de caracteres: >> fx='2*exp( -x).*sin(x)' fx = 2*exp(-x).*sin(x)

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

45

.- Evaluación de una función con MATLAB: la notación eval(fx) evalúa la función f(x) para un valor de x previamente declarado. Considerando la función definida en el aparte anterior se tiene: >> fx='2*exp( -x).*sin(x)' fx = 2*exp(-x).*sin(x) x=2.1, eval(fx) x= 2.100 ans = 0.2114 lo cual se interpreta como que: para un valor de x = 2.1 la función f(x) = 0.2114. .- Valor mínimo y máximo de una función: la notación [xmin,fval]=fimnbnd(fx,a,b) entrega el valor de xmin y el valor mínimo de la función. Considerando la función del apartado anterior, se va a calcular el valor de x dentro de un intervalo [1,5] para el cual la función es mínima. >> fx fx = 2*exp(-x).*sin(x) >> [xmin,fval]=fminbnd(fx,1,5) xmin = 3.9270

fval = -0.0279 lo cual se interpreta como que el valor mínimo de la función f(x) para los valores de x comprendidos entre 1 y 5, es de -0.0279 y se obtiene cuando x = 3.9270.

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

46

.- Ceros de una función: la notación [xo fval] = fzero(fx,b) calcula el valor de x más próximo al escalar b para el cual la función tiende a cero. >> fx fx = 2*exp(-x).*sin(x) >> [xo fval]=fzero(fx,4) xo = 3.1416

fval = -2.7797e -017 lo cual se interpreta que para x = 3.1416 la función f(x) tiende a cero.

6.- Gráficas con MATLAB: El programa MATLAB utiliza los comandos “plot” y “stem” para la graficar func iones con una o más variables independientes. Tanto el comando “plot(x,y)” como el comando “stem(x,y)” evalúan cada columna de un arreglo como un grupo de datos. >> % Ejemplo de graficas con MATLAB >> x=linspace(0,2*pi,50); % define vector x (abcisas) >> y=sin(x); % Definicio n funcion senoidal >> plot(x,y) % Grafica y vs x la grafica aparece en la ventana de gráficos de MATLAB:

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

47

La notación plot(x,y,x,w) permite graficar en la misma ventana las curvas y = f(x) y de w = f(x) , tal como puede observarse en el siguiente ejemplo: x=linspace(0,2*pi,50); y=sin(x); w=cos(x); >> plot(x,y,x,w) la gráfica obtenida en la ventana de figura es la siguiente:

Las notaciones: xlabel(‘titulo eje x’) y ylabel(‘titulo eje y’) permiten rotular cada uno de los ejes de la gráfica y title(‘titulo’) permite titular la gráfica. x=linspace(0,2*pi,50); y=sin(x); w=cos(x); plot(x,y,x,w),xlabel('eje x'),ylabel('eje y') title('titulo de grafica') la gráfica obtenida en este caso es la siguiente:

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

48

En el trazado de varias gráficas en la misma ventana, el programa por defecto usa líneas sólidas de colores azul, verde, rojo, celeste, violeta, amarillo, negro y blanco sucesivamente. Las siguientes notaciones, despúes de declarar el comando plot o stem, permiten operar una gráfica obtenida con MATLAB: .............grid: activa rejilla grid off: remueve rejilla box off: elimina marco de los ejes box on: recupera marco de los ejes text(xi,yi): permite colocar rótulos en función de coordenadas (xi,yi) axis([x min xmax ymin ymax ]): permite modificar limites del gráfico o fijar valores de ejes axis auto: restaura valores de escalamiento por defecto axis off: elimina ejes axis on ij: restaura los ejes y gira el eje vertical figure(n): permite abrir una nueva ventana de figuras conservando las anteriores hold on: permite dibujar nuevos gráficos en el mismo juegos de ejes ishold: permite investigar si se mantienen los ejes actuales hold off: libera la ventana de la figura actual para un nuevo gráfico

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

49

.- subplot(m,n,k): divide la ventana de figura en una matriz m x n áreas y selecciona para el gráfico indicado la k-esima área. .- zoom on: activa el modo de ampliación de la figura actual. - click con botón izquierdo: expande la gráfica alredor de punto señalado - click con el boton derecho: contrae la figura. - es posible marcar una zona arrastrando el botón izquierdo del ratón. .- zoom off: desactiva modo de ampliación de la figura actual.

IUTAI “Región los Andes” BMV.-bemevi@telcel.net.ve

Sign up to vote on this title
UsefulNot useful