Manual Matlab Cap. 01-05

MANUAL DE PROGRAMACIÓN MATLAB APLICACIÓN A LOS MÉTODOS NUMÉRICOS EN LA INGENIERÍA CIVIL   Ing. G. Milagros Tipe Anaya

Views 38 Downloads 0 File size 2MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

MANUAL DE PROGRAMACIÓN

MATLAB

APLICACIÓN A LOS MÉTODOS NUMÉRICOS EN LA INGENIERÍA CIVIL   Ing. G. Milagros Tipe Anaya [email protected]  2019

ÍNDICE GENERAL

I

Índice General

ii

Índice de Cuadros

iv

Índice de Figuras

v

INTRODUCCIÓN A MATLAB 1.1 ¿Qué es Matlab? . . . . . . . . . . . . 1.2 Entorno de trabajo . . . . . . . . . . . 1.3 Utilización de la ventana de comandos 1.4 Formato de visualización de números . 1.5 Funciones básicas . . . . . . . . . . . 1.6 Variables . . . . . . . . . . . . . . . . 1.7 Números complejos . . . . . . . . . . 1.8 Problemas propuestos . . . . . . . . .

. . . . . . . .

1 1 1 3 4 5 6 6 7

. . . . . . . . .

8 8 9 10 11 12 12 12 13 14

. . . . .

15 15 22 24 27 27

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

II ARRAYS 2.1 2.2

2.3 2.4 2.5

Vectores . . . . . . . . . . . . . . . . . . . Matrices . . . . . . . . . . . . . . . . . . . 2.2.1 Tamaño de un vector o matriz . . . . 2.2.2 Vectores y matrices usuales . . . . . 2.2.3 Rango, inversa y determinante de una 2.2.4 Operaciones sobre un vector o matriz Variables lógicas . . . . . . . . . . . . . . . Polinomios . . . . . . . . . . . . . . . . . . Problemas propuestos . . . . . . . . . . . .

. . . . . . . . . . . . . . . . matriz . . . . . . . . . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

III REPRESENTACIÓN GRÁFICA 3.1 3.2 3.3 3.4 3.5

Gráficos bidimensionales . . . Gráficos tridimensionales . . . Gráficos específicos . . . . . Gráficos de propósito especial Problema propuesto . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

ii

Índice General

IV FICHEROS SCRIPT 4.1 4.2 4.3

. . . . .

29 30 30 31 32 33

. . . . . . .

35 35 36 36 37 37 38 38

. . . . . . . . . . . .

41 41 41 45 45 45 45 45 45 45 45 45 45

Resumen de funciones de Matlab . . . . . . . . . . . . . . . . . . . . . .

46 46

Ejecución de un fichero Script . . . . . . . Lectura y escritura de variables interactivas Importación y exportación de datos . . . . 4.3.1 Importación de datos . . . . . . . 4.3.2 Exportación de datos . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

V FICHEROS FUNCTION 5.1 5.2 5.3 5.4

5.5

Creación de un fichero de función . . . . . . . . Estructura de un fichero de función . . . . . . . Ejemplos de aplicación . . . . . . . . . . . . . . Funciones simbólicas . . . . . . . . . . . . . . . 5.4.1 Construcción de funciones simbólicas . . 5.4.2 Conversión de formato simbólico a inline Problemas propuestos . . . . . . . . . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

VI PROGRAMACIÓN EN MATLAB 6.1

6.2

6.3

6.4 6.5

Estructuras condicionales . . . . 6.1.1 if-else-end . . . . . . . . 6.1.2 if-elseif-else-end . . . . . 6.1.3 switch-case . . . . . . . . Estructuras de repetición o bucles 6.2.1 while . . . . . . . . . . . 6.2.2 for . . . . . . . . . . . . Ruptura de bucles de repetición . 6.3.1 break . . . . . . . . . . . 6.3.2 continue . . . . . . . . . Ejemplos de aplicación . . . . . . Problemas propuestos . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

A ANEXOS. 1.1

iii

ÍNDICE DE CUADROS

1.1 1.2 1.3 1.4 1.5

Las ventanas de Matlab. . . . . . . . Formato de visualización de números. Funciones matemáticas elementales. . Funciones trigonométricas. . . . . . . Funciones de redondeo. . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

1 4 5 5 5

2.1

Operadores aritméticos de arreglo de datos. . . . . . . . . . . . . . . . . .

12

3.1 3.2 3.3

Funciones gráficas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Funciones axis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tipo de trazo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15 18 20

5.1

Funciones matemáticas para expresiones simbólicas. . . . . . . . . . . . .

37

iv

ÍNDICE DE FIGURAS

1.1 1.2 1.3 1.4 1.5 1.6 1.7

Entorno gráfico de Matlab. . . . . . . . . . . . . . . Ventana del Editor para la edición de código Matlab. . Ventana de Ayuda abierta. . . . . . . . . . . . . . . . Ventana de Gráficos representando un gráfico Matlab. Ejemplo de una ventana de comandos. . . . . . . . . Funciones trigonométricas seno y coseno. . . . . . . . Representación gráfica de un complejo en un diagrama

. . . . . . . . . . . . . . . . . . . . . . . . polar.

. . . . . . .

2 2 3 3 4 6 7

2.1

La matriz en Matlab.

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 3.20

