SlideShare una empresa de Scribd logo
1 de 18
PRESENTACIÓN:
OTROSTIPOS DE ARREGLOS
• El tipo de datos (también llamado clase) principal en MATLAB es el arreglo o
matriz
• Dentro del arreglo, MATLAB soporta algunos tipos diferentes de datos
secundarios.
• En general, todos los datos dentro de un arreglo deben ser del mismo tipo
OTROS ASPECTOS:
• MATLAB también incluye funciones para convertir entre tipos de datos y
tipos de arreglos, para almacenar diferentes tipos de datos en el mismo
arreglo (arreglos celda y estructura)
CUADRO DETIPOS ED DATOS QUER
SE PUEDE ALMACENAR EN MATLAB
ARREGLOS MULTIDIMENSIONALES
• Los arreglos pueden ser:
• Unidimensionales (vectores)
• Bidimensionales (matrices)
• Mas de dos dimensiones (hipermatrices)
MATRIZ
• Una matriz es un arreglo bidimensional, es una sucesión de números
distribuidos en filas y columnas.
• En MATLAB, una matriz se puede definir al escribir una lista de números
encerrada entre corchetes. Los números se pueden separar mediante espacios o
comas. Las nuevas filas se indican con punto y coma.
• También se puede definir una matriz al hacer una lista de cada fila en una línea
separada, incluso no necesita el punto y coma para la nueva línea basta con un
enter.
• >>A = [1 2 3; 4 5 6] % es una matriz con 2 filas y 3 columnas
• A =1 2 34 5 6
• >>A = [1 2 3;4 5 6]
• A =1 2 3 4 5 6
• >>A = [1 2 3 4 5 6]
• A = 1 2 3 4 5 6
• Matlab tiene además otra forma de identificar cada elemento de una matriz,
de modo que podemos acceder a un elemento de una matriz indicando sólo
un valor y no dos, pero debemos saber que el orden elegido por MATLAB es
por columnas así los elementos de la matriz A del ejemplo anterior serían
denominados:
• Ejemplos
• >>A = [1 2 3; 4 5 6] ;
• >>A(5)%accede al elemento
• A(1,3)
• ans=3
• Matlab Cadenas de caracteres 4 Una matriz de caracteres es una matriz
cuyos elementos son caracteres.Todas las filas de una matriz de caracteres
deben tener el mismo número de elementos. Si es preciso, las cadenas
(filas) más cortas se completan con blancos.
• La función char"ajusta" un arreglo carácter con espacios, de modo que cada
fila tenga el mismo número de elementos.
• double(c) convierte en números ASCII cada carácter
• char(v)convierte un vector de números v en una cadena de caracteres
• char(c1,c2) crea una matriz de caracteres, completando con blancos las cadenas más cortas
• deblank(c) elimina los blancos al final de una cadena de caracteres
• disp(c) imprime el texto contenido en la variable
• cischar(c) detecta si una variable es una cadena de caracteres
• isletter() detecta si un carácter es una letra del alfabeto.
• isspace() detecta si un carácter es un espacio en blanco.
• strcmp(c1,c2)comparación de cadenas. Si las cadenas son iguales devuelve un uno, y si no lo
son, devuelve un cero.
• strcmpi(c1,c2)igual que strcmp(c1,c2), pero ignorando la diferencia entre mayúsculas y
minúsculas.
• strncmp(c1,c2,n)compara los n primeros caracteres de dos cadenasc1==c2 compara dos
cadenas carácter a carácter.
OTROS:
• num2str(x,n) convierte un número real x en su expresión por medio de una
cadena de caracteres, con cuatro cifras decimales por defecto
• str2double(str) convierte una cadena de caracteres representando un número real
en el número real correspondiente
• Las funciones para cadenas de caracteres están en el
• sub-directorio toolboxmatlabstrfundel directorio en que esté instalado MATLAB.
• Un arreglos de celdas es un arreglo de MATLAB en el cual los elementos son
celdas.
• Las celdas son contenedores que pueden contener otros arreglos de
MATLAB
• Por ejemplo, una celda puede contener un arreglo de números reales, otra
un arreglo de strings y otra un vector de
• números complejos.
Un arreglo de celdas se puede crear a través de dos mecanismos:
• Asignación
• Uso de funciones
• A(1,1)={[1 4; 0 5]}
• A(1,2)={’Edgar Poe’}
• A(2,1)={3 + 7i}
• A(2,2)={pi}
• cell(m,n ) crea un cellarray vacío de m filas y n columnas
• celldisp(ca) muestra el contenido de todas las celdas de ca
• cellplot(ca) muestra una representación gráfica de las distintas celdas
• iscell(ca) indica si caes un vector de celdas
• num2cell() convierte un array numérico en un cell array
• cell2struct() convierte un cell array en una estructura
• struct2cell() convierte una estructura en un cell array
• Las estructuras son arreglos de MATLAB que tienen “contenedores de
datos” llamados campos.
• Los campos de una estructura pueden contener cualquier tipo de datos.
• Las estructuras son las componentes básicas de las llamadas “base de
datos”.
• ¿Cómo construir estructuras?
• Mediante asignaciones
• Usando la función struct
• Usando asignación:
>>paciente.nombre=’Laura Carmona’
>>paciente.edad= 28
>>paciente.isapre=’La Muerte’
>>paciente.presion=[13 8]
paciente =
nombre: ’Laura Carmona’
edad: 28
isapre: ’La Muerte’
presion: [13 8]
• fieldnames() devuelve un vector de celdas con cadenas de caracteres que
recogen los nombres de los campos de una estructura
• isfield(ST, s) permite saber si la cadena s es un campo de una estructura ST
• isstruct(ST) permite saber si ST es o no una estructura
• rmfield(ST, s) elimina el campo s de la estructura ST
• getfield(ST, s) devuelve el valor del campo especificado.
• setfield(ST,s,v) da el valor v al campo s de la estructura ST.
BIBLIOGRAFIA
• http://www.utm.mx/~vero0304/HCPM/5-Arreglos-Vectores.pdf
• http://www.utm.mx/~vero0304/HCPM/6-Arreglos-Matrices.pdf
• http://www.utm.mx/~vero0304/HCPM/18-Tipos-de-datos.pdf
• https://www.inf.utfsm.cl/~cvalle/CAplicada/Capitulo6.pdf

