curso de matlab _r

79
ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB 1 UNIVERSIDAD AUTONOMA AGRARIA ANTONIO NARRO DIVISION DE INGENIERIA DEPARTAMENTO DE ESTADISTICA Y CALCULO ACADEMIA DE COMPUTO NOTAS SOBRE MATLAB

Upload: joel-jose

Post on 26-Jun-2015

415 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

1

UNIVERSIDAD AUTONOMA AGRARIA ANTONIO NARRO

DIVISION DE INGENIERIA

DEPARTAMENTO DE ESTADISTICA Y CALCULO

ACADEMIA DE COMPUTO

NOTAS SOBRE MATLAB

Page 2: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

2

CONTENIDO

3 …......................................................................Introducción

4 ........................................................Instalación de MATLAB

6 .............................................................MATLAB en Internet

7 .....................................................Trabajando con MATLAB

20 .........................................................................Graficación

26 ..............................................................................Matrices

32 ..................Solución de Sistemas de Ecuaciones Lineales

Page 3: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

3

I INTRODUCCION

MATLAB es un programa interactivo que sirve principalmente para computación numérica y visualización de datos. Es ampliamente usado por Ingenieros en el análisis y diseño, posee además una extraordinaria versatilidad y capacidad para resolver problemas en matemática aplicada, física, química, ingeniería, finanzas y muchas otras aplicaciones. Está basado en un sofisticado software de vectores y matrices para el análisis de sistemas de ecuaciones. Permite resolver complicados problemas numéricos sin necesidad de escribir un programa.

Matlab sirve ademas para analizar y resolver una gran diversidad de problemas que pueden abarcar temas distintos tales como: • Análisis de circuitos eléctricos • Diseño de estructuras mecánicas • Modelación de sistemas de control • Tratamiento de señales electrónicas • Matemáticas • Estadística • Diseño • Redes neuronales • Simulación • Etc. Como ya se mencionó fue originado para el tratamiento de vectores y matrices, Matlab emplea matrices porque con ellas se puede describir infinidad de cosas de una forma altamente flexible y matemáticamente eficiente. Una matriz de pixeles puede ser una imagen o una película. Una matriz de fluctuaciones de una señal puede ser un sonido o una voz humana. Y tal vez más significativamente, una matriz puede describir una relación lineal entre los componentes de un modelo matemático. En este último sentido, una matriz puede describir el comportamiento de un sistema extremadamente complejo. Por ejemplo una matriz puede representar el vuelo de un avión a 40.000 pies de altura, o un filtro digital de procesamiento de señales. Es precisamente de este concepto que se deriva su nombre (MATrix LABoratory). MatLab fue originalmente desarrollado en lenguaje FORTRAN para ser usado en computadoras mainframe. Fue el resultado de los proyectos Linpack y Eispack desarrollados en el Argonne National Laboratory. Al pasar de los años fue complementado y reimplementado en lenguaje C. Actualmente la licencia de MatLab es propiedad de MathWorks Inc; Su uso se empieza a diversificar en la decada de los 80’s, actualmente, y debido a sus características, se trata de implementar como un software de uso común a nivel universitario, teniéndose, además, gran penetración en la industria, particularmente en la automovilística, de aviación, aeroespacial, y muchos usos mas en medicina moderna.

Page 4: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

4

MATLAB permite la solución de una gran cantidad de problemas sin tener que programar. Existen diferentes lenguajes de programación como Pascal, Fortran, C, C++, Cobol, visual C, visual Basic, Java, etc. Sin embargo MATLAB ofrece las siguientes ventajas sobre los distintos lenguajes. • Facilidad en su uso y en su aprendizaje. • Gran exactitud y rapidez. • Gran capacidad de graficación. Además de ser compatible con PC’s y Macintosh. En general MATLAB ofrece cómputo numérico y simbólico, además de visualización científica, Matlab ha llegado a ser el entorno de computación técnica de mayor uso. INSTALACION DE MATLAB MATLAB requiere el siguiente sistema (versión 6.5): ♦ Procesador pentium o mayor. ♦ Microsoft Windows 98,2000, ME, o XP. ♦ Unidad de discos compactos (CD) . ♦ 100 MB de espacio en disco duro. ♦ Tarjeta de sonido ♦ Tarjeta de Video ♦ 64 MB de memoria RAM (mínimo). ♦ Acelerador Gráfico MATLAB es un entorno de trabajo y un lenguaje de programación. MATLAB incluye una serie de archivos especializados llamados toolboxes, útiles para trabajar cada uno de ellos con cierto tipo de problemas. MATLAB Professional contiene los siguientes toolboxes: ♦ Control System Toolbox. ♦ Frequency -Domain System Identification Toolbox. ♦ Fuzzy Logic Toolbox . ♦ Higer-Order Spectral Analysis Toolbox. ♦ Image Processing Toolbox. ♦ Model Predictive Control Toolbox. ♦ Mu Analysis and Synthesis Toolbox. ♦ NAG Foundation Toolbox. ♦ Neural Network Toolbox. ♦ Nonlinear Control Design Toolbox. ♦ Optimization Toolbox. ♦ Quantitative Feedback Theory Toolbox. ♦ Robust Control Toolbox. ♦ Signal Processing Toolbox.

Page 5: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

5

♦ SIMULINK ♦ SIMULINK Real-Time Workshop. ♦ Spline Toolbox. ♦ Statistics Toolbox. ♦ Symbolic Math Toolbox. ♦ System Identification Toolbox. Para instalar la versión 6.5 de MATLAB, introduzca el CD en la unidad correspondiente, este CD tiene un archivo autoejecutable que se ejecutará automáticamente mostrando la siguiente pantalla.

En seguida presionaremos el boton con la leyenda “Next > “ y aparece una ventana como la que se muestra enseguida.

Aquí es donde pondremos la clave del producto que viene en nuestro programa y es dada por el fabricante; pasado este paso se procede a instalar el MATLAB en nuestra computadora siguiendo las diferentes instrucciones que se van presentando a lo largo de la instalación.

Page 6: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

6

Una vez instalado MATLAB crea un icono en nuestro escritorio con la siguiente apariencia

Basta con dar un doble clic sobre el Y se ejecutará MATLAB, mostrando el escritorio de MATLAB.

La parte mas importante de la ventana inicial es la Command Window que se muestra en la parte derecha. En esta sub-ventana es donde se ejecutan los comandos de MATLAB, a continuación del prompt (aviso) caracteristico (>>), que indica que el programa esta listo para recibir instrucciones. En la parte superior izquierda de la pantalla aparecen dos ventanas tambien muy utiles : en la parte superior aparece la ventana Launch pad, que se puede alternar con Workspace haciendo clic en la pestaña correspondiente. Launch pad da acceso a todos los modulos o componentes de MATLAB que se tengan instalados, como por ejemplo el Help o el Demos. El Workspace contiene información sobre todas las variables que se hayan definido en esta sesión. En la parte inferior izquierda aparecen otras dos ventanas, Command History y Current Directory, que se pueden mostrar alternativamente por medio de las pestañas correspondientes. La ventana Command History muestra los ultimos comandos ejecutados en el Commando window. Estos comandos se pueden volver a ejecutar haciendo doble clic sobre ellos. Haciendo click sobre un comando con el botón derecho del ratón se muestra un menú contextual con las posibilidades disponibles en ese momento. Para editar uno de estos comandos hay que copiarlo antes a la Command Window. Por otra parte, la ventana Current Dictory muestra los ficheros del directorio activo o actual. A diferencia de versiones anteriores de MATLAB en que el directorio

Page 7: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

7

activo se debía cambiar desde la Command Window, a partir de la version 6.0 se puede cambiar desde la propia ventana (o desde la barra de herramientas, debajo de la barra de menus), con los métodos de navegación de directorios propios de Windows Para salir de MATLAB escriba quit y pulse enter. Se puede abortar la ejecución de comandos en MATLAB con la secuencia Control + c. MATLAB EN Internet

Se puede accesar el sitio Web de MATLAB con:

http://www.mathworks.com otra información en:

http://www.prenhall.com, http://ece-www.colorado.edu/faculty/etter.html Correo electrónico:

[email protected]

Page 8: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

8

II TRABAJANDO CON MATLAB Con MATLAB se puede realizar una amplia gama de operaciones: ♦ Operaciones aritméticas:

• Suma, resta, multiplicación, división. ♦ Operaciones con matrices:

• Suma, resta, multiplicación, inversión de matrices, transponer matrices, solución de sistemas lineales, etc.

♦ Manejo de expresiones algebraicas: ♦ Diferenciación, integración, etc. ♦ Solución de ecuaciones diferenciales ♦ Programación con estructuras de decisión: ♦ Ciclos while-end, if-end, for-end, etc. ♦ Graficación. y mucho más. MATLAB es sensible a mayúsculas y minúsculas, se maneja por medio de comandos y funciones ya definidas por lo que se debe ser cuidadoso con la escritura, ya que, si se define una matriz o variable “A” y luego se pide ejecutar operaciones con la matriz o variable nombrándola “a”, no se obtendrán resultados correctos. Las ventanas que usa MATLAB son: ♦ La ventana de comandos. ♦ La ventana de gráficos. ♦ La ventana de edición.(para crear y/o modificar archivos .M), donde sólo se teclea el

nombre del archivo sin la extensión .M ------------------------------------------------------------------------------------------------------------------------ Al inicio de una sesión con MATLAB se recomienda teclear los comandos clf y clear para limpiar de gráficos y de variables el entorno de trabajo. El comando clc despeja la ventana de comandos, clear limpia todas las variables en uso, cuando se han utilizado las variables, por ejemplo a, b y c, y se desea eliminar la variable a, se teclea clear a, para borrar las variables a y c se teclea clear a c. Puede efectuar operaciones sencillas con MATLAB, por ejemplo puede definir las variables a y b con: a = 5 y b = 8, luego efectuar la suma c = a + b. Si después de cada asignación de valores a las variables teclea ; MATLAB guarda en la memoria el valor de la variable, pero no muestra el valor de la variable, si no se teclea el ; al final de la asignación MATLAB responde mostrando el valor de la variable. Por ejemplo esto es lo que muestra la pantalla de MATLAB con el ejemplo anterior: »a = 5; » b = 8; » c = a + b; »

Page 9: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

9

para mostrar el valor de c en seguida tecleamos c sin el punto y coma (;) » c c = 13 » si deseamos ver los valores de las variables inmediatamente tecleamos lo anterior sin punto y coma (;) » a = 5 a = 5 » b = 8 b = 8 » c = a + b c = 13 » En determinado momento puede ser conveniente conocer las variables que hemos estado manejando, esto se consigue con el comando who: » who Las variables son: a b c » para conocer más datos sobre las variables se teclea whos: » whos Nombre Tamaño Elementos Bytes Densidad Complejo A 1 by 1 1 8 Full No b 1 by 1 1 8 Full No c 1 by 1 1 8 Full No Gran total son 3 elementos usando 24 bytes » Los comandos help, help save, clock, date, ver muestran los resultados de MATLAB para solicitar ayuda () general, ayuda sobre algún tema específico, (save: guardar), reloj, fecha y versión de MATLAB: » help

Page 10: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

10