Función plot(x,y). . . . . . . . . . . . . . . . . . . . Función semilogx(x,y). . . . . . . . . . . . . . . . . . Función loglog(x,y). . . . . . . . . . . . . . . . . . . Función stem(x,y). . . . . . . . . . . . . . . . . . . . Función stairs(x,y). . . . . . . . . . . . . . . . . . . . Función axis([xmin xmax ymin ymax]). . . . . . . . . Función axis off. . . . . . . . . . . . . . . . . . . . . Función grid on. . . . . . . . . . . . . . . . . . . . . Función subplot. . . . . . . . . . . . . . . . . . . . . Ventana de Gráficos representando un gráfico Matlab. Ejemplo de generación de gráfico tridimensional. . . . Función plot3. . . . . . . . . . . . . . . . . . . . . . Función mesh. . . . . . . . . . . . . . . . . . . . . . Función surf. . . . . . . . . . . . . . . . . . . . . . . Función meshc. . . . . . . . . . . . . . . . . . . . . . Función pie. . . . . . . . . . . . . . . . . . . . . . . Función bar. . . . . . . . . . . . . . . . . . . . . . . Función histogram. . . . . . . . . . . . . . . . . . . . Funciones convexhull, delauney, voronoi. . . . . . . . Gráfico de un toro. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

16 16 17 17 18 18 19 19 20 21 22 23 23 24 24 25 26 27 27 28

4.1 4.2 4.3

Creación de fichero script. . . . . . . . . . . . . . . . . . . . . . . . . . . Ejecución de fichero script. . . . . . . . . . . . . . . . . . . . . . . . . . Hoja de cálculo ’base.xlsx’ . . . . . . . . . . . . . . . . . . . . . . . . . .

29 30 32

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . . . . . . . . . . . . . . .

v

Índice de Figuras 4.4 4.5

Hoja de cálculo resultante ’exportacion.xlsx’ . . . . . . . . . . . . . . . . Hoja de cálculo resultante ’base.xlsx’ . . . . . . . . . . . . . . . . . . . .

34 34

5.1 5.2

Creación de fichero function. . . . . . . . . . . . . . . . . . . . . . . . . Vector posición. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

35 39

6.1 6.2 6.3

Estructura condicional simple. . . . . . . . . . . . . . . . . . . . . . . . . Estructura condicional doble. . . . . . . . . . . . . . . . . . . . . . . . . Diagrama de flujo de la función Cuadrante(x,y). . . . . . . . . . . . . . .

42 42 44

vi

CAPÍTULO

I

INTRODUCCIÓN A MATLAB

1.1 ¿Qué es Matlab? MATLAB es el nombre abreviado de "MATrix LABoratory". Es un programa para realizar cálculos numéricos con vectores y matrices. Como caso particular puede también trabajar con números escalares, tanto reales como complejos, con cadenas de caracteres y con otras estructuras de información más complejas. Una de las capacidades más atractivas es la de realizar una amplia variedad de gráficos en dos y tres dimensiones.

1.2 Entorno de trabajo Cuadro No 1.1 : Las ventanas de Matlab. Nombre

Significado

Command Window

Ventana de Comandos

Figure Window

Ventana de Gráficos

Editor Window

Ventana del Editor

Help Window Command History Window

Ventana de Ayuda Ventana del Histórico de Comandos Ventana del Espacio de Trabajo Ventana del Directorio de Trabajo Actual

Workspace Window Current Window

Directory

Propósito Es la ventana principal, se utiliza para introducir variables y ejecutar programas. Se utiliza para visualizar gráficos. Se usa para crear y depurar ficheros de script y funciones MATLAB. Proporciona ayuda e información sobre MATLAB. Almacena y visualiza los comandos que se introducen en la Ventana de Comandos. Proporciona información sobre las variables utilizadas. Muestra los ficheros que hay en el directorio de trabajo actual.

1

1.2 Entorno de trabajo | Capitulo I

Figura No 1.1: Entorno gráfico de Matlab.

Figura No 1.2: Ventana del Editor para la edición de código Matlab.

2

1.3

Utilización de la ventana de comandos | Capitulo I

Figura No 1.3: Ventana de Ayuda abierta.

Figura No 1.4: Ventana de Gráficos representando un gráfico Matlab.

1.3 Utilización de la ventana de comandos Sintaxis: » Comando o instrucción a evaluar < enter > • Los cálculos que no se asignan a una variable en concreto se asignan a la variable de respuesta por defecto que es ans. Sin embargo, si el cálculo se asigna a una variable, el resultado queda guardado en ella. • Cuando se teclea un comando en la Ventana de Comandos y se pulsa la tecla Enter, el comando es ejecutado y se visualiza inmediatamente. Si se teclea un punto y coma (;) al final del comando, la salida se ejecuta pero no se visualiza. • Matlab distingue entre mayúsculas y minúsculas. • Los comentarios deben ir precedidos por % o, (MATLAB ignora todo lo que vaya precedido por el símbolo %). 3

1.4 Formato de visualización de números | Capitulo I

• El comando clc (teclear clc y pulsar Enter ) borra la Ventana de Comandos. Este comando limpia la ventana de los comandos ejecutados pero no borra las variables previamente definidas. • El comando clear (teclear clear y pulsar Enter ) borra las variables del Workspace. Figura No 1.5: Ejemplo de una ventana de comandos.

1.4 Formato de visualización de números

Comando

Cuadro No 1.2 : Formato de visualización de números. Descripción Ejemplo

format short

Punto fijo con 4 dígitos

»290/7 ans= 41.4286

format long

Punto fijo con 15 dígitos

»290/7 ans= 41.428571428571431

format short e

Notación científica con 4 dígitos decimales

»290/7 ans= 4.1429e+001

format long e

Notación científica con 15 dígitos decimales

»290/7 ans= 4.142857142857143e+001

format short g

5 primeros dígitos fijos

»290/7 ans= 41.429

format long g

15 primeros dígitos fijos

»290/7 ans= 41.4285714285714

format bank

2 dígitos decimales

»290/7 ans= 41.43 4

1.5

Funciones básicas | Capitulo I

El usuario puede controlar el número de decimales con que aparece en pantalla el valor de las variables (en el menú FILE >PREFERENCES > COMMAND WINDOW).

1.5 Funciones básicas Se pueden utilizar las funciones matemáticas habituales, así como una vasta colección de funciones predefinidas en Matlab A. Sintaxis: » Nombre de la función(argumento) Cuadro No 1.3 : Funciones matemáticas elementales. Función Descripción sqrt(x)