Más contenido relacionado

La actualidad más candente

Arreglos Bidimensionales
Arreglos BidimensionalesArreglos Bidimensionales
Arreglos Bidimensionales
guestefc95b
 
Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314
Edward Mejia Gomez
 
Funciones de numeros complejos
Funciones de numeros complejosFunciones de numeros complejos
Funciones de numeros complejos
Sandritat
 
Estructura De Datos Unidad Ii
Estructura De Datos Unidad IiEstructura De Datos Unidad Ii
Estructura De Datos Unidad Ii
danyyel123
 

La actualidad más candente (18)

Arreglos Bidimensionales
Arreglos BidimensionalesArreglos Bidimensionales
Arreglos Bidimensionales
 
Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314
 
Funciones de numeros complejos
Funciones de numeros complejosFunciones de numeros complejos
Funciones de numeros complejos
 
Vectores y matrices
Vectores y matricesVectores y matrices
Vectores y matrices
 
Curso lisp
Curso lispCurso lisp
Curso lisp
 
Estructura De Datos Unidad Ii
Estructura De Datos Unidad IiEstructura De Datos Unidad Ii
Estructura De Datos Unidad Ii
 
cap8.pdf
cap8.pdfcap8.pdf
cap8.pdf
 
Estructuras lineales unidad 3
Estructuras lineales unidad 3Estructuras lineales unidad 3
Estructuras lineales unidad 3
 
Colecciones en Scala
Colecciones en ScalaColecciones en Scala
Colecciones en Scala
 
Arreglos
ArreglosArreglos
Arreglos
 
Estructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras LinealesEstructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras Lineales
 
Lenguaje Lisp
Lenguaje LispLenguaje Lisp
Lenguaje Lisp
 
Estructura de datos_Listas encadenadas presentacion
Estructura de datos_Listas encadenadas  presentacionEstructura de datos_Listas encadenadas  presentacion
Estructura de datos_Listas encadenadas presentacion
 
Arreglos unidimensionales
Arreglos unidimensionalesArreglos unidimensionales
Arreglos unidimensionales
 
12-Unidad 3: Encapsulamiento y modularidad
12-Unidad 3: Encapsulamiento y modularidad12-Unidad 3: Encapsulamiento y modularidad
12-Unidad 3: Encapsulamiento y modularidad
 