HELP topics: toolbox\local - Local function library. matlab\datafun - Data analysis and Fourier transform functions. matlab\elfun - Elementary math functions. matlab\elmat - Elementary matrices and matrix manipulation. matlab\funfun - Function functions - nonlinear numerical methods. matlab\general - General purpose commands. matlab\color - Color control and lighting model functions. matlab\graphics - General purpose graphics functions. matlab\iofun - Low-level file I/O functions. matlab\lang - Language constructs and debugging. matlab\matfun - Matrix functions - numerical linear algebra. matlab\ops - Operators and special characters. matlab\plotxy - Two dimensional graphics. matlab\plotxyz - Three dimensional graphics. matlab\polyfun - Polynomial and interpolation functions. matlab\sounds - Sound processing functions. matlab\sparfun - Sparse matrix functions. matlab\specfun - Specialized math functions. matlab\specmat - Specialized matrices. matlab\strfun - Character string functions. matlab\dde - DDE Toolbox. matlab\demos - The MATLAB Expo and other demonstrations. Para más ayuda sobre directory/topic, escriba "help topic". Vea también load, diary, fwrite, fprintf, imwrite. Para ver la hora del sistema: » clock ans = 1.0e+003 * 1.9990 0.0120 0.0290 0.0210 0.0180 0.0579 MATLAB muestra que son las 21:18:579 del día 29/12/1998. (el número 1.0e+003 es un multiplicador, multiplique el renglón de abajo por 1000). Se puede obtener en un formato más legible la respuesta de clock con: » fix (clock) ans = 1998 12 29 21 30 49 » Cuando tecleamos un comando erróneamente MATLAB responde con: » dae ??? Undefined function or variable dae. Escrito correctamente:

Page 11: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

11

» date ans = 29-Dec-99 » ver MATLAB Version 4.2c.1 MATLAB Site Identification Number: 334139 MATLAB Toolbox Version 4.2a 25-Jul-94 Como ya se mencionó MATLAB maneja variables cuyo nombre debe ser escrito con letras, caracteres y también puede usarse el subrayado (_), los primeros 19 caracteres deben ser diferentes; el nombre de la variable debe ser descriptivo de lo que va a hacer la variable, por ejemplo: nom_empleado describirá una variable que contiene el nombre de un empleado. angulo_1, es la variable utilizada para definir al primer ángulo usado. MATLAB maneja además otras variables y funciones predefinidas, las cuales no deben usarse como variables o funciones que el usuario de MATLAB defina como propias de él ya que esto puede ocasionar problemas. Las variables son: ♦ ans, ♦ pi (3.14159…), ♦ eps, ♦ inf (respuesta de la división 1/0), ♦ NaN (Not a Number, respuesta de la división 0/0), ♦ i, j (son la raíz cuadrada de -1), ♦ realmin, ♦ realmax, ♦ minimo, ♦ maximo, ♦ usable, ♦ real. El valor de eps es el mínimo valor que se agrega a una variable de tal manera que al restarle el valor de esa misma variable se obtenga una diferencia mínima, no igual a cero. El valor de eps es » eps eps = 2.2204e- 016 » 1+ eps-1 ans = 2.2204e-016 El valor de realmax es:

Page 12: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

12

» realmax ans = 1.7977e+308 MATLAB trabaja con números en formato de doble precisión, aunque no muestre todos los decimales en pantalla. Solicitando ayuda para formato de números se tiene la siguiente información: » help format FORMAT Set output format. All computations in MATLAB are done in double precision. FORMAT may be used to switch between different output display formats as follows: FORMAT Default. Same as SHORT. FORMAT SHORT Scaled fixed point format with 5 digits. FORMAT LONG Scaled fixed point format with 15 digits. FORMAT SHORT E Floating point format with 5 digits. FORMAT LONG E Floating point format with 15 digits. FORMAT HEX Hexadecimal format. FORMAT + The symbols +, - and blank are printed for positive, negative and zero elements. Imaginary parts are ignored. FORMAT BANK Fixed format for dollars and cents. FORMAT COMPACT Suppress extra line-feeds. FORMAT LOOSE Puts the extra line-feeds back in. FORMAT RAT Approximation by ratio of small integers. Para ver lo anterior definimos la variable a con el valor de pi (3.14159…) » a = pi a = 3.1416 Pedimos un formato de doble precisión: » format long » a a = 3.14159265358979 Pedimos un formato de precisión simple en notación científica: » format short e » a a = 3.1416e+000 El mismo formato con doble precisión:

Page 13: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

13

» format long e » a a = 3.141592653589793e+000 La petición format rat ofrece una aproximación (en este caso), fraccionaria para el número usado: » format rat » a a = 355/113 Formato en moneda: » format bank » a a = 3.14 Equivalente hexadecimal » format hex » a a = 400921fb54442d18 El formato short es usado por default. Cuando sea conveniente usar comentarios se le antepone el signo % con lo que no causa efecto sobre el código de MATLAB. Las variables se pueden declarar una por una en cada renglón, en un sólo renglón separándolas por comas por punto y coma. Los operadores en MATLAB son: + - * / \ ^ Los siguientes son ejemplos: » 7 + 3 ans = 10 » 34 - 5 ans =

Page 14: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

14

29 » 32 * 4 ans = 128 » 4 / 5 ans = 0.8000 » 4 \ 5 % operador de división inversa, con resultado igual a 5 / 4. ans = 1.2500 » 3 ^ 2 ans = 9 En este caso que no se han utilizado nombres para las variables que representan los valores usados, el valor resultante se almacena en la variable definida por MATLAB llamada ans. MATLAB también utiliza los operadores relacionales y lógicos: < <= > >= ~= (no igual que) == (igual que) Los caracteres <=, >=, ==, ~= se deben escribir uno tal cual, y representan un sólo símbolo y un sólo significado. Los siguientes son los caracteres lógicos: & (y -and) | (ó-or) ~ (negación-not) MATLAB también hace uso de funciones definidas. Las siguientes son funciones de MATLAB: » help elfun Funciones matemáticas elementales. Trigonométricas. sin Seno. sinh Seno hiperbólico. asin Seno inverse. asinh Seno hiperbólico inverso. cos Coseno.

Page 15: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

15

cosh Coseno hiperbólico. acos Coseno inverso . acosh Coseno hiperbólico inverso. tan Tangente. tanh Tangente hiperbólica. atan Tangente inversa. atan2 Tangente inversa del cuarto cuadrante. atanh Tangente hiperbolic inversa. sec Secante. sech Secante hiperbólica. asec Secante inversa. asech secante hiperbólica inversa. csc Cosecante. csch Cosecante hiperbólica. acsc Cosecante inversa. acsch Cosecante hiperbólica inversa. cot Cotangente. coth Cotangente hiperbólica. acot Cotangente inversa acoth Cotangente hiperbólica inversa. Exponencial. exp Exponencial. log Logaritmo natural. log10 Logaritmo común. sqrt Raíz cuadrada. Complejo. abs Valor absoluto. angle Angulo de fase. conj Complejo conjugado. imag Parte compleja imaginaria. real Parte compleja real. Numérico. fix Redondea al más cercano a cero. floor Redondea al más cercano al - infinito. Ceil Redondea al más cercano al + infinito. round redondea al entero más cercano. rem Residuo de la división. sign Función signo. Es conveniente mencionar que los ángulos se miden en radianes. Puede practicar manejando las funciones, operadores relacionales, etc., algunos de los cuales se muestran enseguida. En estos ejemplos se mencionan algunos elementos nuevos de MATLAB, como el ciclo for, el cual ejecuta una serie de instrucciones repetidas un cierto número de veces, el condicional if, el cual ejecuta una serie de instrucciones de acuerdo al valor de verdad falso o verdadero de la sentencia escrita enseguida del if; lo cual nos dará algún antecedente de su uso, mostrándose los resultados dados por MATLAB.

Page 16: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

16

Para ilustrar el uso del for y del if se proponen los siguientes ejemplos: Para el uso del if se tiene la siguiente sintaxis If condicion sentencias end El siguiente ejemplo compara dos cantidades que se dan como dato, x=5 y a= 3, si se cumple que “x” sea mayor que “a”, MATLAB hace y = 8: » x = 5 ; » a = 3 ; » if x > a y=8 end y = 8 En otro ejemplo se define la variable “r” que denota el radio de una esfera, con valor de 3, a continuación se pregunta si r es mayor que 0, si esto es verdadero, se encuentra luego el volumen (vol) de una esfera para r = 3. » r = 3; » if r > 0, vol = (4/3) * pi * r ^ 3 end vol = 113.0973 Se tiene a continuación otra variante de este sencillo programa, define la variable r con valor de 3, ahora se pregunta si r es igual que 3, si es verdadero se encuentra el volumen de una esfera para r = 3. » r = 3; » if r == 3, vol = (4/3) * pi * r ^ 3 end vol = 113.0973 Es importante notar la diferencia entre los símbolos = y ==. El símbolo = es usado para la asignación de valores o expresiones contenidas en el lado derecho del símbolo a la variable contenida en el lado izquierdo de ese carácter. Por ejemplo en la expresión r = 3, el valor de 3 es asignado a la variable r. Con el uso del carácter ==, se simboliza igualdad. En la expresión if r == 3 se pregunta si es r igual a 3. El símbolo ~= significa no es igual a. » r = 3;

Page 17: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

17

» if r ~= 0, vol = (4/3) * pi * r ^ 3 end vol = 113.0973 El siguiente código es un ciclo for que ejecuta el cálculo del mismo volumen de la esfera un cierto número de veces, donde el radio r toma valores desde 1 hasta 5, el valor actual del radio será el número de veces que se ejecute el cálculo. Con la sentencia disp([r, vol]) se despliega en pantalla la tabla de valores de r y los resultados para el volumen vol correspondiente. Nótese la indentación del segundo for (anidado en el primer for) y la indentación de las sentencias contenidas en el segundo for. » for r = 1: 5 for s = 1: r vol = (4/3)*pi*r^3; disp([r, vol]) end end 1.0000 4.1888 2.0000 33.5103 2.0000 33.5103 3.0000 113.0973 3.0000 113.0973 3.0000 113.0973 4.0000 268.0826 4.0000 268.0826 4.0000 268.0826 4.0000 268.0826 5.0000 523.5988 5.0000 523.5988 5.0000 523.5988 5.0000 523.5988 5.0000 523.5988 Note que los resultados muestran en la columna del lado izquierdo el valor de la variable “r”, se repite una vez, dos veces, así hasta cinco veces, ya que el segundo ciclo for va a desplegar el valor de la variable r el número de veces que valga en ese momento la variable r y a calcular y desplegar el resultado calculado para la variable vol también el número de veces que indique en ese momento el valor de la variable r. En el siguiente ejemplo, el ciclo for desplegará en pantalla el valor de la variable r, este valor se incrementará de uno en uno para cada repetición del ciclo for, así también desplegará en pantalla el valor calculado para la variable a, el cual es obtenido con el producto de 5 por el valor actual de r. » for r = 1 : 4 a = 5 * r; disp([r,a]) end

Page 18: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

18

1 5 2 10 3 15

4 20 MATLAB también permite el uso de funciones matemáticas. Usando las funciones seno, sin(), exponencial, exp() y raíz cuadrada, sqrt(): » 4 + sin(3.25) + exp(2) ans = 11.2809 » 4 + sqrt(9) ans = 7 EJERCICIOS: Practique lo aprendido resolviendo los siguientes problemas. Elabore una lista de valores para el área de un cuadrado, donde el valor del lado que define su área varía desde 1 hasta 8. Calcule la resistencia total de un circuito eléctrico en serie y en paralelo, donde el valor de las resistencias se define por las variables r1, r2, r3 y r4, la resistencia total es rt. Dé usted mismo los valores. Las fórmulas son las siguientes: rt = r1 + r2 + r3 + r4 rt = 1 / (1/r1 + 1/r2 + 1/r3 + 1/r4) Calcule el valor de

• y = 0.5exp(x/3) – x^2sen(x – 1) • y = sen(x) / log(2 + x^2) – x^3