Raíz cuadrada

exp(x)

Exponencial

abs(x)

Valor absoluto

log(x)

Logaritmo natural de base e (ln)

log10(x)

Logaritmo en base 10

factorial(x)

Función factorial x!

Función

Función

sin(x)

asin(x)

cos(x)

acos(x)

tan(x)

atan(x)

cot(x)

acot(x)

Cuadro No 1.4 : Funciones trigonométricas. Función Descripción Seno, Arcoseno, Seno Hiperbólico del ángulo x sinh(x) (x en radianes) Coseno, Arcocoseno, Coseno Hiperbólico del cosh(x) ángulo x (x en radianes) Tangente, Arcotangente, Tangente Hiperbólico tanh(x) del ángulo x (x en radianes) Cotangente, Arcocotangente, Cotangente coth(x) Hiperbólico del ángulo x (x en radianes)

Función

Cuadro No 1.5 : Funciones de redondeo. Descripción

round(x)

Redondea al entero más próximo

fix(x)

Redondea hacia cero

ceil(x)

Redondea hacia infinito

floor(x)

Redondea hacia menos infinito

sign(x)

Función de signo. Devuelve 1 si x>0,-1 si x> z =3+4* i z = 3.0000 + 4.0000 i >> % Parte real de un complejo : 6

1.8

5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

21

Problemas propuestos | Capitulo I

>> real ( z ) ans = 3 >> % Parte imaginaria de un complejo : >> imag ( z ) ans = 4 >> % Conjugado de un complejo : >> conj ( z ) ans = 3.0000 - 4.0000 i >> % M d u l o de un complejo : >> abs ( z ) ans = 5 >> % R e p r e s e n t a c i n g r f i c a de un complejo en un ←diagrama polar : >> compass ( z ) Figura No 1.7: Representación gráfica de un complejo en un diagrama polar.

1.8 Problemas propuestos Resuelva los siguientes problemas utilizando la Ventana de Comandos de Matlab. 1. 2.

√ 2 ( 4 250+23) 3 (45−3 )  2  e tan( π ln 8) 5π 2 7π cos 6 sen 8 + 7∗6 5 2 37 log(76) 73 +546

+ 43 ∗

7

CAPÍTULO

II

ARRAYS

Todas las variables en Matlab son arrays. Un escalar es simplemente un array de un solo elemento. Un vector es un array con una sola fila o columna de elementos. Una matriz es un array con elementos distribuidos en filas y columnas.

2.1 Vectores nombre de la variable=[elementos del vector] • La coma "," para separar elementos [1,2,3,4] ó [1 2 3 4]. • El punto y coma ";" para separar filas en las matrices [1 2;3 4]. • El operador "’" es el de transposición (en el caso de números complejos realiza la transposición y la conjugación simultáneas). • Los dos puntos":" indican números consecutivos entre dos valores, [2:5] es equivalente a [2 3 4 5]. • Si queremos declarar un vector de coordenadas equiespaciadas entre dos dadas, por ejemplo, que la primera valga 0, la última 12 y la distancia entre coordenadas sea 2, escribiremos:

1 2 3

>> v =[0:2:12] v = 0 2 4

6

8

10

12

• Equivalentemente, linspace(a,b,n) crea un vector de n componentes equiespaciadas, desde a hasta b. En el caso de que h=(b-a)/(n-1), se obtiene el mismo resultado con 8

2.2

Matrices | Capitulo II

a:h:b. Entonces, si lo que conocemos del vector es que la primera coordenada vale 0, la última 12 y que tiene 7 elementos, escribiremos:

1 2 3

>> v = linspace (0 ,12 ,7) v = 0 2 4 6

8

10

12

• Para acceder a los elementos de un vector se escribe el nombre del vector y entre paréntesis su indice:

1 2 3

>> v (3) ans = 4

• v(m:n) se refiere a todos los elementos comprendidos entre las posiciones m y n del vector v.

1 2 3

>> v (2:5) ans = 2 4

6

8

• v(:) se refiere a todos los elementos del vector v.

2.2 Matrices Las matrices se escriben como los vectores, pero separando las filas mediante un punto y coma. • • • • •

A(:,n) se refiere a los elementos de la columna n de la matriz A. A(n,:) se refiere a los elementos de la fila n de la matriz A. A(:,m:n) se refiere a los elementos entre las columnas m y n de la matriz A. A(m:n,:) se refiere a los elementos entre las filas m y n de la matriz A. A(m:n,p:q) se refiere a los elementos de la fila m a la n, y a los de la columna p a la q de la matriz A. • Un elemento, o un rango de elementos, de una variable existente pueden ser eliminados simplemente reasignando el conjunto vacío [] a dichos elementos.

1 2 3 4

>> A =[1 2 3 4 5 6 7]; A (3:5) =[]; >> A A = 1 2 6 7 9

2.2

Matrices | Capitulo II

Figura No 2.1: La matriz en Matlab.

2.2.1

Tamaño de un vector o matriz

• length(v), devuelve el número de componentes del vector v. • size(M), devuelve el número de filas y columnas de la matriz M.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

>> M =[1 2 3;4 5 6;7 8 9] M = 1 2 3 4 5 6 7 8 9 >> v =[1 2 3] v = 1 2 3 >> size ( M ) ans = 3 3 >> size ( v ) ans = 1 3 >> length ( v ) ans = 3

10

2.2

2.2.2

Matrices | Capitulo II

Vectores y matrices usuales

• • • • •

eye(n), es la matriz identidad I de orden n. zeros(m,n), es una matriz de ceros de tamaño mxn. ones(m,n), es una matriz de unos de tamaño mxn. rand(m,n), es una matriz de mxn elementos uniformemente distribuidos en [0,1]. diag(v), cuando v es un vector, este comando crea una matriz cuadrada con los elementos de v en la diagonal. • diag (M), cuando M es una matriz, este comando crea un vector a partir de los elementos de la diagonal de M.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