Array
Array Array
Array
 
Sesion 5
Sesion 5Sesion 5
Sesion 5
 
Matrices trasposicion de m. parte 4
Matrices   trasposicion de m. parte 4Matrices   trasposicion de m. parte 4
Matrices trasposicion de m. parte 4
 

Similar a Tema 5 otros_tipos_de_arreglos

Matlab introducción-clase3
Matlab introducción-clase3Matlab introducción-clase3
Matlab introducción-clase3
Maggy Judith
 
Clase1_Matrices.pptx
Clase1_Matrices.pptxClase1_Matrices.pptx
Clase1_Matrices.pptx
VctorChacn3
 
11d.-ALGEBRA-DE-MATRICES-4.pdf
11d.-ALGEBRA-DE-MATRICES-4.pdf11d.-ALGEBRA-DE-MATRICES-4.pdf
11d.-ALGEBRA-DE-MATRICES-4.pdf
aishalopez11
 
11d.-ALGEBRA-DE-MATRICES-4.pdf
11d.-ALGEBRA-DE-MATRICES-4.pdf11d.-ALGEBRA-DE-MATRICES-4.pdf
11d.-ALGEBRA-DE-MATRICES-4.pdf
georgegio
 

Similar a Tema 5 otros_tipos_de_arreglos (20)

Matlab2
Matlab2Matlab2
Matlab2
 
Intro matlab msantos
Intro matlab msantosIntro matlab msantos
Intro matlab msantos
 
Arreglos
ArreglosArreglos
Arreglos
 
Matlab introducción-clase3
Matlab introducción-clase3Matlab introducción-clase3
Matlab introducción-clase3
 
Clase1_Matrices.pptx
Clase1_Matrices.pptxClase1_Matrices.pptx
Clase1_Matrices.pptx
 
Cadenas y funciones de cadena
Cadenas y funciones de cadenaCadenas y funciones de cadena
Cadenas y funciones de cadena
 
Cadenas y funciones de cadena
Cadenas y funciones de cadenaCadenas y funciones de cadena
Cadenas y funciones de cadena
 
Matlab
MatlabMatlab
Matlab
 
Matlab
MatlabMatlab
Matlab
 
06 - Arrays y matrices en lenguaje C
06 - Arrays y matrices en lenguaje C06 - Arrays y matrices en lenguaje C
06 - Arrays y matrices en lenguaje C
 
Cuaderno digital
Cuaderno digitalCuaderno digital
Cuaderno digital
 
Matlab
MatlabMatlab
Matlab
 
Matlab
MatlabMatlab
Matlab
 
Cuaderno
CuadernoCuaderno
Cuaderno
 
Cuaderno
CuadernoCuaderno
Cuaderno
 
ALGEBRA-DE-MATRICES.pdf
ALGEBRA-DE-MATRICES.pdfALGEBRA-DE-MATRICES.pdf
ALGEBRA-DE-MATRICES.pdf
 
MATRICES, SISTEMA DE ECUACIONES LINEALES Y DETERMINANTES
MATRICES, SISTEMA DE ECUACIONES LINEALES Y DETERMINANTESMATRICES, SISTEMA DE ECUACIONES LINEALES Y DETERMINANTES
MATRICES, SISTEMA DE ECUACIONES LINEALES Y DETERMINANTES
 
11d.-ALGEBRA-DE-MATRICES-4.pdf
11d.-ALGEBRA-DE-MATRICES-4.pdf11d.-ALGEBRA-DE-MATRICES-4.pdf
11d.-ALGEBRA-DE-MATRICES-4.pdf
 
11d.-ALGEBRA-DE-MATRICES-4.pdf
11d.-ALGEBRA-DE-MATRICES-4.pdf11d.-ALGEBRA-DE-MATRICES-4.pdf
11d.-ALGEBRA-DE-MATRICES-4.pdf
 
Tablas en html
Tablas en htmlTablas en html
Tablas en html
 

Último

S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
samuelsan933
 
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdfUC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
refrielectriccarlyz
 

Último (20)

Análisis de Costos y Presupuestos CAPECO
Análisis de Costos y Presupuestos CAPECOAnálisis de Costos y Presupuestos CAPECO
Análisis de Costos y Presupuestos CAPECO
 