Calcule la solución de la ecuación cuadrática. Experimentar para valores reales y distintos, valores reales, valores complejos, de acuerdo al valor del discriminante. Calcule con ciclo for y muestre los valores calculados para los siguientes casos:

• Los valores del seno del ángulo r, cuando r varía de 0 hasta 6. • Los valores de la exponencial de r, cuando r varía de 0 hasta 6. • Los valores de la raíz cuadrada de r, cuando r varía de 0 hasta 6. • Los valores del seno del ángulo r más la raíz cuadrada de r, cuando r varía de 0

hasta 6. • Los valores de la raíz cuadrada de r menos la exponencial de r/2, cuando r varía

de 0 hasta 6.

Page 19: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

19

• Calcule con ciclo for los valores del seno del ángulo r, cuando r varía de 0 hasta 6, introduciendo en el for un if para que se efectúe el cálculo sólo si r es menor que cinco.

III GRAFICACION CON MATLAB

Page 20: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

20

MATLAB permite graficar en una forma sencilla una gran cantidad de expresiones, manejando una gran variedad de tipos de graficas, de colores y de líneas. Suponiendo que deseamos graficar los siguientes datos, veremos como hacerlo con MATLAB:

Variable1 Variable2 1 35 2 39 3 44 4 50 5 56 6 59 7 65 8 82 9 88

10 85 En MATLAB estos datos se introducen por medio de dos vectores “x” y “y”, definidos como se muestra, además de las correspondientes instrucciones a MATLAB para que realice la gráfica, los comandos: plot(x, y), para graficar title(‘ ’), para colocar el título de la gráfica. xlabel(‘ ‘), para el título del eje horizontal. ylabel(‘ ‘), para el título del eje vertical. » x = [1,2,3,4,5,6,7,8,9,10] x = 1 2 3 4 5 6 7 8 9 10 » y = [35,38,44,50,58,64,71,89,85,96] y = 35 38 44 50 58 64 71 89 85 96 » plot(x,y), title('Prueba'), xlabel('Variable1'), ylabel('Variable2') Modificando la última línea del código en MATLAB con la instrucción grid, que agrega una cuadrícula de fondo a la gráfica: » plot(x,y), title('Prueba'), xlabel('Variable1'), ylabel('Variable2'), grid

60

70

80

90

100Prueba

Varia

ble2

Page 21: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

21

MATLAB permite el uso de varios caracteres para cambiar la presentación de las gráficas, tales como el uso de colores y/o de líneas diversas: Colores: Rojo r Magenta m Verde g Azul b Amarillo y Negro k Blanco w Turquesa c Símbolos para líneas: . + * o x - : -- -.

INTRODUCCION A LAS MATRICES OPERADOR DOS PUNTOS (:) Este operador permite crear vectores a partir de una matriz dada. a partir de una matriz “h”, usamos el operador dos puntos (:) de la siguiente manera para crear un nuevo vector columna con los elementos de la primer columna de la matriz “h”: c = h(:,1) Un nuevo vector con los elementos de la segunda columna de “h”: d = h(:,2) Escribiendo:

Page 22: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

22

e = h(1,:) Creamos un nuevo vector fila con los elementos de la matriz “h”. Si definimos en MATLAB la matriz “h”, obtenemos los resultados que se muestran con el operador dos puntos: » h = [1,2,3; 4,5,6; 7,8,9] h = 1 2 3 4 5 6 7 8 9 » c = h (:, 1) c = 1 4 7 » d = h(:,2) d = 2 5 8 » e = h(1,:) e = 1 2 3 Se puede crear con los vectores así generados una nueva matriz, por ejemplo: » f = [c, d] f = 1 2 4 5 7 8 Usando el mismo operador dos puntos se pueden crear matrices nuevas definidas entre dos valores que marquemos, por ejemplo, generar una matriz con elementos entre 2 y 8, la orden en MATLAB es: » k = 2 : 8 k = 2 3 4 5 6 7 8 Se pueden generar los elementos de la matriz con un incremento definido entre ellos, la matriz fila “n”, con intervalos entre sus elementos de 2, la orden es: » n = 3 : 2 : 12 n = 3 5 7 9 11 el incremento se fija entre el operador dos puntos. Otra opción es:

Page 23: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

23

» matriz = 85 : -3 : 70 matriz = 85 82 79 76 73 70 Se puede obtener una submatriz a partir de otra con el mismo operador; a partir de la matriz ”h” formar una submatriz con los elementos de las columnas segunda y tercera: » h h = 1 2 3 4 5 6 7 8 9 » p = h(:, 2:3) p = 2 3 5 6 8 9 con las filas uno y dos de “h”: » r = h(1:2,:) r = 1 2 3 4 5 6 Con la matriz “s” se puede obtener una submatriz con los elementos de las filas dos y tres y de las columnas tres y cuatro, en MATLAB la orden es: » s = [1,2,3,4; 5,6,7,8; 9,12,15,16] s = 1 2 3 4 5 6 7 8 9 12 15 16 » t = s(2:3, 3:4) t = 7 8 15 16 Con MATLAB se puede generar automáticamente matrices especiales tales como una matriz de ceros, de unos, matriz identidad, transpuesta de una matriz. La matriz de ceros se representa en MATLAB como “zeros()”, la matriz de unos como “ones()”, la matriz identidad como “eyes()”: » zeros(4) genera una matriz de ceros ans =

Page 24: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

24

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 » ones (2) genera una matriz cuadrada ans = 1 1 1 1 » ones (2, 5) genera una matriz de 2x5 ans = 1 1 1 1 1 1 1 1 1 1 » eye (4) genera una matriz identidad ans = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 » eye (2, 4) ans = 1 0 0 0 0 1 0 0 La transpuesta de una matriz “A” se representa por A’, y representa una nueva matriz que transforma las filas de A en columnas de A’: » s s = 1 2 3 4 5 6 7 8 9 12 15 16 » s' ans = 1 5 9 2 6 12 3 7 15 4 8 16

IV INTRODUCCION A LAS MATRICES

Page 25: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

25

Las matrices son arreglos para representar ciertos datos. Utilizaremos las matrices para resolver sistemas de ecuaciones, será conveniente ver el manejo de las operaciones básicas de matrices en MATLAB. Se supone que el usuario ya sabe las operaciones básicas, aquí se verá la forma de manejarlas en MATLAB, en caso necesario el usuario deberá comprobar las operaciones y los resultados. Una primera operación es el producto punto o escalar de matrices, dadas dos matrices A y B el producto C se obtiene con la instrucción

C = dot(A.*B) como se muestra enseguida: » A = [2, 4, 6]; » B = [4, 6, 8]; » C = dot (A, B) C = 80 También se puede manejar a través de la orden » D = sum(A.*B) D = 80 Dadas las matrices x y y se puede obtener el producto vectorial de estas dos matrices como sigue: » x = [1, 2, 3;... 4, 5, 6;... 7, 8, 9] x = 1 2 3 4 5 6 7 8 9 » y = [2, 3, 4;... 5, 6, 7;... 3, 6, 9] y = 2 3 4 5 6 7 3 6 9 » z = x*y z = 21 33 45 51 78 105 81 123 165

Page 26: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

26

Cuando las matrices no son conformes para la multiplicación aparece un error: » h = A.*x ??? Error using ==> .* Matrix dimensions must agree. » h = A. Dependiendo del número de filas y de columnas el producto vectorial puede existir o no, por ejemplo: » k = A*y k = 42 66 90 » j = y*A ??? Error using ==> * Inner matrix dimensions must agree. Para elevar una matriz a una potencia, es decir, multiplicar una matriz por sí misma varias veces se tiene el operador ^. Por ejemplo: » A = [2, 4, 6;... 8, 3, 5;... 1, 2, 6] A = 2 4 6 8 3 5 1 2 6 » A^2 ans = 42 32 68 45 51 93 24 22 52 » A^4 ans = 4836 4472 9368 6417 6087 12639 3246 3034 6382 El producto de una matriz cuadrada A es postmultiplicada o premultiplicada por una matriz identidad I, conformable para la multiplicación, el producto A*I es el mismo que I*A: » D = eye(3) D = 1 0 0 0 1 0

Page 27: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

27

0 0 1 » A*D ans = 2 4 6 8 3 5 1 2 6 » D*A ans = 2 4 6 8 3 5 1 2 6 Se pueden sumar o restar dos matrices, siempre y cuando sean conformables para la suma o resta: » A = [2, 4, 6;... 8, 3, 5;... 1, 2, 6] A = 2 4 6 8 3 5 1 2 6 » B = [2, 3, 6; 2, 4, 8; 5, 7, 9] B = 2 3 6 2 4 8 5 7 9 » A + B ans = 4 7 12 10 7 13 6 9 15 » B - A ans = 0 -1 0 -6 1 3 4 5 3 Si t es una constante se puede multiplicar esa constante por una matriz, por ejemplo: » t = 5; » M= t*A M = 10 20 30 40 15 25

Page 28: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

28

5 10 30 O bien, puede postmultiplicar a la matriz: » N = A*t N = 10 20 30 40 15 25 5 10 30 El determinante es un escalar obtenido a partir de la matriz. MATLAB permite calcular el determinante de la matriz A con la orden det (A). A = 2 4 6 8 3 5 1 2 6 » det (A) ans = -78 En la transposición de matrices lo que se hace es cambiar las filas de una matriz A por columnas en la matriz transpuesta de A, es decir, una matriz A de filas y columnas (i, j) tiene una transpuesta representada por A’, de filas y columnas (j, i). En MATLAB la transpuesta de A es A’. A = 2 4 6 8 3 5 1 2 6 » A' ans = 2 8 1 4 3 2 6 5 6 Dada una matriz cuadrada X, la matriz inversa de X es aquella matriz tal que el producto de estas dos matrices es la matriz identidad Y. MATLAB calcula la inversa de X con la orden inv(X). » X = [2, 4; 5, 8] X = 2 4 5 8 » inv (X) ans = -2.0000 1.0000 1.2500 -0.5000 o bien:

Page 29: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

29

» F = inv(X) F = -2.0000 1.0000 1.2500 -0.5000 Una matriz identidad de dos por dos: » I = eye(2) I = 1 0 0 1 El producto de la matriz X por su inversa da la matriz identidad: » X*F ans = 1.0000 0 0.0000 1.0000 Obtenida la inversa de una matriz al premultiplicar o postmultiplicar a la matriz original de todas maneras se obtiene la matriz identidad: » F*X ans = 1.0000 0 0.0000 1.0000 Puede ser que una matriz esté mal condicionada, que sea una matriz singular y su inversa no existe, MATLAB exhibe un mensaje de error en este caso, al calcular la inversa de una matriz singular: » X = [2, 3, 4; 9, 8, 7; 2, 4 6] X = 2 3 4 9 8 7 2 4 6 » inv(X) Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 2.008416e-018 ans = 1.0e+016 * -0.9205 0.0920 0.5063 1.8410 -0.1841 -1.0125 -0.9205 0.0920 0.5063

Page 30: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

30

V SOLUCIÓN

DE SISTEMAS DE ECUACIONES LINEALES.

Page 31: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

31

Un sistema de ecuaciones lineales ayuda a representar y tratar muchos problemas de ingeniería, por lo que su solución ayuda a resolver estos problemas. Un ejemplo de sistema de ecuaciones lineales con dos incógnitas (X1 y X2) puede ser el siguiente:

4X1 + 6X2 = 20 5X1 - 3X2 = 4

puede ser planteado con MATLAB por medio de tres matrices, una matriz C de coeficientes, una matriz X de variables y una matriz R de resultados, con C = 4 6 5 - 3 X = X1 X2 R = 20 4 de tal manera que