>> eye (3) ans = 1 0 0 0 1 0 0 0 1 >> zeros (3 ,2) ans = 0 0 0 0 0 0 >> ones (2 ,3) ans = 1 1 1 1 1 1 >> rand (3 ,2) ans = 0.9058 0.6324 0.1270 0.0975 0.9134 0.2785 >> diag ( v ) ans = 1 0 0 0 2 0 0 0 3 >> diag ( M ) ans = 1 5 9 11

2.3

2.2.3

Variables lógicas | Capitulo II

Rango, inversa y determinante de una matriz

• rank(M), es el rango de M, o sea, el número de filas o columnas linealmente independientes. • det(M), determinante de la matriz cuadrada M. • eig(M), valores propios de la matriz cuadrada M. • inv(M), la inversa de la matriz M es la matriz A que multiplicada por M da la matriz identidad. • A \ B, multiplica b por la inversa de A. Se utiliza para resolver el sistema de ecuaciones lineales Ax=b.

2.2.4

Operaciones sobre un vector o matriz

También pueden efectuarse operaciones elemento a elemento: Cuadro No 2.1 : Operadores aritméticos de arreglo de datos. .* ./ . \ .ˆ

A.*B, es la multiplicación elemento por elemento de los arreglos A y B, los cuales deben tener el mismo tamaño. A./B, es la matriz con elementos A(i,j)/B(i,j), A y B deben tener el mismo tamaño, al menos que uno sea un escalar. A. \ B, es la matriz con elementos B(i,j)/A(i,j), A y B deben tener el mismo tamaño, al menos que uno sea un escalar. ˆ es la matriz con elementos A(i,j) elevados a la potencia B(i,j), A y B deben tener el A. B, mismo tamaño, al menos que uno sea un escalar.

Para vectores fila o columna: • • • •

sum(v), halla la suma de los elementos del vector v. prod(v), halla el producto de los elementos del vector v. max(v), halla el máximo de los elementos del vector v. min(v), halla el mínimo de los elementos del vector v.

Para matrices: • • • •

sum(A), halla la suma de los elementos de cada columna de la matriz A. prod(A), halla el producto de los elementos de cada columna de la matriz A. max(A), halla el máximo de los elementos de cada columna de la matriz A. min(A), halla el mínimo de los elementos de cada columna de la matriz A.

2.3 Variables lógicas También existen variables lógicas que toman los valores 0 (falso) ó 1 (verdadero). Los caracteres más empleados en la condiciones lógicas son: • > mayor que... • < menor que... 12

2.4

• • • • • •

1 2 3 4

Polinomios | Capitulo II

== igual a ... >= mayor o igual que ... > v1 =[1 2 3]; v2 =[3 2 1]; >> logica = v1 == v2 logica = 0 1 0

2.4 Polinomios Los polinomios constituyen una clase de función de gran importancia, debido a que son fáciles de evaluar y, por ello, muy utilizadas para aproximar funciones. Matlab representa el polinomio de grado n: p(x) = a1 xn + a2 xn−1 + ... + an x + an+1 mediante el vector: p = [a1 , a2 , ..., an , an+1 ], cuyos elementos (coeficientes) están ordenados de mayor a menor grado, incluyendo los coeficientes nulos. Sean p y q los vectores que representan los polinomios p(x) y q(x): • • • • •

1 2 3 4 5 6 7 8 9 10 11 12

conv(p,q), representa el polinomio producto p(x)q(x). [c,r]=deconv(p,q), son el cociente y el resto de la división de p(x) entre q(x). roots(p), halla las raíces (reales o complejas) del polinomio p(x). polyval(p,a), evalúa l polinomio p en x=a. p=poly(r), reconstruye el polinomio p(x) a partir de sus raíces.

>> p =[1 0 2 0 3]; q =[2 1 0]; % p = x ^4+2* x ^2+3 y >> polyval (p , -1) % Evaluacion del polinomio p ans = 6 >> pro = conv (p , q ) % Producto de los polinomios pro = 2 1 4 2 6 3 0 >> [c , r ]= deconv ( pro , p ) % Cociente entre pro y c = 2 1 0 r = 0 0 0 0 0 0 0

q = x ^2+ x en x = -1

p y q

p

13

2.5

13 14 15 16 17 18 19 20 21

22 23

Problemas propuestos | Capitulo II

>> roots ( pro ) % Raices del polinomio pro ans = 0.0000 + 0.0000 i 0.6050 + 1.1688 i 0.6050 - 1.1688 i -0.6050 + 1.1688 i -0.6050 - 1.1688 i -0.5000 + 0.0000 i >> poly ([ i -i 0.5 pi ]) % Polinomio monico que tiene por ←raices a los numeros i , -i , 0.5 y pi ans = 1.0000 -3.6416 2.5708 -3.6416 1.5708

2.5 Problemas propuestos Divide el polinomio x3 − 2x − 5 por x − 2 • Manualmente, utilizando el algoritmo de división. • Utilizando la función deconv • Evalúa el mismo polinomio en x=2

14

CAPÍTULO

III

REPRESENTACIÓN GRÁFICA

Matlab tiene un gran potencial de herramientas gráficas.

3.1 Gráficos bidimensionales Los pasos generales para la representación de curvas en dos dimensiones son los siguientes: 1. Creación de abscisas y ordenadas: Crear un vector con los valores del eje de abscisas (x) y otro con el de ordenadas (y). Las dimensiones de los vectores x e y deben ser iguales; de hecho, y se calcula a partir de x. 2. Representación: ejecutar una instrucción gráfica.

Función

Cuadro No 3.1 : Funciones gráficas. Descripción

plot (x,y)

eje x e y lineal.

semilogx(x,y)

eje x en logarítmico y eje y en lineal.

semilogy(x,y)

eje y en logarítmico y eje x en lineal.