Determinación de espacios en la instalación
Determinación de espacios en la instalaciónDeterminación de espacios en la instalación
Determinación de espacios en la instalación
 
27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt
 
Matrices Matemáticos universitario pptx
Matrices  Matemáticos universitario pptxMatrices  Matemáticos universitario pptx
Matrices Matemáticos universitario pptx
 
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der RoheAportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
 
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALESCAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
 
Auditoría de Sistemas de Gestión
Auditoría    de   Sistemas     de GestiónAuditoría    de   Sistemas     de Gestión
Auditoría de Sistemas de Gestión
 
1. Equipos Primarios de una Subestaciones electricas
1. Equipos Primarios de una Subestaciones electricas1. Equipos Primarios de una Subestaciones electricas
1. Equipos Primarios de una Subestaciones electricas
 
docsity-manzaneo-y-lotizacion para habilitacopm urbana
docsity-manzaneo-y-lotizacion para habilitacopm urbanadocsity-manzaneo-y-lotizacion para habilitacopm urbana
docsity-manzaneo-y-lotizacion para habilitacopm urbana
 
TAIICHI OHNO, historia, obras, reconocimientos
TAIICHI OHNO, historia, obras, reconocimientosTAIICHI OHNO, historia, obras, reconocimientos
TAIICHI OHNO, historia, obras, reconocimientos
 
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEstadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
 
Video sustentación GA2- 240201528-AA3-EV01.pptx
Video sustentación GA2- 240201528-AA3-EV01.pptxVideo sustentación GA2- 240201528-AA3-EV01.pptx
Video sustentación GA2- 240201528-AA3-EV01.pptx
 
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
 
Presentación Instrumentos de Medicion Electricos.pptx
Presentación Instrumentos de Medicion Electricos.pptxPresentación Instrumentos de Medicion Electricos.pptx
Presentación Instrumentos de Medicion Electricos.pptx
 
G4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptx
G4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptxG4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptx
G4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptx
 
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
 
5. MATERIALES petreos para concreto.pdf.
5. MATERIALES petreos para concreto.pdf.5. MATERIALES petreos para concreto.pdf.
5. MATERIALES petreos para concreto.pdf.
 
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptTippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
 
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdfUC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
 
entropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemasentropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemas
 