CX = R Si se premultiplicamos ambos lados de la ecuación por la inversa de C, al multiplicar en el lado izquierdo la inversa de C por C, obtenemos la matriz identidad Y, que quedará multiplicando a la matriz de variables X, de la siguiente manera:

inv(C)*C*X = inv(C)*R. esto dará

I*X = inv(C)*R o

X = inv(C)*R Solucionando el sistema con MATLAB, las matrices C de coeficientes y de resultados R son: » C = [4, 6; 5, - 3] C = 4 6 5 - 3 » R = [20; 4]

Page 32: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

32

R = 20 4 Calculando la inversa de la matriz de coeficientes y llamándola matriz K: » K = inv(C) K = 0.0714 0.1429 0.1190 - 0.0952 » X = K * R X = 2 2 Que es la solución del sistema, es decir X1 = 2 y X2 = 2. La comprobación de esta solución también se da en MATLAB verificando la multiplicación de las matrices. » C*X ans = 20 4 que es la matriz de resultados. PROBLEMAS Solucione los siguientes sistemas y compruebe su solución. 3X1 - X2 = 21 2X1 + X2 = 4

3X1 + 5X2 = 11 2X1 - X2 = 16

8X1 + 3X2 = 13 3X1 + 2X2 = 11

X1 - 9X2 = 0 X1/ 3 -2X2 = 1/3

5T - 2R = 17 8T + 5R = 19 5M - 6P = 8

3M + 6P = 6

VI PROGRAMACION

Page 33: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

33

MOSTRAR DATOS: FUNCIONES disp() y fprintf(). Si se declara la variable tempc (temperatura en grados centígrados) con valor de 50, esto se hará de la manera ya tratada: tempc = 50 MATLAB responde así: tempc = 50 luego para mostrar este dato se usa la función disp(): » disp(tempc) 50 si se desea agregar texto se puede utilizar la misma función disp(), obsérvese que ahora, para mostrar texto, se usan comillas simples enmarcando el texto: » disp(tempc); disp('GRADOS CENTIGRADOS') MATLAB responde: 50 GRADOS CENTIGRADOS Si declaramos la matriz m de 3x3 con los siguientes elementos: » m=[1,2,3;4,5,6;7,8,9]; MATLAB no despliega la matriz “m” ya que fueron escritos el punto y coma al final de la instrucción, a continuación escribimos la función disp() dos veces, una para escribir texto y otra para desplegar la matriz “m”: disp('MATRIZ de 3X3'), disp(m) MATRIZ de 3X3 1 2 3 4 5 6 7 8 9

Page 34: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

34

La función fprintf() también despliega información en la pantalla. La sintaxis de la función fprintf() es la siguiente: fprintf(formato, variable) es conveniente aclarar que los formatos de número para ser utilizados con esta función son los siguientes: %e Para desplegar cantidades en notación exponencial.

%f Para cantidades en notación de punto flotante.

%g Se desplegarán valores en la forma $e o $f, la que sea más corta.

Desplegando el valor de la variable tempc con estos formatos, queda así: » fprintf('LA TEMPRATURA ES %e ', tempc) LA TEMPRATURA ES 5.000000e+001 » » fprintf('LA TEMPRATURA ES %f ', tempc) LA TEMPRATURA ES 50.000000 » » fprintf('LA TEMPRATURA ES %g ', tempc) LA TEMPRATURA ES 50 » » fprintf('LA TEMPRATURA ES %g \n ', tempc) LA TEMPRATURA ES 50 » » fprintf('LA TEMPRATURA ES %g ', tempc) LA TEMPRATURA ES 50 » Observe que al agregar el carácter \n, MATLAB envía el cursor al siguiente renglón de la pantalla.

VII MAS GRAFICACIÓN

Page 35: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

35

Con el comando plot (x, y) se pueden graficar multitud de funciones que sean de interés para el usuario. A continuación se muestran varios ejemplos de aplicación de esta función de graficación de MATLAB. En cada caso se dan valores a una variable independiente, que casi siempre será “x”, se define la función, llamada “y” y luego se procede a graficar. Para el mismo caso se presentan varias opciones o modificaciones en la presentación de la gráfica, las cuales pueden ser gráfica con o sin título, con o sin cuadrícula de fondo, con o sin título en los ejes, etc. Se recomienda observar con atención el código que se muestra en cada caso. Graficando con valores de x desde 0 hasta 10, con intervalos de 0.1: > x = [0:0.1:10]; >> y = x.^2; >> plot(x,y) >>

Ampliando el rango ahora desde -10 hasta 10: >> x = [-10:0.1:10]; >> y = x.^2; >> plot(x,y) >>

Page 36: Curso de Matlab _r

ACADEMIA DE COMPUTACION NOTAS SOBRE MATLAB

36

Etiquetando los ejes y visualizando una cuadrícula: >> x = [-10:0.1:10] ; >> plot(x,y), title('FUNCION CUADRATICA'), xlabel('VALORES DE X'), ylabel('VALORES DE Y'), grid

Page 37: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 37

>> x = [-10:0.1:10] ; >> y = 8*x.^2 + x.*14 – 2 ; >> plot (x,y) >>

A continuación se solicitaran por medio de la función input() los valores de la variable “x”, para que el usuario especifique de manera interactiva con MATLAB estos valores, no se escribe punto y coma después de esta instrucción para permitir que MATLAB despliegue todos los valores de “x”, desde -10 hasta 10, con incrementos de 0.1. >> x=input('DAME LOS VALORES DE x') DAME LOS VALORES DE x[-10:0.1:10] x = Columns 1 through 7 -10.0000 -9.9000 -9.8000 -9.7000 -9.6000 -9.5000 -9.4000 Columns 8 through 14 -9.3000 -9.2000 -9.1000 -9.0000 -8.9000 -8.8000 -8.7000 Columns 15 through 21 -8.6000 -8.5000 -8.4000 -8.3000 -8.2000 -8.1000 -8.0000 Columns 22 through 28 -7.9000 -7.8000 -7.7000 -7.6000 -7.5000 -7.4000 -7.3000 Columns 29 through 35 -7.2000 -7.1000 -7.0000 -6.9000 -6.8000 -6.7000 -6.6000 Columns 36 through 42 -6.5000 -6.4000 -6.3000 -6.2000 -6.1000 -6.0000 -5.9000 Columns 43 through 49 -5.8000 -5.7000 -5.6000 -5.5000 -5.4000 -5.3000 -5.2000 Columns 50 through 56 -5.1000 -5.0000 -4.9000 -4.8000 -4.7000 -4.6000 -4.5000 Columns 57 through 63 -4.4000 -4.3000 -4.2000 -4.1000 -4.0000 -3.9000 -3.8000 Columns 64 through 70 -3.7000 -3.6000 -3.5000 -3.4000 -3.3000 -3.2000 -3.1000 Columns 71 through 77 -3.0000 -2.9000 -2.8000 -2.7000 -2.6000 -2.5000 -2.4000 Columns 78 through 84

Page 38: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 38

-2.3000 -2.2000 -2.1000 -2.0000 -1.9000 -1.8000 -1.7000 Columns 85 through 91 -1.6000 -1.5000 -1.4000 -1.3000 -1.2000 -1.1000 -1.0000 Columns 92 through 98 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 Columns 99 through 105 -0.2000 -0.1000 0 0.1000 0.2000 0.3000 0.4000 Columns 106 through 112 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000 1.1000 Columns 113 through 119 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 Columns 120 through 126 1.9000 2.0000 2.1000 2.2000 2.3000 2.4000 2.5000 Columns 127 through 133 2.6000 2.7000 2.8000 2.9000 3.0000 3.1000 3.2000 Columns 134 through 140 3.3000 3.4000 3.5000 3.6000 3.7000 3.8000 3.9000 Columns 141 through 147 4.0000 4.1000 4.2000 4.3000 4.4000 4.5000 4.6000 Columns 148 through 154 4.7000 4.8000 4.9000 5.0000 5.1000 5.2000 5.3000 Columns 155 through 161 5.4000 5.5000 5.6000 5.7000 5.8000 5.9000 6.0000 Columns 162 through 168 6.1000 6.2000 6.3000 6.4000 6.5000 6.6000 6.7000 Columns 169 through 175 6.8000 6.9000 7.0000 7.1000 7.2000 7.3000 7.4000 Columns 176 through 182 7.5000 7.6000 7.7000 7.8000 7.9000 8.0000 8.1000 Columns 183 through 189 8.2000 8.3000 8.4000 8.5000 8.6000 8.7000 8.8000 Columns 190 through 196 8.9000 9.0000 9.1000 9.2000 9.3000 9.4000 9.5000 Columns 197 through 201 9.6000 9.7000 9.8000 9.9000 10.0000 >> y = 8*x.^2 + x.*14 - 2; >> plot(x,y), grid >>

Page 39: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 39

Observe que en la instrucción >> y = 8*x.^2 + x.*14 - 2; si se escribe el punto y coma para que MATLAB no despliegue todos los valores calculados para “y”. Después de la instrucción plot(x,y) escribimos la instrucción grid, para establecer la cuadrícula de la gráfica. Si no se requiere que se muestren todos los valores de “x”, se escribe punto y coma después de la instrucción >> x=input('DAME LOS VALORES DE x'). Las siguientes instrucciones permiten manejar una gráfica semilogarítmica, en el eje “X”.

Las siguientes instrucciones permiten crear una gráfica logarítmica, observe que de acuerdo a esta condición, se suprimen los valores negativos para “x” y para “y”. >> x=input('DAME LOS VALORES DE x'); DAME LOS VALORES DE x[-10:0.1:10] >> y=8*x.^2 + x.*14 - 2; >> loglog(x,y) Warning: Negative data ignored.

Page 40: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 40

MATLAB se puede usar en múltiples aplicaciones, por ejemplo para calcular la fuerza de atracción o repulsión entre dos cargas eléctricas. Se dan dos cargas Q1 y Q2, ubicadas en el espacio, en las coordenadas Q1(0,0,0) de 50 x10-6 Coulombs y Q2(8,8,8) de 200x10-6 Coulombs. Se pide determinar la fuerza de repulsión entre las dos cargas de acuerdo a la Ley de Coulomb, cuya expresión matemática es:

Donde εo es una constante de valor 8.85x10-12, “D” es la distancia que separa a las cargas, calculada con la expresión El código en MATLAB sería el siguiente: >> Q1=0.000050 Q1 = 5.0000e-005 >> Q2=0.000100 Q2 = 1.0000e-004 >> eo=8.85e-12 eo = 8.8500e-012 >> x1=0, y1=0, z1=0

2

1 1 24 o

Q QFDπε

=

( ) ( ) ( )2 2 22 1 2 1 2 1D x x y y z z= − + − + −

Page 41: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 41

x1 = 0 y1 = 0 z1 = 0 >> x2=8, y2=8, z2=8; x2 = 8 y2 = 8 >> D=sqrt((x2-x1)^2 + (y2-y1)^2 + (z2-z1)^2) D = 13.8564 >> F = (1/(4*pi*eo))*Q1*Q2/(D^2) F = 0.2342 Que pasaría si la distancia entre las cargas variara desde 1 hasta 8 metros y graficamos luego el comportamiento de la fuerza en función de la distancia. El código es: >> D1 = [1:0.1:8]; >> F = (1/(4*pi*eo))*Q1.*Q2./(D1.^2); >> plot (D1,F) >>

Vemos que la fuerza decrece conforme la distancia entre las cargas aumenta.

Page 42: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 42