loglog(x,y)

eje x e y en logarítmico.

stem(x,y)

el trazo de las coordenadas (x,y) parte del eje de abscisas.

stairs(x,y)

el trazo de las coordenadas (x,y) es de forma escalonada.

15

3.1

Gráficos bidimensionales | Capitulo III

Figura No 3.1: Función plot(x,y).

1 2 3 4

x = linspace ( -2* pi ,2* pi ) ; y1 = sin ( x ) ; y2 = cos ( x ) ; p = plot (x , y1 ,x , y2 ) ; Figura No 3.2: Función semilogx(x,y).

1 2 3

x = 0:1000; y = log ( x ) ; semilogx (x , y )

16

3.1

Gráficos bidimensionales | Capitulo III

Figura No 3.3: Función loglog(x,y).

1 2 3 4

x = logspace ( -1 ,2) ; y = exp ( x ) ; loglog (x ,y , ’ -s ’) grid on Figura No 3.4: Función stem(x,y).

1 2 3

X = linspace (0 ,2* pi ,50) ’; Y = cos ( X ) ; stem (X , Y )

17

3.1

Gráficos bidimensionales | Capitulo III

Figura No 3.5: Función stairs(x,y).

1 2 3

X = linspace (0 ,4* pi ,40) ; Y = sin ( X ) ; stairs (X , Y )

3. Ejes de representación: Se pueden cambiar los valores inicial y final de los ejes de la representación mediante la función: axis([xmin xmax ymin ymax]). Cuadro No 3.2 : Funciones axis. Descripción

Función axis([xmin xmax ymin ymax])

Define los límites de los ejes.

axis off

Visualiza un gráfico sin fondo de ejes.

axis square

Utiliza líneas de ejes con longitudes iguales. Figura No 3.6: Función axis([xmin xmax ymin ymax]).

18

3.1

1 2 3 4

Gráficos bidimensionales | Capitulo III

x = linspace (0 ,2* pi ) ; y = sin ( x ) ; plot (x ,y , ’ -o ’) axis ([0 2* pi -1.5 1.5]) Figura No 3.7: Función axis off.

1 2

surf ( peaks ) axis off

4. Líneas de cuadrícula: La instrucción para mostrar líneas de cuadrícula es grid on y grid off para ocultarla; y para mostrar u ocultar las líneas superior y derecha del gráfico son box on y box off respectivamente. Figura No 3.8: Función grid on.

1 2 3 4 5

x = linspace (0 ,10) ; y = sin ( x ) ; plot (x , y ) grid on grid minor 19

3.1

Gráficos bidimensionales | Capitulo III

5. Tipo de trazo: Se pueden usar trazos continuos, discontinuos, diversos colores y símbolos.

Color

Cuadro No 3.3 : Tipo de trazo. Tipo de línea

Marcador

’r’ rojo

’-’ línea continua

’+’ signo más

’k’ negro

’–’ línea discontinua

’-’ signo menos

’w’ blanco

’:’ línea a puntos

’o’ círculo

’b’ azul

’-.’ línea a puntos y rayas

’s’ cuadrado

’y’ amarillo

’d’ diamante

’g’ verde

’p’ estrela de 5 puntas

’m’ magenta

’h’ estrella de 6 puntas

’c’ azul celeste

’*’ asterisco

6. Superposición: Para superponer gráficas se usa la función hold on y hold off. 7. División de una ventana gráfica: Para subdividir la pantalla se utiliza subplot(a,b,c) donde a corresponde al número de filas, b al número de columnas y c a la subgráfica actual. Figura No 3.9: Función subplot.

1 2 3 4 5

subplot (2 ,2 ,1) ; x = linspace ( -3.8 ,3.8) ; y_cos = cos ( x ) ; plot (x , y_cos ) ; title ( ’ Subplot 1: Cosine ’)

6 7

subplot (2 ,2 ,2) ; 20

3.1

8 9 10

Gráficos bidimensionales | Capitulo III

y_poly = 1 - x .^2./2 + x .^4./24; plot (x , y_poly , ’g ’) ; title ( ’ Subplot 2: Polynomial ’)

11 12 13 14

subplot (2 ,2 ,[3 ,4]) ; plot (x , y_cos , ’b ’ ,x , y_poly , ’g ’) ; title ( ’ Subplot 3 and 4: Both ’)

8. Etiquetado: Para etiquetar la representación se pueden utilizar las funciones: xlabel, ylabel, title, text, gtext, legend. Figura No 3.10: Ventana de Gráficos representando un gráfico Matlab.

1 2 3 4

5 6 7 8 9 10 11

>> >> >> >> >> >> >> >> >> >> >>

x = pi *( -1:0.01:1) ; y = x .* sin ( x ) ; plot (x , y ) hold on % Mantiene en la misma ventana ←grafica los dibujos anteriores grid on plot (x , cos ( x ) , ’ro - ’ ,x ,y , ’ bp : ’) xlabel ( ’ Tiempo ’) ylabel ( ’ Valor ’) legend ( ’ cos ( x ) ’ , ’y ’) title ( ’ Grafico de ejemplo ’) gtext ( ’ curva ’)

21

3.2

Gráficos tridimensionales | Capitulo III

3.2 Gráficos tridimensionales Los gráficos para la representación de curvas en tres dimensiones son los mismos que en el caso de curvas en 2D. Asimismo, los ejes se pueden modificar con axis ([xmin xmax ymin ymax zmin zmax]). Para obtenerla en Matlab se deben seguir 3 pasos: 1. Generar una malla rectangular de puntos del plano XY. 2. Evaluar la función f sobre los puntos de esta malla. 3. Aplicar la orden de Matlan adecuada para el tipo de representación de que se trate.

1 2 3 4 5