Tema 5 otros_tipos_de_arreglos

  • 2. OTROSTIPOS DE ARREGLOS • El tipo de datos (también llamado clase) principal en MATLAB es el arreglo o matriz • Dentro del arreglo, MATLAB soporta algunos tipos diferentes de datos secundarios. • En general, todos los datos dentro de un arreglo deben ser del mismo tipo
  • 3. OTROS ASPECTOS: • MATLAB también incluye funciones para convertir entre tipos de datos y tipos de arreglos, para almacenar diferentes tipos de datos en el mismo arreglo (arreglos celda y estructura)
  • 4. CUADRO DETIPOS ED DATOS QUER SE PUEDE ALMACENAR EN MATLAB
  • 5. ARREGLOS MULTIDIMENSIONALES • Los arreglos pueden ser: • Unidimensionales (vectores) • Bidimensionales (matrices) • Mas de dos dimensiones (hipermatrices)
  • 6. MATRIZ • Una matriz es un arreglo bidimensional, es una sucesión de números distribuidos en filas y columnas. • En MATLAB, una matriz se puede definir al escribir una lista de números encerrada entre corchetes. Los números se pueden separar mediante espacios o comas. Las nuevas filas se indican con punto y coma. • También se puede definir una matriz al hacer una lista de cada fila en una línea separada, incluso no necesita el punto y coma para la nueva línea basta con un enter.
  • 7. • >>A = [1 2 3; 4 5 6] % es una matriz con 2 filas y 3 columnas • A =1 2 34 5 6 • >>A = [1 2 3;4 5 6] • A =1 2 3 4 5 6 • >>A = [1 2 3 4 5 6] • A = 1 2 3 4 5 6
  • 8. • Matlab tiene además otra forma de identificar cada elemento de una matriz, de modo que podemos acceder a un elemento de una matriz indicando sólo un valor y no dos, pero debemos saber que el orden elegido por MATLAB es por columnas así los elementos de la matriz A del ejemplo anterior serían denominados: • Ejemplos • >>A = [1 2 3; 4 5 6] ; • >>A(5)%accede al elemento • A(1,3) • ans=3
  • 9. • Matlab Cadenas de caracteres 4 Una matriz de caracteres es una matriz cuyos elementos son caracteres.Todas las filas de una matriz de caracteres deben tener el mismo número de elementos. Si es preciso, las cadenas (filas) más cortas se completan con blancos. • La función char"ajusta" un arreglo carácter con espacios, de modo que cada fila tenga el mismo número de elementos.
  • 10. • double(c) convierte en números ASCII cada carácter • char(v)convierte un vector de números v en una cadena de caracteres • char(c1,c2) crea una matriz de caracteres, completando con blancos las cadenas más cortas • deblank(c) elimina los blancos al final de una cadena de caracteres • disp(c) imprime el texto contenido en la variable • cischar(c) detecta si una variable es una cadena de caracteres • isletter() detecta si un carácter es una letra del alfabeto. • isspace() detecta si un carácter es un espacio en blanco. • strcmp(c1,c2)comparación de cadenas. Si las cadenas son iguales devuelve un uno, y si no lo son, devuelve un cero. • strcmpi(c1,c2)igual que strcmp(c1,c2), pero ignorando la diferencia entre mayúsculas y minúsculas. • strncmp(c1,c2,n)compara los n primeros caracteres de dos cadenasc1==c2 compara dos cadenas carácter a carácter.
  • 11. OTROS: • num2str(x,n) convierte un número real x en su expresión por medio de una cadena de caracteres, con cuatro cifras decimales por defecto • str2double(str) convierte una cadena de caracteres representando un número real en el número real correspondiente • Las funciones para cadenas de caracteres están en el • sub-directorio toolboxmatlabstrfundel directorio en que esté instalado MATLAB.
  • 12. • Un arreglos de celdas es un arreglo de MATLAB en el cual los elementos son celdas. • Las celdas son contenedores que pueden contener otros arreglos de MATLAB • Por ejemplo, una celda puede contener un arreglo de números reales, otra un arreglo de strings y otra un vector de • números complejos.
  • 13. Un arreglo de celdas se puede crear a través de dos mecanismos: • Asignación • Uso de funciones • A(1,1)={[1 4; 0 5]} • A(1,2)={’Edgar Poe’} • A(2,1)={3 + 7i} • A(2,2)={pi}
  • 14. • cell(m,n ) crea un cellarray vacío de m filas y n columnas • celldisp(ca) muestra el contenido de todas las celdas de ca • cellplot(ca) muestra una representación gráfica de las distintas celdas • iscell(ca) indica si caes un vector de celdas • num2cell() convierte un array numérico en un cell array • cell2struct() convierte un cell array en una estructura • struct2cell() convierte una estructura en un cell array
  • 15. • Las estructuras son arreglos de MATLAB que tienen “contenedores de datos” llamados campos. • Los campos de una estructura pueden contener cualquier tipo de datos. • Las estructuras son las componentes básicas de las llamadas “base de datos”.
  • 16. • ¿Cómo construir estructuras? • Mediante asignaciones • Usando la función struct • Usando asignación: >>paciente.nombre=’Laura Carmona’ >>paciente.edad= 28 >>paciente.isapre=’La Muerte’ >>paciente.presion=[13 8] paciente = nombre: ’Laura Carmona’ edad: 28 isapre: ’La Muerte’ presion: [13 8]
  • 17. • fieldnames() devuelve un vector de celdas con cadenas de caracteres que recogen los nombres de los campos de una estructura • isfield(ST, s) permite saber si la cadena s es un campo de una estructura ST • isstruct(ST) permite saber si ST es o no una estructura • rmfield(ST, s) elimina el campo s de la estructura ST • getfield(ST, s) devuelve el valor del campo especificado. • setfield(ST,s,v) da el valor v al campo s de la estructura ST.
  • 18. BIBLIOGRAFIA • http://www.utm.mx/~vero0304/HCPM/5-Arreglos-Vectores.pdf • http://www.utm.mx/~vero0304/HCPM/6-Arreglos-Matrices.pdf • http://www.utm.mx/~vero0304/HCPM/18-Tipos-de-datos.pdf • https://www.inf.utfsm.cl/~cvalle/CAplicada/Capitulo6.pdf