ENTRADA SALIDA DE DATOS Se pueden introducir datos directamente o a través de una orden de petición de datos llamada input(´´), esta instrucción espera que el usuario introduzca los datos pedidos, luego los lee y los almacena en la variable especificada; como en los siguientes ejemplos: Para mostrar datos en pantalla se puede teclear el nombre de la variable y esto mostrará el valor: Para mostrar texto y valores se hace uso de la función disp(variable) o disk(´texto´) y la función fprintf(´´). Es conveniente señalar el uso de ciertos símbolos (especificadores) en MATLAB para representar con algún formato deseado los valores numéricos, por ejemplo

%f para mostrar valores con decimales o de punto fijo. %g los valores usarán %e o %f lo que sea más corto para mostrar

los valores. %e para mostrar valores con notación exponencial. \n termina un renglón y empieza el siguiente.

General Purpose Commands Managing Commands and Functions

Addpath Add directories to MATLAB's search path Doc Display HTML documentation in Help browser Docopt Display location of help file directory for UNIX platforms Genpath Generate a path string Help Display M-file help for MATLAB functions in the

Command Window Helpbrowser Display Help browser for access to all MathWorks online

help Helpdesk Display the Help browser Helpwin Display M-file help and provide access to M-file help for

all functions Lasterr Last error message Lastwarn Last warning message License License Lookfor Search for specified keyword in all help entries Partialpath Partial pathname Path Control MATLAB's directory search path pathtool Open the GUI for viewing and modifying MATLAB's path profile Start the M-file profiler, a utility for debugging and

optimizing code

Page 43: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 43

profreport Generate a profile report rehash Refresh function and file system caches rmpath Remove directories from MATLAB's search path support Open MathWorks Technical Support Web Page type List file ver Display version information for MATLAB, Simulink, and

toolboxes version Get MATLAB version number web Point Help browser or Web browser at file or Web site what List MATLAB-specific files in current directory whatsnew Display README files for MATLAB and toolboxes which Locate functions and files

Managing Variables and the Workspace

clear Remove items from the workspace disp Display text or array length Length of vector load Retrieve variables from disk memory Help for memory limitations mlock Prevent M-file clearing munlock Allow M-file clearing openvar Open workspace variable in Array Editor, for graphical

editing pack Consolidate workspace memory save Save workspace variables on disk saveas Save figure or model using specified format size Array dimensions who, whos List the variables in the workspace workspace Display the Workspace Browser, a GUI for managing the

workspace Controlling the Command Window

clc Clear Command Window echo Echo M-files during execution format Control the display format for output home Move cursor to upper left corner of Command Window more Control paged output for the Command Window

Working with Files and the Operating Environment

beep Produce a beep sound cd Change working directory checkin Check file into source control system checkout Check file out of source control system cmopts Get name of source control system, and PVCS project

filename copyfile Copy file customverctrl

Page 44: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 44

Allow custom source control system

Delete Delete files or graphics objects Diary Save session to a disk file Dir Display a directory listing Dos Execute a DOS command and return the result Edit Edit an M-file fileparts Get filename parts filebrowser Display Current Directory browser, for viewing files Fullfile Build full filename from parts Info Display contact information or toolbox Readme files inmem Functions in memory Ls List directory on UNIX matlabroot Get root directory of MATLAB installation Mkdir Make new directory Open Open files based on extension Pwd Display current directory tempdir Return the name of the system's temporary directory tempname Unique name for temporary file undocheckout Undo previous checkout from source control system Unix Execute a UNIX command and return the result ! Execute operating system command

Starting and Quitting MATLAB

finish MATLAB termination M-file exit Terminate MATLAB matlab Start MATLAB (UNIX systems only) matlabrc MATLAB startup M-file quit Terminate MATLAB startup MATLAB startup M-file

Operators and Special Characters: + Plus - Minus * Matrix multiplication .* Array multiplication ^ Matrix power .^ Array power kron Kronecker tensor product \ Backslash or left division / Slash or right division ./ and .\ Array division, right and

left : Colon ( ) Parentheses [ ] Brackets {} Curly braces . Decimal point ... Continuation , Comma ; Semicolon % Comment ! Exclamation point ' Transpose and quote .' Nonconjugated transpose = Assignment == Equality < > Relational operators & Logical and | Logical or ~ Logical not xor Logical exclusive or

Page 45: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 45

General Purpose Commands Logical Functions Elementary Math Functions

Abs Absolute value and complex magnitude acos,acosh Inverse cosine and inverse hyperbolic cosine acot, acoth Inverse cotangent and inverse hyperbolic cotangent acsc,acsch Inverse cosecant and inverse hyperbolic cosecant Angle Phase angle asec,asech Inverse secant and inverse hyperbolic secant asin, asinh Inverse sine and inverse hyperbolic sine atan, atanh

Inverse tangent and inverse hyperbolic tangent

atan2 Four-quadrant inverse tangent Ceil Round toward infinity Complex Construct complex data from real and imaginary

components Conj Complex conjugate cos, cosh Cosine and hyperbolic cosine cot, coth Cotangent and hyperbolic cotangent csc, csch Cosecant and hyperbolic cosecant exp Exponential fix Round towards zero floor Round towards minus infinity gcd Greatest common divisor imag Imaginary part of a complex number lcm Least common multiple log Natural logarithm log2 Base 2 logarithm and dissect floating-point numbers

into exponent and mantissa log10 Common (base 10) logarithm mod Modulus (signed remainder after division) nchoosek Binomial coefficient or all combinations real Real part of complex number rem Remainder after division round Round to nearest integer sec, sech Secant and hyperbolic secant sign Signum function sin, sinh Sine and hyperbolic sine sqrt Square root tan, tanh Tangent and hyperbolic tangent

Page 46: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 46

VIII ANÁLISIS DE DATOS

Se declara la variable “temp” que contiene los datos de temperatura diaria de tres ciudades, tomadas durante un mes: Temp c = 21 33 22 32 23 33 21 33 22 34 23 32 22 32 21 33 22 35 20 35 20 36 21 36 22 34 21 33 21 33 19 35 18 36 19 33 20 35 18 34 18 32 15 32 18 33 19 33 15 34 19 35 19 34 17 31 18 30 16 30