x = -1:0.1:1; % 1. G e n e r a c i n de la malla y = -1:0.1:1; [X , Y ]= meshgrid (x , y ) ; Z = X .^2+ Y .^2; % 2. E v a l u a c i n de la f u n c i n . surf (X ,Y , Z ) % 3. R e p r e s e n t a c i n de la superficie . Figura No 3.11: Ejemplo de generación de gráfico tridimensional.

Las instrucciones de representación en 3D son: 1. plot3(x,y,z):

1 2 3 4

t = 0: pi /50:10* pi ; st = sin ( t ) ; ct = cos ( t ) ; plot3 ( st , ct , t )

22

3.2

Gráficos tridimensionales | Capitulo III

Figura No 3.12: Función plot3.

2. mesh(x,y,z): dibuja una malla de alambres con el color determinado por Z, por lo que el color es proporcional a la altura de la superficie. Figura No 3.13: Función mesh.

1 2 3 4

[X , Y ] = meshgrid ( -8:.5:8) ; R = sqrt ( X .^2 + Y .^2) + eps ; Z = sin ( R ) ./ R ; mesh (X ,Y , Z )

3. surf(x,y,z): crea un gráfico de superficie tridimensional. La función traza los valores de la matriz Z como alturas superiores a una cuadrícula en el plano x-y definido por X e Y. La función también utiliza Z para los datos de color, por lo que el color es proporcional a la altura.

23

3.3

Gráficos específicos | Capitulo III

Figura No 3.14: Función surf.

1 2 3

[X , Y ] = meshgrid (1:0.5:10 ,1:20) ; Z = sin ( X ) + cos ( Y ) ; surf (X ,Y , Z )

4. meshc(z): crea un gráfico con la combinación de malla (mesh) y contorno (contour). Figura No 3.15: Función meshc.

1 2 3 4

figure [X , Y ] = meshgrid ( -3:.125:3) ; Z = peaks (X , Y ) ; meshc ( Z )

3.3 Gráficos específicos 1. Diagrama circular: Funciones pie (en 2D) y pie3(en 3D). 24

3.3

Gráficos específicos | Capitulo III

Figura No 3.16: Función pie.

1 2 3 4

X = [1 3 0.5 2.5 2]; ax1 = subplot (2 ,2 ,1) ; pie ( X ) title ( ax1 , ’ Diagrama circular ’) ;

5 6 7 8 9 10

X = [1 3 0.5 2.5 2]; ax2 = subplot (2 ,2 ,2) ; explode = [0 1 0 1 0]; pie (X , explode ) title ( ax2 , ’ Diagrama circular explotado ’) ;

11 12 13 14 15

X = [0.19 0.22 0.41]; ax3 = subplot (2 ,2 ,3) ; pie ( X ) title ( ax3 , ’ Diagrama sin una tajada ’) ;

16 17 18 19 20 21

x = [1 ,3 ,0.5 ,2.5 ,2]; explode = [0 ,1 ,0 ,0 ,0]; ax4 = subplot (2 ,2 ,4) ; pie3 (x , explode ) title ( ax4 , ’ Diagrama circular 3 D ’) ;

25

3.3

Gráficos específicos | Capitulo III

2. Diagrama de barras: Función bar

1 2 3

y = [1 2 3; 4 5 6]; ax1 = subplot (1 ,2 ,1) ; bar ( ax1 , y )

4 5 6

ax2 = subplot (1 ,2 ,2) ; bar ( ax2 ,y , ’ stacked ’) Figura No 3.17: Función bar.

3. Histogramas: Función histogram.

1 2 3 4 5 6 7

8

x = 2* randn (5000 ,1) + 5; histogram (x , ’ Normalization ’ , ’ pdf ’) hold on y = -5:0.1:15; mu = 5; sigma = 2; f = ←exp ( -(y - mu ) .^2./(2* sigma ^2) ) ./( sigma * sqrt (2* pi ) ) ; plot (y ,f , ’ LineWidth ’ ,1.5)

26

3.4 Gráficos de propósito especial | Capitulo III

Figura No 3.18: Función histogram.

3.4 Gráficos de propósito especial 1. convexhull: Dibuja la envolvente convexa (menor polígono que encierra un conjunto de puntos en un plano). 2. delauney: Crea un conjunto de triángulos tal que ningún punto se encuentra en un círculo circunscrito de un triángulo. La salida de delauney se grafica con triplot (función para dibujar triángulo en un plano). 3. voronoi: Dibuja un polígono convexo alrededor de cada punto P tal que cada segmento de línea del polígono es el bisector perpendicular entre P y sus vecinos. Figura No 3.19: Funciones convexhull, delauney, voronoi.

3.5 Problema propuesto 1. Representa la superficie engendrada por una circunferencia de radio 1, cuyo centro es (2,0,0), al girar en torno a un eje situado en su mismo plano. Resolución: Sea C una circunferencia situada en el plano XZ con centro en (a,0,0) y radio b, que gira en torno al eje Z. Las coordenadas de un punto (r,z) de la misma se 27

3.5 Problema propuesto | Capitulo III

expresan en función del ángulo t como: r=a+bcost, z=bsent, con t ∈ [0,2π ]. Al girar entorno a Z, el punto (r,0,z) recorre las posiciones (x,y,z), siendo: x=rcoss, y=rsens, siendo s ∈ [0,2π] el ángulo de giro. Esta parametrización representa la superficie tórica mediante el siguiente código:

1 2 3 4 5 6 7 8 9 10 11 12 13 14

a =2; b =1; s =0: pi /10:2* pi ; t =0: pi /10:2* pi ; [T , S ]= meshgrid (t , s ) ; R = a + b * cos ( T ) ; Z = b * sin ( T ) ; X = R .* cos ( S ) ; Y = R .* sin ( S ) ; mesh (X ,Y , Z ) axis equal pause surf (X ,Y , Z ) axis equal Figura No 3.20: Gráfico de un toro.

28

CAPÍTULO

IV

FICHEROS SCRIPT