Se puede obtener información (promedio de temperaturas: mean(), temperatura máxima: max(), temperatura mínima: min(), desviación estándar: std(), calcular la diferencia de temperatura entre dos datos consecutivos: dic(), a partir de estos datos como sigue:

Page 47: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 47

» temp_media = mean(c) temp_media = 19.6667 33.3667 » temp_media_total = mean(temp_media) temp_media_total = 26.5167 » temp_max = max(c) temp_max = 23 36 » temp_min = min(c) temp_min = 15 30 » desv_std_temp = std(c) desv_std_temp = 2.2024 1.6078 » cambio_diario_temp = diff(c) cambio_diario_temp = 1 -1 1 1 -2 0 1 1 1 -2 -1 0 -1 1 1 2 -2 0 0 1 1 0 1 -2 -1 -1 0 0 -2 2 -1 1 1 -3 1 2 -2 -1 0 -2 -3 0 3 1 1 0 -4 1 4 1 0 -1 -2 -3 1 -1 -2 0 »

Page 48: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 48

IX MÁS FUNCIONES EN MATLAB

Es posible utilizar MATLAB para realizar cálculos con polinomios, para esto existen las funciones siguientes:

poly(a) Polinomio característico de la matriz a.

roots(b) Raíces del polinomio a.

polyval(pol, x) Evalúa el polinomio a para el valor particular x. si a es un vector, este se evalúa en cada elemento en esa x.

conv(a,b) Producto de los polinomios a y b.

deconv(a,b) = [a,b] División de los polinomios a y b. En c se devuelve el cociente y en r el residuo.

residue(a,b) Descompone el cociente entre a y b en suma de fracciones simples.

polyder(a) Deriva el polinomio a.

polyder(a,b) Deriva el producto de los polinomios a y b. Los siguientes ejemplos ilustran el uso de estas funciones y los resultados producidos. Multiplicar los polinomios pol1 = x2 – 2x + 4 por el polinomio pol2 = x3 + 3x – 4, el resultado se muestra en la variable pol3 con la expresión pol3 = conv(pol1,pol2): » pol1 = [1 -2 4] Se define el primer polinomio a través de sus coeficientes. pol1 = 1 -2 4 » pol2 = [1 0 3 -4] Se da el otro polinomio. pol2 = 1 0 3 -4 » pol3 = conv(pol1,pol2) Se define el producto de los dos polinomios. pol3 = 1 -2 7 -10 20 -16 El resultado tiene la forma: c = x5 – 2x4 – 7x3 – 10x2 + 20x - 16 Se calcula el producto de a = x2 + 1 por b = x2 – 1, dándose el resultado en c:

Page 49: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 49

» a = [1 0 1] a = 1 0 1 » b = [1 0 -1] b = 1 0 -1 » c = conv(a,b) c = 1 0 0 0 -1 El resultado es: c = x4 - 1 De la división de d = x2 -1 entre e = x – 1 » d = [1 0 -1]; » e = [1 -1]; » f = deconv(d,e) Se define la división de los dos polinomios. f = 1 1 Son los coeficientes del polinomio que resulta. El resultado es x + 1 Calcular las raíces del polinomio clásico g = x2 + 2x +1: » g = [1 2 1]; Se da el polinomio a través de sus coeficientes. » roots(g) ans = -1 -1 Raíces del polinomio h = x3 – 1: » h = [1 0 0 -1]; » roots(h) ans = -0.5000 + 0.8660i -0.5000 - 0.8660i 1.0000 El cual contiene dos raíces complejas y una raíz real: X1 = -0.5000 + 0.8660i, x2 = -0.5000 - 0.8660i y x3 = 1.0000

Page 50: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 50

Calcular ahora las raíces del polinomio k = 4x2 + 16x +2: » k = [4 16 2]; » roots(k) ans = -3.8708 -0.1292 Calcular las raíces del polinomio m = 4x5 + 3x4 + 2x3 + 6x2+ 5x +2: » m = [4 3 2 6 5 2]; » roots(m) ans = 0.5581 + 1.0166i 0.5581 - 1.0166i -1.0000 -0.4331 + 0.4292i -0.4331 - 0.4292i Si efectuamos el producto de los siguientes factores (x + 2)(x - 1)(x + 4) obtenemos el resultado x3 + 3x2 -6x – 8. podemos extraer las raíces del polinomio en MATLAB para comprobar que éstas son x = - 2, x = 1 y x = - 4. » f = [1 3 -6 -8] Se dan los coeficientes del polinomio f. f = 1 3 -6 -8 » g = roots(f) Se calculan y asignan a g las raíces del polinomio f. g = -4.0000 2.0000 -1.0000 Dadas las raíces de un polinomio es possible recuperar el polinomio (coeficientes) con MATLAB a través de la orden poly(). » h = poly(g) Se recupera el polinomio a partir de las raíces h = 1.0000 3.0000 -6.0000 -8.0000 Quitando decimales este es: x3 + 3x2 -6x – 8. » m = [2 5 3 8 5 9] Se da otro polinomio. m = 2 5 3 8 5 9 » n = roots(m) El cálculo muestra que las raíces son complejas (parte n = real e imaginaria). -2.4962 0.5482 + 1.0829i 0.5482 - 1.0829i -0.5501 + 0.9597i -0.5501 - 0.9597i

Page 51: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 51

» q = [1 -13 0 24 110] Otro polinomio más. q = 1 -13 0 24 110 » r = roots(q) Se calculan las raíces del polinomio “q”, r = encontrándose raíces complejas. 12.8011 2.5372 -1.1692 + 1.4212i -1.1692 - 1.4212i » s = poly(r) Se recuperan los coeficientes del polinomio “q”. s = 1.0000 -13.0000 0 24.0000 110.0000 Si sólo se desea tener la parte real de las raíces complejas se usa el comando real(): » s = real(r) Con real() se muestra sólo la parte real de las raíces. s = 12.8011 2.5372 -1.1692 -1.1692 La expresión polyval(a,x) evalúa el polinomio a para un valor particular de la variable “x”. en los siguientes ejemplos se evalúan los polinomios “h” y “m” para valores de x = 1, x = 4 y x = 1 » h = [1 0 0 -1]; » polyval(h,1) ans = 0 » h = [1 0 0 -1]; » polyval(h,4) ans = 63 » m = [4 3 2 6 5 2]; » polyval(m,1) ans = 22 MATLAB también permite calcular derivadas e integrales de expresiones algebraicas a través de la expresión polyder(). Calcular la derivada de las expresiones siguientes:

Page 52: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 52

h = x3 – 1 » h = [1 0 0 -1] ; » polyder(h) ans = 3 0 0 La derivada es 3x2 Con la expresión m = 4x5 + 3x4 + 2x3 + 6x2+ 5x +2, se calcula en MATLAB: » m = [4 3 2 6 5 2] m = 4 3 2 6 5 2 » polyder(m) ans = 20 12 6 12 5 La derivada de la expresión “m” es de la forma: 20x4 + 12x3 + 6x2 + 12x + 5 Las siguientes expresiones calculan el residuo y la división de los polinomios mostrados: » h = [1 0 0 -1]; Se definen los polinomios “h” y “n” a dividir. » n=[1 1]; » residue(h,n) Se calcula el residuo de la división. ans = -2 » deconv(h,n) Se calcula la división de los polinomios “h” y “n”. ans = 1 -1 1 El cociente tiene la forma x2 –x +1. Efectúe la

operación. Cálculo del cociente y el residuo en una sola operación. » [q,r] = deconv(h,n) Con esta expresión MATLAB calcula la división, q = mostrando por separado el cociente (q) y el

residuo(r). 1 -1 1 r = 0 0 0 -2 Es posible evaluar un polinomio en un rango amplio de valores de la variable dependiente. Por ejemplo, evaluar la función cuadrática f(x) = x2, que representa una parábola para los valores desde -2 hasta +2, con intervalos de 1, el código en MATLAB es el que se muestra:

Page 53: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 53

» x=[-2 -1 0 1 2] x = -2 -1 0 1 2 » f=[1 0 0] f = 1 0 0 » g=polyval(f,x) g = 4 1 0 1 4 » plot(x,g), title('FUNCION CUADRATICA'), xlabel('X'), ylabel('FUNCION'), GRID

Si se desea dar más valores a “x” para tener una curva más suave, basta con definir un arreglo para “x” de la siguiente manera (no se muestran los valores individuales por razones de espacio), usando intervalos de 0.1 desde -2 hasta +2: » x = (-2 : 0.1 : 2); » f=[1 0 0]; » g=polyval(f,x); » plot(x,g), title('FUNCION CUADRATICA'), xlabel('X'), ylabel('FUNCION'), GRID MATLAB provee el comando linspace(m,n) para declarar los valores para la variable a usar, en particular asigna 100 espacios o valores entre los límites (m,n) del intervalo dado, si la sintaxis de linspace() es linspace(m, n, a), linspace crea “a” puntos entre los límites del intervalo “m” y “n”. el código ilustra esta acción, se omite la gráfica. » x = linspace(-2,2); » f = [1 0 0]; » g = polyval(f,x); » plot(x,g), title('FUNCION CUADRATICA'), xlabel('X'), ylabel('FUNCION'), grid

Page 54: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 54

Page 55: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 55

X

MATEMÁTICA SIMBÓLICA MATLAB contiene una toolbox de Matemática Simbólica, la cual permite manipular expresiones matemáticas y manejarlas simbólicamente (sin valores). Este conjunto de funciones permite sumar, elevar al cuadrado, diferenciar, integrar, resolver ecuaciones algebraicas y diferenciales, etc. Para conocer el contenido de esta toolbox se teclea la siguiente orden, se muestran solo algunas de las posibilidades: » help symbolic Symbolic Math Toolbox. Version 2.1 (R11) 11-Sep-1998 New Features. Readme - Overview of the new features in/changes made to the Symbolic and Extended Symbolic Math Toolboxes. Calculus.

diff Differentiate. int Integrate. limit Limit. taylor Taylor series. jacobian Jacobian matrix. symsum Summation of series.

Linear Algebra.

diag Create or extract diagonals. triu Upper triangle. tril Lower triangle. inv Matrix inverse. det Determinant. rank Rank. rref Reduced row echelon form. null Basis for null space. colspace Basis for column space. eig Eigenvalues and eigenvectors. svd Singular values and singular vectors. jordan Jordan canonical (normal) form. poly Characteristic polynomial. expm Matrix exponential.

Simplification.

simplify Simplify. expand Expand. factor Factor. collect Collect. simple Search for shortest form.

Page 56: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 56

numden Numerator and denominator. horner Nested polynomial representation. subexpr Rewrite in terms of subexpressions. subs Symbolic substitution.

Solution of Equations.

solve Symbolic solution of algebraic equations. dsolve Symbolic solution of differential equations. finverse Functional inverse. compose Functional composition.

Integral Transforms.

fourier Fourier transform. laplace Laplace transform. ztrans Z transform. ifourier Inverse Fourier transform. ilaplace Inverse Laplace transform. iztrans Inverse Z transform.

Demonstrations.

symintro Introduction to the Symbolic Toolbox. symcalcdemo

Calculus demonstration.

symlindemo Demonstrate symbolic linear algebra. symvpademo Demonstrate variable precision arithmetic symrotdemo Study plane rotations. symeqndemo Demonstrate symbolic equation solving.

A continuación se muestran algunos ejemplos de uso de las funciones de esta toolboox. Dadas las funciones :

78)(5324)(

−=−+=

xxgxxxf

encontrar con MATLAB la suma, resta, producto, división y elevar a una potencia. Primero se teclean en MATLAB las funciones, teniendo cuidado de encerrar entre apostrofes la función, para que MATLAB la interprete como operación simbólica, verifique en el cuaderno el resultado de las operaciones: » f = 4*x^2+3*x-5 ??? Undefined function or variable 'x'. Indica error al teclear » f='4*x^2+3*x-5' f = 4*x^2+3*x-5 » g='8*x-7' g = 8*x-7

Page 57: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 57

Sumar: » symadd(f,g) ans = 4*x^2+11*x-12 Restar : » symsub(f,g) ans = 4*x^2-5*x+2 » symsub(g,f) ans = 5*x-2-4*x^2 Multiplicar : » symmul(f,g) ans = (4*x^2+3*x-5)*(8*x-7) Dividir : » symdiv(f,g) ans = (4*x^2+3*x-5)/(8*x-7) Elevar la función f(x) a la sexta potencia: » sympow(f,'6') ans = (4*x^2+3*x-5)^6 Observe como es la sintaxis en MATLAB para realizar la suma de f(x) y g(x) y luego restar 3: » sym(f,'+'g,'-',3) ??? sym(f,'+'g | Improper function reference. A "," or ")" is expected. » sym(f,'+',g,'-',3) ??? Error using ==> sym Too many input arguments. » symop(f,'+',g,'-',3) ans = 4*x^2+11*x-15

Page 58: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 58

Si definimos las funciones

2)()sin()(

xxbxxa

=

=

)cos()(1

)(

hxdx

xxc

=+

=

En MATLAB las expresiones correspondientes son: syms x y h; Se declaran las variables x, y y h como simbólicas. » a=sin(x) Se declaran las funciones a, b, c y d. a = sin(x) » b=x^2 b = x^2 » c=x/(x+1) c = x/(x+1) » d=cos(h) d = cos(h) » compose(b,c) Se pide la ejecución de la función composición. ans = x^2/(x+1)^2 » compose(a,b) ans = sin(x^2) » compose(b,a) ans = sin(x)^2 » compose(b,d) ans = cos(h)^2 » compose(c,d) ans = cos(h)/(cos(h)+1) » compose(c,a) ans = sin(x)/(sin(x)+1)

Page 59: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 59

La derivación e integración se llevan a cabo en MATLAB con los comandos diff() e int(). Empleando estos comandos para las mismas funciones a, b, c y d: » diff(b) ans = 2*x La derivada de b = x2 es 2x. » diff(a) ans = cos(x) La derivada del seno(x) es el coseno(x). » diff(b,2) ans = 2 La segunda derivada de b = x2. » diff(b,3) ans = 0 Tercer derivada de la función b. » diff(a,2) ans = -sin(x) » diff(a,'h') ans = 0 Derivada de la función a = seno(x) con respecto a la variable “h”. » diff(d) ans = -sin(h) » int(a) ans = -cos(x) » int(b) ans =

1/3*x^3 La integral de x2 es 3

3x

» z=diff(c) z =

1/(x+1)-x/(x+1)^2 La derivada de 1+

=x

xc es en MATLAB 2)1(11

+−

+ xx

x

Este resultado se puede simplificar con la siguiente expresión, en la cual la derivada de la función “c” se ha asignado a la variable “m”, usándose esta luego como argumento del comando simplify().

Page 60: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 60

m=diff(c) m = 1/(x+1)-x/(x+1)^2 » simplify(m) ans = 1/(x+1)^2 Expresión

simplificada de la derivada de la función “c”.

Page 61: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 61

XI FUNCIONES CON MATLAB

La función sqrt(x) obtiene la raíz cuadrada de el valor de la variable “x”. Se puede tener los siguientes ejemplos: sqrt (9) ans = 3 » y = sqrt (144) y = 12 » a = y + sqrt (2) a = 13.4142 » g = sqrt (y) g = 3.4641 » x = [ 2 4 9 ; 100 121 144 ; 1 2 3 ] x = 2 4 9 100 121 144 1 2 3 » z = sqrt (x) z = 1.4142 2.0000 3.0000 10.0000 11.0000 12.0000 1.0000 1.4142 1.7321 Resolver una ecuación de segundo grado por medio de la fórmula general, para los siguientes valores de los parámetros a, b y c: » a = 5 ; b = 12 ; c = 2 ; » x1 = ( -1*b + sqrt ( b*b - 4*a*c ) ) / ( 2*a ); » x2 = ( -1*b – sqrt ( b*b - 4*a*c ) ) / ( 2*a ); » x1 x1 = -0.1802

Page 62: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 62

» x2 x2 = -2.2198 » La ecuación debe ser 5x2 + 12x + 2 = 0. Si sustituimos los valores de x1 y de x2 en la ecuación, MATLAB nos da el siguiente resultado que comprueba las soluciones: » 5*x1^2 + 12*x1 + 2 ans = -4.4409e-016 que prácticamente es cero. » 5*x2^2 + 12*x2 + 2 ans = 0 Para encontrar la hipotenusa de un triángulo rectángulo, de catetos 3 y 4: h = sqrt ( 3^2 + 4^2 ) h = 5 Para diferentes parejas (a, b) de catetos, introducidos por medio de los vectores “a” y “b”, calculamos “h” de nuevo para estos valores: » a = [ 3 ; 6 ; 9 ; 12 ] ; » b = [ 4 ; 8 ; 12 ; 16 ] ; » h = sqrt ( a.^2 + b.^2 ) h = 5 10 15 20 Se puede graficar la función f = x para valores de x mayores de cero. » x = 0:1:100; » f = sqrt(x); » plot (x, f, ‘k’), xlabel ('VALORES DE X'), ylabel ('RAIZ DE X'), grid » Obteniéndose el siguiente gráfico con MATLAB:

Page 63: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 63

PROBLEMAS:

• Calcule la distancia entre dos puntos P1(2,8) y P2(7,13). • Calcule la distancia en el espacio entre los puntos P1(2,8, 5), P2(7,13,4) y

P3(1,2,1). • Calcule el módulo de un vector fuerza definido por la expresión F = 3x + 4y. • Resuelva las siguientes ecuaciones cuadráticas, además grafíquelas:

o 5x2 + 12x + 2 = 0

o x2 - 4x - 5 = 0

o x2 - 8x + 16 = 0

o 9x2 - 2 = 5

o x2/5 = x/15

o Encontrar un número disminuido en tres veces ese número es 18. o La longitud de un lote rectangular es 2 metros más que su ancho, encontrar

el largo y ancho del lote si su área es 80 m2. o Encontrar la posición de un objeto que viaja en caída libre, donde la

ecuación que describe su movimiento es s = -32t +9t + 5, para los siguientes tiempos t = (0, 1, 2, 3, 4, 5) segundos, grafíque este movimiento.

La función seno del ángulo también es utilizada en MATLAB para la solución de problemas. Como sabemos la función seno describe la relación entre la longitud del cateto opuesto y la longitud de la hipotenusa del triángulo. Esta importante relación también puede ser graficada, obteniéndose el siguiente trazo en MATLAB con la instrucción correspondiente. Se traza la función para una ángulo que varía entre 0 y 360°, con variaciones de 30°, recordando que los ángulos

h

op

Page 64: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 64

en MATLAB se miden en radianes el código sería el que se muestra: » x = [0:0.1*pi:2*pi]; » y = sin(x); » plot (x, y, 'k'), title('FUNCION SENOIDAL'), XLABEL('ANGULO'), ylabel('SENO'), grid » La relación para la conversión grados-radianes es:

π radianes = 180° El código anterior produce la gráfica que se muestra:

Si graficamos la misma función senoidal pero desplazada (desfasada) 45° (pi/4 radianes), MATLAB nos muestra lo siguiente: » x=[0:0.1*pi:2*pi]; » y=sin(x+ pi/4); » plot(x,y,'k'), title('FUNCION SENOIDAL'), XLABEL('ANGULO'), ylabel('SENO'), grid

Page 65: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 65

La identidad trigonométrica sen2A + cos2A = 1 se cumple, como identidad, para todos los valores del ángulo “A”, esto lo podemos comprobar dando diversos valores al ángulo y comprobamos por sustitución en MATLAB: » clear all » x = [0 : 0.1*pi : 2]; » y = sin(x); » z = cos(x); » a = power (y, 2) + power (z, 2) a = 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 » La mayor parte de las funciones en MATLAB aceptan argumentos en forma de vectores o matrices, por ejemplo: » x=[1 2 3; 4 5 6] x = 1 2 3 4 5 6 » y=sin(x) y = 0.8415 0.9093 0.1411 -0.7568 -0.9589 -0.2794

Page 66: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 66

La función “power (a, b)” denota una potencia, eleva el valor de la cantidad “a” a la potencia indicada por el valor de “b”. En este caso la variable “x” toma valores, en radianes, de 0 a 2 en intervalos de 0.1*pi. Los valores de la función seno y coseno de “x” se asignan a las variables “y” y “z”, a continuación se define la variable “a” como la suma de los cuadrados del seno y del coseno, como lo requiere la identidad a probar. Teclee el mismo código para valores negativos del ángulo Haciendo uso de la ley de senos y de la ley de cosenos se pueden resolver problemas. Estas leyes expresan lo siguiente

2bccosAcbac

senCb

senBa

senA

222 −+=

==

Encontrar los ángulos y lados que faltan del siguiente triángulo: a = 15 B = 35° C = 135° b = 18 c = A = El código en MATLAB, usando la función sqrt() (raíz cuadrada), para encontrar el lado “c” es: » clear all » whos » a=15 ; » b=18 ; » c = sqrt(a^2 + b^2 - 2*a*b*cos(3*pi/4)) c = 30.5096 » La función exponencial en base “e” es muy importante en matemáticas, donde el valor de “e” es » format long » exp(1) ans = 2.71828182845905

Page 67: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 67

e con cuatro decimales es: » format short » exp(1) ans = 2.7183 » Graficando el comportamiento de la función exponencial f(x) ex , en base “e”, con valores de “x” de - hasta +5, con el código MATLAB es: » x=(-3 : 0.1: 5) x = Columns 1 through 7 -3.0000 -2.9000 -2.8000 -2.7000 -2.6000 -2.5000 -2.4000 Columns 8 through 14 -2.3000 -2.2000 -2.1000 -2.0000 -1.9000 -1.8000 -1.7000 Columns 15 through 21 -1.6000 -1.5000 -1.4000 -1.3000 -1.2000 -1.1000 -1.0000 Columns 22 through 28 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 -0.3000 Columns 29 through 35 -0.2000 -0.1000 0 0.1000 0.2000 0.3000 0.4000 Columns 36 through 42 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000 1.1000 Columns 43 through 49 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 Columns 50 through 56 1.9000 2.0000 2.1000 2.2000 2.3000 2.4000 2.5000 Columns 57 through 63 2.6000 2.7000 2.8000 2.9000 3.0000 3.1000 3.2000 Columns 64 through 70 3.3000 3.4000 3.5000 3.6000 3.7000 3.8000 3.9000 Columns 71 through 77 4.0000 4.1000 4.2000 4.3000 4.4000 4.5000 4.6000 Columns 78 through 81 4.7000 4.8000 4.9000 5.0000 » y=exp(x) y = Columns 1 through 7 0.0498 0.0550 0.0608 0.0672 0.0743 0.0821 0.0907 Columns 8 through 14 0.1003 0.1108 0.1225 0.1353 0.1496 0.1653 0.1827 Columns 15 through 21 0.2019 0.2231 0.2466 0.2725 0.3012 0.3329 0.3679 Columns 22 through 28 0.4066 0.4493 0.4966 0.5488 0.6065 0.6703 0.7408 Columns 29 through 35 0.8187 0.9048 1.0000 1.1052 1.2214 1.3499 1.4918 Columns 36 through 42 1.6487 1.8221 2.0138 2.2255 2.4596 2.7183 3.0042 Columns 43 through 49 3.3201 3.6693 4.0552 4.4817 4.9530 5.4739 6.0496 Columns 50 through 56 6.6859 7.3891 8.1662 9.0250 9.9742 11.0232 12.1825 Columns 57 through 63 13.4637 14.8797 16.4446 18.1741 20.0855 22.1980 24.5325

Page 68: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 68

Columns 64 through 70 27.1126 29.9641 33.1155 36.5982 40.4473 44.7012 49.4024 Columns 71 through 77 54.5982 60.3403 66.6863 73.6998 81.4509 90.0171 99.4843 Columns 78 through 81 109.9472 121.5104 134.2898 148.4132 » Esto se puede abreviar en pantalla, sin mostrar los valores específicos de “x” ni de la función “y” como: » x = (-3 : 0.1: 5); » y = exp (x); » plot(x,y,'k'), title('FUNCION EXPONENCIAL'), xlabel('VALORES DE X'), YLABEL('VALORES DE Y'), grid »

La función sort() ordena los elementos de un vector en forma ascendente: » a = [5 3 9 6 8 7] a = 5 3 9 6 8 7 » sort(a) ans = 3 5 6 7 8 9

Page 69: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 69

» sort(a') ans = 3 5 6 7 8 9 » b = [12 35 2 ; 56 85 23 ; 0 56 27] b = 12 35 2 56 85 23 0 56 27 » sort(b) ans = 0 35 2 12 56 23 56 85 27 Observe que la función sort() ordena los elementos de una matriz pero en columnas. » sort([12 35 2 56 85 23]) ans = 2 12 23 35 56 85 » sort([12 35 2 56 85 23]') % Ordena y transpone el vector dado. ans = 2 12 23 35 56 85 La función sum() calcula la sumatoria de los elementos del arreglo, si se trata de una matriz, la función sum() muestra la sumatoria de los elementos por columna: » a = [5 3 9 6 8 7] a = 5 3 9 6 8 7 » sum(a) ans = 38 » sum(a') % La sumatoria de los elementos de la transpuesta de a. ans = 38

Page 70: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 70

» x=[1 2 3; 4 5 6] x = 1 2 3 4 5 6 » sum(x) ans = 5 7 9 » b = [12 35 2 ; 56 85 23 ; 0 56 27] b = 12 35 2 56 85 23 0 56 27 » sum (b) ans = 68 176 52 » sum(b') % La sumatoria de los elementos de la transpuesta de b. ans = 49 164 83 Se puede tener una combinación de funciones como en el siguiente ejemplo: Se define la matriz x: » x = [1 2 3; 4 5 6] x = 1 2 3 4 5 6 Se calcula en seno de los elementos de la matriz “x”: » c = sin(x) c = 0.8415 0.9093 0.1411 -0.7568 -0.9589 -0.2794 Se ordenan los elementos de la matriz sin(x) » d = sort(c) d = -0.7568 -0.9589 -0.2794 0.8415 0.9093 0.1411 Se suman los elementos de la matriz “x” (por columnas): » e = sum(d) e = 0.0847 -0.0496 -0.1383

Page 71: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 71

Todas las operaciones independientes anteriores se pueden anidar en una sola orden, con el consecuente ahorro de variables, tiempo de ejecución y de escritura: » sum(sort(sin(x))) ans = 0.0847 -0.0496 -0.1383 Dada la definición de la matriz “x”: » x = [1 2 3; 4 5 6] x = 1 2 3 4 5 6 Se desea calcular el seno de cada uno de los elementos de la matriz, ahora usando ciclos anidados for, el código es el siguiente: » for a=1:2 for b=1:3 x(a,b) = sin(x(a,b)) end end x = 0.8415 2.0000 3.0000 4.0000 5.0000 6.0000 x = 0.8415 0.9093 3.0000 4.0000 5.0000 6.0000 x = 0.8415 0.9093 0.1411 4.0000 5.0000 6.0000 x = 0.8415 0.9093 0.1411 -0.7568 5.0000 6.0000 x = 0.8415 0.9093 0.1411 -0.7568 -0.9589 6.0000 x = 0.8415 0.9093 0.1411 -0.7568 -0.9589 -0.2794

Page 72: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 72

Observe aquí un aspecto importante de los ciclos for anidados: en el primer resultado MATLAB calcula el seno del primer elemento de la matriz “x”, en la segunda pasada del ciclo for interno, calcula el seno del siguiente elemento de la misma primer fila, calcula ahora el seno del tercer elemento de la misma fila y luego hace el mismo recorrido para la segunda fila. Evidentemente esto es más sencillo con la expresión: » c = sin(x) c = 0.8415 0.9093 0.1411 -0.7568 -0.9589 -0.2794

FUNCIONES DE FUNCION. MATLAB también permite la ejecución de funciones creadas por el usuario, las cuales se guardan en un archivo M. Por ejemplo considere la creación de una función que calcule el valor de la siguiente expresión para diferentes valores dados de “x”, la expresión algebraica es:

8352534)( 2

23

+−+++

=xx

xxxxf

Para guardar el código representativo de esta función algebraica, en MATLAB, se abre un archivo nuevo, haciendo clic en la ventana de comandos de MATLAB en File-New, abriéndose luego la ventana del Editor de MATLAB, se teclea el código que se muestra y se guarda haciendo clic en el icono “Guardad”, con el nombre del archivo fun1.m, en este caso se elige guararlo en el directorio work: function y = fun1(x) y = (4*power(x,3) + 3*power(x,2) + 5*x + 2)./(5*power(x,2) – 3*x + 8) Luego, desde la ventana de comandos de MATLAB se teclea: » y = fun1(1) Respondiendo MATLAB con el valor de la evaluación de la expresión dada para “x = 1” y = 1.4000 para x = 0:

Page 73: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION

ING. MANUEL DE LEON GAMEZ 73

» y = fun1(0) y = 0.2500 Para x = 8: » y = fun1(8) y = 7.5066 Si “x” es un vector: » x = [1 2 3 4] x = 1 2 3 4 » y = fun1(x) y = 1.4000 2.5455 3.4545 4.2895 Evaluando la expresión algebraica cuando la variable toma los valores del seno de “x”: » z = sin(x) z = 0.8415 0.9093 0.1411 -0.7568 » y = fun1(z) y = 1.1884 1.2794 0.3617 -0.1370

Page 74: Curso de Matlab _r

74

PRONTUARIO DE MATLAB

Entrar: Inicio-Programas-MATLAB-MATLAB Salir: Control + Q, Teclear quit, File-Exit Ayuda: help, helpwin, helpdesk, demo, help general, help ‘tema’ MATLAB en línea: www.mathworks.com OPERACIONES BÁSICAS: + suma - resta * multiplicación / división \ división inversa (a\b =b/a) ^ elevar a potencia CONSTANTES EN MATLAB: pi 3.1416 i, j números imaginarios ( 1− ) eps 2.2204e-016 % escribir un comentario ALGUNAS FUNCIONES DISPONIBLES: abs() sqrt() cos() log() sin() floor() tan() exp() log10() cosh() sinh() tanh() asin() acos() FORMATO DE NÚMEROS: format short pi 3.1416 format long pi 3.14159265358979 format bank pi 3.14

OPERACIONES BASICAS » x=3; » y=6; » z=x+y SUMA z = 9 » w=x*y PRODUCTO w = 18 » q=y-x RESTA q = 3 » k=x/y DIVISION k = 0.5000 » u=x\y DIVISION INVERSA u = 2 » r=y/x r = 2 » l=sqrt(z) RAIZ CUADRADA l = 3 » m=z^u ELEVAR A POTENCIA m = 81 » a=power(u,l) FUNCION POTENCIA a = 8 » g=sin(4) FUNCION SENO g = -0.7568 » d=asin(k) FUNCION ARCSENO d = 0.5236

Page 75: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION EN MATLAB

ING. MANUEL DE LEON GAMEZ 75

CONOCER LAS VARIABLES EN USO: » who Your variables are: g r x z k u y » whos Name Size Bytes Class g 1x1 8 double array k 1x1 8 double array r 1x1 8 double array u 1x1 8 double array x 1x1 8 double array y 1x1 8 double array z 1x1 8 double array Grand total is 7 elements using 56 bytes BORRAR VARIABLES » clear x BORRAR X » clear u y BORAR U y Y » clear all BORRAR TODAS OPERACIONES CON ARREGLOS » a=(0:1:10); DEFINIR LOS ARREGLOS » b=(0:10:100); » c=a+b SUMA c = 0 11 22 33 44 55 66 77 88 99 110 » d=a.*b ELEMENTO POR ELEMENTO d = Columns 1 through 6 0 10 40 90 160 250 Columns 7 through 11 360 490 640 810 1000 » e=a' TRANSPUESTA e = 0 1 2 3 4 5 6 7 8 9 10

» f=a*e PRODUCTO f = 385 » g=sin(a) SENO DE CADA ELEMENTO g = Columns 1 through 7 0 0.8415 0.9093 0.1411 -0.7568 -0.9589 -0.2794 Columns 8 through 11 0.6570 0.9894 0.4121 -0.5440 » h=g.^2 CADA ELEMENTO AL CUADRADO h = Columns 1 through 7 0 0.7081 0.8268 0.0199 0.5728 0.9195 0.0781 Columns 8 through 11 0.4316 0.9788 0.1698 0.2960 l=power(sin(a),2) SENO AL CUADRADO l = Columns 1 through 7 0 0.7081 0.8268 0.0199 0.5728 0.9195 0.0781 Columns 8 through 11 0.4316 0.9788 0.1698 0.2960 GRAFICAR » a=(0:1:10); SE DEFINEN LAS VARIABLES a Y b, » b=(0:10:100); » plot(a,b, '+'), title('GRAFICA'), xlabel('A'), ylabel('B'), grid » plot(a,b, '+'), title('GRAFICA'), xlabel('A'), ylabel('B')

Page 76: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION EN MATLAB

ING. MANUEL DE LEON GAMEZ 76

DOS GRAFICAS EN UNA: » x=linspace(0,2*pi,40); » y=sin(x); » z=cos(x); » plot(x,y, x,z,'k'), title('GRAFICA'), xlabel(' X'), ylabel('seno, coseno')

OPERACIONES CON MATRICES: » A=[1 2 3; 5 6 7; 9 12 15] DEFINICION DE LAS A = MATRICES 1 2 3 5 6 7 9 12 15 » B=[3 5 1; 4 9 5; 1 -8 32] B = 3 5 1 4 9 5 1 -8 32 » A+B SUMA ans = 4 7 4 9 15 12 10 4 47 » B-A RESTA ans = 2 3 -2 -1 3 -2 -8 -20 17

» A' TRANSPUESTA ans = 1 5 9 2 6 12 3 7 15 » A'+B ans = 4 10 10 6 15 17 4 -1 47 » A*B PRODUCTO ans = 14 -1 107 46 23 259 90 33 549 » A.*A ans = 1 4 9 25 36 49 81 144 225 » A.^2 CADA ELEMENTO AL CUADRADO ans = 1 4 9 25 36 49 81 144 225 » inv(A) ¿PORQUE SUCEDE ESTO ? Warning: Matrix is singular to working precision. ans = Inf Inf Inf Inf Inf Inf Inf Inf Inf » inv(B) INVERSA ans = 1.0000 -0.5122 0.0488 -0.3750 0.2896 -0.0335 -0.1250 0.0884 0.0213 » B*(inv(B)) UNA MATRIZ POR SU INVERSA ans = 1.0000 -0.0000 -0.0000 0 1.0000 -0.0000 0 0 1.0000

Page 77: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION EN MATLAB

ING. MANUEL DE LEON GAMEZ 77

» eye(3) MATRIZ IDENTIDAD DE 3x3 ans = 1 0 0 0 1 0 0 0 1 » ones(3) MATRIZ DE UNOS ans = 1 1 1 1 1 1 1 1 1 » zeros(2) MATRIZ DE CEROS ans = 0 0 0 0 » sin(A) SENO DE LOS ELEMENTOS ans = 0.8415 0.9093 0.1411 -0.9589 -0.2794 0.6570 0.4121 -0.5366 0.6503 » sin(A) + cos(B) ans = -0.1485 1.1930 0.6814 -1.6126 -1.1905 0.9406 0.9524 -0.6821 1.4845 » 5*B UNA MATRIZ POR UNA CONSTANTE ans = 15 25 5 20 45 25 5 -40 160 » determ(A) ¡RESPUESTA! ans = 0 » determ(B) DETERMINANTE ans = 328

DEFINICION DE FUNCIONES LAS FUNCIONES SON PEQUEÑOS PROGRAMAS GRABADOS CON EXTENSION .m QUE REALIZAN UNA TAREA DEFINIDA. SE ESCRIBEN EN EL EDITOR DE MATLAB Y SE GUARDAN COMO ARCHIVOS M-file. function y=fun1(x) y = (4*power(x,3) + 3*power(x,2) + 5*x + 2)./(5*power(x,2) -3*x + 8) ESTA FUNCION SE PUEDE USAR EN OTRO CODIGO, CON SOLO LLAMARLA (POR SU NOMBRE): » t=fun1(5) EVALUAR LA FUNCION EN x=5 y = 5.1017 t = 5.1017 » sin(fun1(3)) y = 3.4545 ans = -0.3079 EVALUAR LA FUNCION fun1 EN X=5: » feval('fun1',5) y = 5.1017 ans = 5.1017

Page 78: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION EN MATLAB

ING. MANUEL DE LEON GAMEZ 78

MATEMATICA SIMBOLICA: » pol1 = [1 -2 4] Se define el primer polinomio a través de sus coeficientes. pol1 = 1 -2 4 » pol2 = [1 0 3 -4] Se da otro polinomio. pol2 = 1 0 3 -4 » pol3 = conv(pol1,pol2) Se define el

producto. pol3 = 1 -2 7 -10 20 -16 » g = [1 2 1]; Se da el polinomio a

través de sus coeficientes. » roots(g) Se obtienen las raíces. ans = -1 -1 » h = [1 0 0 -1]; Se evalúa el polinomio. » polyval(h,4) ans = 63 DERIVACION : Calcular la derivada de las expresiones siguientes: h = x3 – 1 » h = [1 0 0 -1]; » polyder(h) ans = 3 0 0 La derivada es 3x2 Dadas las funciones :

78)(5324)(

−=−+=

xxgxxxf

» f='4*x^2+3*x-5' f = 4*x^2+3*x-5 » g='8*x-7' g = 8*x-7

Sumar: » symadd(f,g) ans = 4*x^2+11*x-12 Restar : » symsub(f,g) ans = 4*x^2-5*x+2 Multiplicar : » symmul(f,g) ans = (4*x^2+3*x-5)*(8*x-7) Dividir : » symdiv(f,g) ans = (4*x^2+3*x-5)/(8*x-7) » sympow(f,'6') Elevar la función f(x) a

la sexta potencia: ans = (4*x^2+3*x-5)^6 » diff(b) ans = 2*x La derivada de b = x2 es 2x. » diff(a) ans = cos(x) La derivada del seno(x) es el

coseno(x). » diff(b,2) ans = 2 La segunda derivada de b = x2. INTEGRACION: » int(b) ans =

1/3*x^3 La integral de x2 es 3

3x

» simplify(m) SIMPLIFICAR UNA

EXPRESION (m) ans = 1/(x+1)^2

Page 79: Curso de Matlab _r

ACADEMIA DE COMPUTO PROGRAMACION EN MATLAB

ING. MANUEL DE LEON GAMEZ 79

PROGRAMACION MATLAB INCORPORA LOS CICLOS for Y while ADEMAS DEL if PARA PROGRAMACION. LA SINTAXIS DE CADA UNO ES LA SIGUIENTE: for (variable del ciclo =rango del ciclo) instrucciones a ejecutar ; end while (condición) instrucciones a ejecutar ; end if (condición) instrucciones a ejecutar ; else instrucciones a ejecutar ; end EJEMPLOS: » for n=1:5 x(n) = sin(n) ; end » x x = 0.8415 0.9093 0.1411 -0.7568 -0.9589 » for n = 1:5 for m = 5 :-1 : 1 A(n,m) = n^2 + m^2 ; end disp(n) end 1 2 3 4 5 » A A = 2 5 10 17 26 5 8 13 20 29 10 13 18 25 34 17 20 25 32 41 26 29 34 41 50

» num = 0 ; EPS = 1 ; » while (1 + EPS) > 1

EPS =EPS/2; num = num + 1 ;

end » num

num =

53

» EPS =EPS*2 EPS = 2.2204e-016

» c=10; » d=c*25; » if c>5

d=(1-20/100)*d; end » d d = 200

» EPS = 1 ; » for num = 1:1000

EPS = EPS /2 ; if (1 + EPS) <= 1 EPS = EPS * 2 ; break end end

» EPS EPS =

2.2204e-016

» num num = 53

OPERADORES RELACIONALES: == Igual que < Menor que ~= No igual que <= Menor igual > Mayor que >= Mayor igual OPERADORES LOGICOS ~ Negación & Y (and) | O (or)