Para escribir un programa o fichero de comandos habrá que crear un fichero que tenga extensión .m, los pasos a seguir son: Figura No 4.1: Creación de fichero script.

29

4.1 Ejecución de un fichero Script | Capitulo IV

4.1 Ejecución de un fichero Script Se puede ejecutar el código escrito con el botón RUN o pulsando la tecla F5, o bien escribiendo en el Command Windows el nombre de la función. Figura No 4.2: Ejecución de fichero script.

4.2 Lectura y escritura de variables interactivas 1. Input: La función input permite imprimir un mensaje en la línea de comandos de MATLAB y recuperar como valor de retorno un valor numérico o el resultado de una expresión tecleada por el usuario.

1

n = input ( ’ Ingrese el dato : ’)

2. Disp: La función disp permite imprimir en pantalla un mensaje de texto o el valor de una matriz, pero sin imprimir su nombre.

1 2 3

disp ( ’ El programa ha terminado : ’) A = rand (2 ,2) disp ( A )

4

30

4.3

Importación y exportación de datos | Capitulo IV

El programa ha terminado : A = 0.27862 0.9266 0.57438 0.34119 0.27862 0.9266 0.57438 0.34119

5 6 7 8 9 10

3. Salidad con formato fprintf: Además de exhibir tanto texto como valores de matrices, podemos especificar el formato que se usará al exhibir los valores, y también saltos de línea. La sintaxis es la siguiente: fprintf (formato, matrices) El formato contiene el texto y las especificaciones de formato para las salidas, y va seguido de los nombres de las matrices por exhibir. Dentro de los formatos se usan los especificadores y es necesario que utilice un operador de precisión para especificar el número de dígitos después del punto decimal: • • • • •

1 2 3

%e: valores se exhiben en notación exponencial. %f: valores se exhiben en notación decimal. %d: valores se exhiben en entero con signo. %g: valores usarán %e o %f el que sea más corto. n: la cadena se exhibirá hasta donde aparezca y el resto de la información se exhibirá en la siguiente línea.

A1 = [5.5 ,8.8 ,7.7 ,9.9;5500 ,8800 ,7700 ,9900] formatSpec = ’X is %4.2 f meters or %8.3 f mm \ n ’; fprintf ( formatSpec , A1 )

4 5 6 7 8 9 10 11

A1 = 5.5 5500 X is X is X is X is

5.50 8.80 7.70 9.90

8.8 8800 meters or meters or meters or meters or

7.7 7700 5500.000 mm 8800.000 mm 7700.000 mm 9900.000 mm

9.9 9900

%4.2f especifica que la salida es un número con un ancho de campo de cuatro dígitos, incluidos dos dígitos después del punto decimal.

4.3 Importación y exportación de datos Matlab es un software comúnmente utilizado para el análisis de datos experimentales que pueden provenir de distintas fuentes, incluidos otros programas. La forma de procesar estos datos externos (números o texto) es importarlos, y de forma análoga exportarlos a 31

4.3

Importación y exportación de datos | Capitulo IV

otras aplicaciones. Microsoft Excel utiliza datos altamente compatibles con bastantes tipos de aplicaciones y para transferir datos desde/hacia hojas de cálculo Excel se utilizan los siguientes comandos:

4.3.1

Importación de datos

Se utiliza el comando xlsread para importar los datos de una hoja de cálculo Excel a una variable de tipo array. nombre variable=xlsread(’nombre archivo’) • La ubicación del archivo debe ser el directorio de trabajo actual o bien estar en la ruta de búsqueda. • Si el archivo Excel importado tiene más de una hoja de cálculo sólo se importan los datos de la primera de las hojas. Figura No 4.3: Hoja de cálculo ’base.xlsx’

• Si se desea importar datos de una hoja en específico: nombre variable=xlsread(’nombre archivo’,’nombre hoja’)

1 2 3 4 5

>> num = xlsread ( ’ base . xlsx ’) num = 1 2 3 4 5 6 7 8 9

• Si se desea importar sólo una región de una hoja de cálculo: nombre variable=xlsread(’nombre archivo’,’nombre hoja’,’rango’)

32

4.3

1 2 3 4 5 6 7 8 9

Importación y exportación de datos | Capitulo IV

>> val = xlsread ( ’ base . xlsx ’ ,2 , ’ A1 : B3 ’) val = 1 3 3 5 >> val = xlsread ( ’ base . xlsx ’ ,2) val = 1 3 2 3 5 6 5 7 10

• Si se desean los datos numéricos, los datos de texto y los datos combinados del archivo de Excel sin procesar.

1 2 3 4 5 6 7 8 9 10 11 12

4.3.2

>> [ num , txt , raw ]= xlsread ( ’ base . xlsx ’ ,2) num = 1 3 2 3 5 6 5 7 10 txt = ’ datos ’ ’a ’ ’b ’ raw = ’ datos ’ ’a ’ ’b ’ [ 1] [3] [ 2] [ 3] [5] [ 6] [ 5] [7] [10]

Exportación de datos

Se utiliza el comando xlswrite para la exportación de datos Matlab a una hoja Excel. xlswrite(’nombre archivo’,nombre variable)

1 2 3

valores ={1 ,2 ,3;4 ,5 , ’x ’ ;7 ,8 ,9}; encabezados ={ ’ Primero ’ , ’ Segundo ’ , ’ Tercero ’ }; xlswrite ( ’ exportacion . xlsx ’ ,[ encabezados ; valores ])

33

4.3

Importación y exportación de datos | Capitulo IV

Figura No 4.4: Hoja de cálculo resultante ’exportacion.xlsx’

• El archivo debe estar en el directorio actual, o si no existe, se crea uno automáticamente con el nombre especificado. • Si se desea exportar los datos a una hoja concreta, dentro de un rango específico: xlswrite(’nombre archivo’,’nombre hoja’,’rango’)

1 2 3

valores ={1 ,2 ,3;4 ,5 , ’x ’ ;7 ,8 ,9}; encabezados ={ ’ Primero ’ , ’ Segundo ’ , ’ Tercero ’ }; xlswrite ( ’ base . xlsx ’ ,[ encabezados ; valores ] , ’ Datos ’) Figura No 4.5: Hoja de cálculo resultante ’base.xlsx’

34

CAPÍTULO

V

FICHEROS FUNCTION

5.1 Creación de un fichero de función La implementación de tareas que pueden servir para diferentes programas se realiza en Matlab a través de los archivos de funciones (function). La extensión de estos archivos también es .m Figura No 5.1: Creación de fichero function.

35

5.2

Estructura de un fichero de función | Capitulo V

Una de las diferencias de los archivos de tipo function respecto a los ficheros script es la posibilidad de utilizar argumentos, tanto de entrada ("datos") como de salida ("resultados"). Su funcionamiento es análogo a otras funciones de Matlab.

5.2 Estructura de un fichero de función En la primera línea de un archivo de función se especifican los argumentos de entrada y de salida y el nombre de la función. Debe seguir el formato siguiente: function[Arg. de Salida]=nombrefuncion(Arg. de Entrada)

1 2 3 4

function [ output_args ] = Untitled ( input_args ) % Lineas de comentarios % Ordenes que hacen los calculos end

Es conveniente que los nombres de la función y del fichero coincidan. Para ejecutar la function se realiza como en las órdenes normales, es decir, en la ventana de comandos o en otro fichero script. Los argumentos tanto de entrada como de salida pueden ser varios, separados por comas. Las variables definidas en la función son locales, es decir, los nombres de las variables pueden ser los mismos que en otros programas o funciones.

5.3 Ejemplos de aplicación Construya una función raices.m que calcule las raíces de un polinomio de segundo grado ax2 + bx + c. Verifique su funcionamiento con x2 − 3x + 2. Solución:

1 2

3 4 5

function [ x1 , x2 ]= raices (a ,b , c ) % Funcion que calcula en x1 y x2 las raices de un ←polinomio de segundo grado ax ^2+ bx + c =0 x1 =( - b + sqrt ( b *b -4* a * c ) ) /(2* a ) ; x2 =( -b - sqrt ( b *b -4* a * c ) ) /(2* a ) ; end

y se guarda en el fichero raices.m (mismo nombre que la función). Para su aplicación a la ecuación pedida se ejecuta la siguiente instrucción:

1 2 3

> >[x , y ]= raices (1 , -3 ,2) x =2 y =1

36

5.4

Funciones simbólicas | Capitulo V

5.4 Funciones simbólicas El concepto de variable simbólica se puede asimilar al concepto de variable independiente en matemáticas.

5.4.1

Construcción de funciones simbólicas

Para su construcción se requiere: 1. Declarar las variables simbólicas: Se utiliza la orden syms y a continuación se construye la expresión de la función:

1 2

syms x f =(2* x ^2 -1) /( x ^3 -2* x ^2+2* x -1)

La variable f es ahora una expresión simbólica (symbolic object). Se puede utilizar cualquier nombre, o declarar varias variables, u operar con estas expresiones. 2. Realizar cálculos matemáticos entre ellos: Cuadro No 5.1 : Funciones matemáticas para expresiones simbólicas.

1 2 3 4 5 6 7 8 9 10 11 12 13 14

Funciones

Descripción

subs

sustituye el valor de una variable

limit

calcula el límite

diff

calcula la derivada

int

calcula la integral

solve

resuelve ecuaciones

>> syms x f =(2* x ^2 -1) /( x ^3 -2* x ^2+2* x -1) f = (2* x ^2 - 1) /( x ^3 - 2* x ^2 + 2* x - 1) >> subs (f ,x ,0) % f (0) , sustituye x por 0 en f : ans = 1 >> solve ( f ) % Resuelve la ecuacion f ( x ) =0 ans = -2^(1/2) /2 2^(1/2) /2 >> diff ( f ) % Calcula la derivada de f ans = (4* x ) /( x ^3 - 2* x ^2 + 2* x - 1) - ((2* x ^2 - ←1) *(3* x ^2 - 4* x + 2) ) /( x ^3 - 2* x ^2 + 2* x - 1) ^2 37

5.5

15 16 17

5.4.2

Problemas propuestos | Capitulo V

>> int ( f ) % Calcula la integral de f ans = log ( x - (3^(1/2) *1 i ) /2 - 1/2) /2 + log ( x + ←(3^(1/2) *1 i ) /2 - 1/2) /2 + log ( x - 1) - ←(3^(1/2) * log ( x - (3^(1/2) *1 i ) /2 - 1/2) *5 i ) /6 + ←(3^(1/2) * log ( x + (3^(1/2) *1 i ) /2 - 1/2) *5 i ) /6

Conversión de formato simbólico a inline

Para pasar una expresión simbólica al formato numérico (inline), se puede utilizar la orden inline con la particularidad de que hay que convertir primeramente la expresión simbólica en cadena de caracteres a través de la orden char.

1 2 3 4 5 6 7

>> fn = inline ( char ( f ) ) fn = Inline function : fn ( x ) = (2* x ^2 - 1) /(2* x - 2* x ^2 + x ^3 - 1) >> fn (0) ans = 1

Si lo que queremos es que las operaciones sean elemento a elemento, se realiza con la combinación de la orden inline y vectorize.

1 2 3 4

>> fn = inline ( vectorize ( f ) ) fn = Inline function : fn ( x ) =(2.* x .^2 -1) ./( x .^3 -2.* x .^2+2.* x -1)

5.5 Problemas propuestos Cinemática de una partícula: Dado el vector posición de un punto: Hallar las coordenadas del centro de curvatura "C".

38

CAPÍTULO

A

ANEXOS.

1.1 Resumen de funciones de Matlab

45

Anexos

46

Anexos

47

Anexos

48

Anexos

49

Anexos

50

Anexos

51