You are on page 1of 175

Andrés Pérez

2
da
Edición

MATLAB
Orientado a
la matemática aplicada


Universidad Centroccidental
“Lisandro Alvarado”
Decanato de Ciencias y Tecnología
Licenciatura en Ciencias Matemáticas
Barquisimeto. Estado Lara



MATLAB
Orientado a la matemática aplicada
Segunda Edición



Andrés E. Pérez G.
E-mail: andres.chi.cuadrado@gmail.com



Barquisimeto. Marzo de 2014























A Dios Todopoderoso, mi fuente de lux et veritas.
MATLAB Orientado a la matemática aplicada

CONTENIDO
INTRODUCCIÓN ......................................................................................................................................... 11
OBJETIVO ........................................................................................................................................................... 11
JUSTIFICACIÓN ................................................................................................................................................... 11
¿COMO UTILIZAR ESTE TUTORIAL? ................................................................................................................... 11
CAPITULO 1. COMENZANDO A TRABAJAR CON MATLAB ............................................................................. 12
TÓPICOS ELEMENTALES ..................................................................................................................................... 12
¿Qué es MATLAB? ......................................................................................................................................... 12
Origen ............................................................................................................................................................ 12
Versiones e historia ....................................................................................................................................... 12
¿Qué versión estamos utilizando en este tutorial? ....................................................................................... 12
ENTORNO DE TRABAJO DE MATLAB ................................................................................................................. 13
La ventana de comandos ............................................................................................................................... 14
La ventana de historial de comandos ............................................................................................................ 14
La ventana de directorio actual ..................................................................................................................... 15
La ventana de ayuda ...................................................................................................................................... 15
NÚMEROS, OPERADORES Y VARIABLES ............................................................................................................ 16
Operaciones básicas ...................................................................................................................................... 16
Creación de variables .................................................................................................................................... 16
Funciones matemáticas elementales de MATLAB ........................................................................................ 18
Algunos números especiales ......................................................................................................................... 20
VECTORES .......................................................................................................................................................... 21
MATRICES .......................................................................................................................................................... 24
GUARDANDO, BORRANDO Y LEYENDO ............................................................................................................. 28
El fichero MATLAB.mat .................................................................................................................................. 28
Ficheros .mat ................................................................................................................................................. 29
Ficheros .ascii ................................................................................................................................................. 29
ÚLTIMAS ACLARACIONES PARA TRABAJAR EN MATLAB ................................................................................... 31
Tips................................................................................................................................................................. 31
El punto y coma (;) ......................................................................................................................................... 31
El símbolo % ................................................................................................................................................... 31
4


Andrés Pérez

El comando clc ............................................................................................................................................... 32
Algunas reglas básicas de sintaxis ................................................................................................................. 32
EJERCICIOS 1 ...................................................................................................................................................... 33
CAPITULO 2. ALGORITMOS ......................................................................................................................... 35
COMANDO if ...................................................................................................................................................... 36
Comando if simple ......................................................................................................................................... 36
Comando if múltiple ...................................................................................................................................... 37
COMANDO for ................................................................................................................................................... 38
Comando for simple ...................................................................................................................................... 38
Comando for con especificación de incremento ........................................................................................... 39
Anidamiento de comandos for ...................................................................................................................... 39
COMANDO while ............................................................................................................................................... 40
EJERCICIOS 2 ...................................................................................................................................................... 42
CAPITULO 3. M-Ficheros ............................................................................................................................. 44
FICHEROS SCRIPT ............................................................................................................................................... 46
Paso 1: acceder al editor ............................................................................................................................... 46
Paso 2: estructurar el fichero ........................................................................................................................ 47
Paso 3: guardar el fichero .............................................................................................................................. 47
Paso 4: ejecutar el fichero ............................................................................................................................. 48
¿Realmente que es un fichero script? ........................................................................................................... 49
FICHEROS DE FUNCIÓN ..................................................................................................................................... 51
Paso 1: acceder al editor ............................................................................................................................... 51
Paso 2: estructurar el fichero ........................................................................................................................ 51
Paso 3: guardar el fichero .............................................................................................................................. 53
Paso 4: ejecutar el fichero ............................................................................................................................. 53
¿Realmente que es un fichero de función? ................................................................................................... 54
EL COMANDO help ............................................................................................................................................ 54
COMPARATIVA ENTRE UN FICHERO SCRIPT Y UN FICHERO DE FUNCIÓN ........................................................ 55
EJERCICIOS 3 ...................................................................................................................................................... 57
CAPITULO 4. CÁLCULO SIMBÓLICO.............................................................................................................. 61
FUNCIONES ........................................................................................................................................................ 61
ECUACIONES ...................................................................................................................................................... 63
5


MATLAB Orientado a la matemática aplicada

LÍMITES .............................................................................................................................................................. 66
DERIVADAS ........................................................................................................................................................ 67
INTEGRALES ....................................................................................................................................................... 68
EJERCICIOS 4 ...................................................................................................................................................... 71
CAPITULO 5. GRÁFICOS .............................................................................................................................. 75
GRÁFICOS EN 2D ................................................................................................................................................ 75
Graficando funciones del tipo y=f(x) ............................................................................................................. 75
Graficando curvas paramétricas en el plano ................................................................................................. 77
GRÁFICOS EN 3D ................................................................................................................................................ 79
Graficando funciones del tipo z=f(x,y) .......................................................................................................... 79
Graficando curvas paramétricas en el espacio .............................................................................................. 82
EJERCICIOS 5 ...................................................................................................................................................... 84
CAPITULO 6. ESTADÍSTICA .......................................................................................................................... 86
MEDIDAS DE LOCALIZACIÓN ............................................................................................................................. 86
Media aritmética ........................................................................................................................................... 86
Media geométrica ......................................................................................................................................... 87
Media armónica ............................................................................................................................................. 88
Media ajustada .............................................................................................................................................. 89
Máximo .......................................................................................................................................................... 89
Mínimo .......................................................................................................................................................... 90
Mediana ......................................................................................................................................................... 91
MEDIDAS DE DISPERSIÓN .................................................................................................................................. 91
Desviación estándar ...................................................................................................................................... 91
Varianza ......................................................................................................................................................... 92
Rango ............................................................................................................................................................. 92
Rango intercuartil .......................................................................................................................................... 93
Percentil ......................................................................................................................................................... 93
Quantil ........................................................................................................................................................... 94
Oblicuidad ...................................................................................................................................................... 94
Curtosis .......................................................................................................................................................... 95
Tabla con las frecuencias absolutas y relativas ............................................................................................. 95
Desviación absoluta ....................................................................................................................................... 96
6


Andrés Pérez

Momentos centrales...................................................................................................................................... 97
GRUPOS DE DATOS ............................................................................................................................................ 97
Matriz de covarianza ..................................................................................................................................... 97
Matriz de correlación lineal ........................................................................................................................... 98
Matriz de los coeficientes de correlación ...................................................................................................... 98
Matriz con tabulación-cruzada .................................................................................................................... 100
Resumen estadístico por grupo ................................................................................................................... 100
GRÁFICOS ESTADÍSTICOS ................................................................................................................................. 101
Gráficos simples ........................................................................................................................................... 102
Línea de ajuste de mínimos cuadrados ....................................................................................................... 103
Histograma .................................................................................................................................................. 104
Gráfico de barras verticales ......................................................................................................................... 105
Gráfico de barras horizontales .................................................................................................................... 106
Gráfico de escaleras..................................................................................................................................... 107
Gráfico de tallo ............................................................................................................................................ 108
Gráfico de tarta ............................................................................................................................................ 109
Generación de números al azar ................................................................................................................... 110
Diagramas de distribuciones de probabilidad ............................................................................................. 111
EJERCICIOS 6 .................................................................................................................................................... 112
CAPÍTULO 7. OPTIMIZACIÓN ..................................................................................................................... 114
PROGRAMACIÓN LINEAL ................................................................................................................................. 114
Formato general de un programa lineal ...................................................................................................... 114
Minimización ............................................................................................................................................... 115
Maximización ............................................................................................................................................... 118
PROGRAMACIÓN CUADRÁTICA ....................................................................................................................... 121
EJERCICIOS 7 .................................................................................................................................................... 127
CAPÍTULO 8. MÉTODOS NUMÉRICOS ........................................................................................................ 130
RESOLUCIÓN DE ECUACIONES NO LINEALES ................................................................................................... 130
Método de punto fijo .................................................................................................................................. 130
Método de bisección ................................................................................................................................... 132
Método de Newton ..................................................................................................................................... 135
Método de Euler .......................................................................................................................................... 137
7


MATLAB Orientado a la matemática aplicada

Un método híbrido: Newton-Bisección ....................................................................................................... 139
Método de la Falsa Posición ........................................................................................................................ 142
Método de la Secante .................................................................................................................................. 145
Comandos predefinidos en MATLAB ........................................................................................................... 147
INTERPOLACIÓN POLINOMIAL ........................................................................................................................ 149
Forma de Lagrange ...................................................................................................................................... 149
Forma modificada de Lagrange ................................................................................................................... 151
Forma baricéntrica de Lagrange .................................................................................................................. 153
Forma baricéntrica con nodos igualmente espaciados ............................................................................... 155
Forma de Newton ........................................................................................................................................ 156
Forma de Newton con nodos igualmente espaciados ................................................................................ 158
Comandos predefinidos en MATLAB ........................................................................................................... 161
EJERCICIOS 8 .................................................................................................................................................... 163
CAPÍTULO 9. COMPONENTES DE MATLAB ................................................................................................. 165
EL SOFTWARE BÁSICO MATLAB Y SUS HERRAMIENTAS ADICIONALES ........................................................... 165
MATLAB Report Generador ......................................................................................................................... 165
MATLAB Compiler Suite ............................................................................................................................... 165
MATLAB Runtime Server ............................................................................................................................. 165
MATLAB Web Server ................................................................................................................................... 165
Matriz VB ..................................................................................................................................................... 165
MATLAB Excel Builder .................................................................................................................................. 166
TOOLBOXES DE MATLAB DE APLICACIÓN EN MATEMÁTICA GENERAL .......................................................... 166
Symbolic Math ............................................................................................................................................. 166
Extended Symbolic Math ............................................................................................................................. 166
Database Toolbox ........................................................................................................................................ 166
Excel Link Toolbox........................................................................................................................................ 166
Statistics Toolbox ......................................................................................................................................... 166
Optimization Toolbox .................................................................................................................................. 166
Spline Toolbox ............................................................................................................................................. 166
Partial Differential Equation Toolbox .......................................................................................................... 167
Neural Network Toolbox ............................................................................................................................. 167
TOOLBOXES DE MATLAB DE ADQUISICIÓN DE DATOS .................................................................................... 167
8


Andrés Pérez

Data Acquisition Toolbox ............................................................................................................................. 167
Instrument Control Toolbox ........................................................................................................................ 167
Curve Fitting Toolbox ................................................................................................................................... 167
TOOLBOXES DE MATLAB PARA PROCESADO DE SEÑALES .............................................................................. 167
Signal Processing Toolbox ........................................................................................................................... 168
Filter Desgin Toolbox ................................................................................................................................... 168
Communications Toolbox ............................................................................................................................ 168
Wavelet Toolbox .......................................................................................................................................... 168
System Identification Toolbox ..................................................................................................................... 168
TOOLBOXES DE MATLAB PARA PROCESADO DE IMÁGENES ........................................................................... 168
Image Processing Toolbox ........................................................................................................................... 168
Mapping Toolbox ......................................................................................................................................... 168
TOOLBOXES DE MATLAB EN EL ÁREA FINANCIERA ......................................................................................... 169
Financial Toolbox ......................................................................................................................................... 169
Financial Time Series Toolbox ..................................................................................................................... 169
Financial Derivatives Toolbox ...................................................................................................................... 169
Garch Toolbox .............................................................................................................................................. 169
Datafeed Toolbox ........................................................................................................................................ 169
SIMULACIÓN DE SISTEMAS CON SIMULINK Y SUS HERRAMIENTAS ADICIONALES ......................................... 169
Simulink ....................................................................................................................................................... 169
Stateflow ...................................................................................................................................................... 170
Simulink Report Generator .......................................................................................................................... 170
Simulink Performance Tools ........................................................................................................................ 170
Requirements Management Interface ........................................................................................................ 170
Virtual Reality .............................................................................................................................................. 170
BLOCKSETS DE SIMULINK ................................................................................................................................ 170
DSP Blockset ................................................................................................................................................ 170
Communications Blockset ........................................................................................................................... 170
CDMA Reference Blockset ........................................................................................................................... 171
Fixed-Point Blockset .................................................................................................................................... 171
Dials & Gauges Blockset .............................................................................................................................. 171
Nonlinear Control Design Blockset .............................................................................................................. 171
9


MATLAB Orientado a la matemática aplicada

Power System Blockset ................................................................................................................................ 171
Sym Mechanics Blockset.............................................................................................................................. 171
GENERACIÓN DE CÓDIGO DE SIMULINK ......................................................................................................... 171
Real-Time Workshop ................................................................................................................................... 171
Real-Time Workshop Embedded Coder ...................................................................................................... 171
Stateflow Coder ........................................................................................................................................... 172
IMPLEMENTACIÓN EN TARGETS ..................................................................................................................... 172
Developer’s Kit for Texas Instruments DSP ................................................................................................. 172
Motorola DSP Developer’s Kit. .................................................................................................................... 172
Xilinx’s FPGA System Generator for Simulink .............................................................................................. 172
PROTOTIPAJE ................................................................................................................................................... 172
Real-Time Windows Target ......................................................................................................................... 172
xPC Target .................................................................................................................................................... 172
xPC Target Embedded Option ..................................................................................................................... 173
ANÁLISIS Y DISEÑO DE SISTEMAS DE CONTROL .............................................................................................. 173
Control System Toolbox .............................................................................................................................. 173
Fuzzy Logic Toolbox ..................................................................................................................................... 173
Robust Control Toolbox ............................................................................................................................... 173
μ-Analysis and Synthesis Toolbox ................................................................................................................ 173
LMI Control Toolbox .................................................................................................................................... 173
Model Predictive Control Toolbox ............................................................................................................... 173
Model-Based Calibration Toolbox ............................................................................................................... 173
BIBLIOGRAFÍA .......................................................................................................................................... 174




10


Andrés Pérez

INTRODUCCIÓN
OBJETIVO
En el presente trabajo se pretende dar a conocer las aplicaciones básicas de MATLAB en la matemática
aplicada, y corresponde a un material de ayuda en un curso del software mencionado, orientado a los
estudiantes de Licenciatura en Ciencias Matemáticas del el Decanato de Ciencias y Tecnología de la UCLA. Con
ello se busca fomentar el uso de MATLAB como una herramienta alternativa para estos estudiantes a lo largo
de su carrera.
JUSTIFICACIÓN
Durante el desarrollo de la carrera Licenciatura en Ciencias Matemáticas, se destaca la gran importancia del
modelado, simulación y optimización de fenómenos reales que son objeto de estudio en asignaturas como:
estadística, investigación de operaciones, análisis numérico, programación no lineal, etc. y muchas otras áreas
no solo de la matemática, sino de las ciencias aplicada en general, que requieren un soporte computacional
para su compresión.
Es por esta razón que se considera vital enseñar a los estudiantes de matemática como utilizar el módulo
básico de MATLAB, para así fomentar su motivación a cursar asignaturas de la matemática aplicada y con ello
logren expandir su intelecto académico.
¿COMO UTILIZAR ESTE TUTORIAL?
Esta obra está dividida en nueve capítulos. Los primeros tres corresponden a temas básicos sobre el manejo de
MATLAB: manipulación de variables vectoriales y matriciales, programación estructurada y definición de
M-Ficheros respectivamente.
Los capítulos cuarto y quinto corresponden a: cálculo simbólico y gráficos respectivamente.
En los capítulos subsiguientes (sexto, séptimo y octavo) se dan algunos ejemplos en que MATLAB facilita el
estudio de la matemática aplicada: funciones y procesamiento de datos estadísticos, técnicas de optimización
lineal y no lineal y finalmente implementación de métodos numéricos.
El último capítulo trata sobre los componentes de MATLAB: toolboxes y blocksets. Este tema se colocó al final
para que el lector pueda ahondar más acerca de las aplicaciones del software.
En cada capítulo se da la explicación teórica y ejemplos ilustrativos sobre el tópico tratado, además de una lista
de ejercicios para que lector internalice lo aprendido, sin que ello le obligue a resolverlos para avanzar en los
capítulos restantes. Cabe destacar que algunos ejemplos y/o problemas planteados en cada capítulo se
formulan de manera que el lector aplique las técnicas ilustradas en el mismo (diseñando un algoritmo), pese a
que dichos problemas pudiesen ser resueltos de manera más “practica” (empleando un comando predefinido
en MATLAB). El objetivo que se persigue es que el lector se adiestre en diseñar nuevas formas de revolver
problemas con MATLAB, y no sea dependiente de las funciones ya predefinidas.
11


MATLAB Orientado a la matemática aplicada

CAPITULO 1. COMENZANDO A TRABAJAR CON
MATLAB

TÓPICOS ELEMENTALES
¿Qué es MATLAB?
MATLAB (abreviatura de MATrix LABoratory, “laboratorio de matrices”) es un software matemático que ofrece
un entorno de desarrollo integrado (IDE) el cual permite el análisis y la computación matemáticos interactivos
de forma sencilla con más de 500 funciones matemáticas, estadísticas y técnicas implementadas, así como la
visualización de todo tipo de gráficos de ingeniería y científicos. Posee un lenguaje de programación propio
(lenguaje M) y además está disponible para las plataformas Unix, Windows y Mac OS X.
Entre sus prestaciones básicas se hallan: la manipulación de matrices, la representación de datos y funciones, la
implementación de algoritmos, la creación de interfaces de usuario (GUI) y la comunicación con programas en
otros lenguajes y con otros dispositivos hardware. El paquete MATLAB dispone de dos herramientas
adicionales que expanden sus prestaciones, a saber: SIMULINK (plataforma de simulación multidominio) y
GUIDE (editor de interfaces de usuario - GUI). Además, se pueden ampliar las capacidades de MATLAB con las
cajas de herramientas (toolboxes) y las de Simulink con los paquetes de bloques (blocksets).
Origen
MATLAB fue originalmente desarrollado por Cleve Moler, fundador de MathWorks Inc., con el objetivo de
proporcionar un acceso fácil al software matricial desarrollado en los proyectos de UNIX LINPACK (de LINear
equations PACKage) y EISPACK (de EIgenvalue Subroutines PACKage).
Versiones e historia
La primera versión, a finales de los años 70, se escribió en FORTRAN, siendo la única estructura de datos la
matriz. Posteriormente, en los años 80, MATLAB fue rediseñado en C. La versión 3 para MS-DOS desde
principios de los años 90. En 1993 aparece la versión 4, para Windows 3.11, que ya incorpora la primera versión
del Simulink. Las versiones más recientes se identifican con el nombre del año, así: R2008a, R2008b, R2009a,
etc.

Hoy en día MATLAB es un estándar de facto en ingeniería y computación científica. Se celebran congresos
monotemáticos sobre sus aplicaciones y distintas empresas e instituciones venden sus toolboxes como third
parties o bien las publican en Internet con acceso libre.
¿Qué versión estamos utilizando en este tutorial?
A lo largo de esta obra, utilizaremos la versión MATLAB2007a.



12


Andrés Pérez

ENTORNO DE TRABAJO DE MATLAB

La pantalla de entrada de MATLAB constituye el marco de trabajo general del programa. Los elementos más
importantes de esta pantalla de inicio son los siguientes:
• Comand Window (ventana de comandos): ejecuta las funciones MATLAB.
• Comand History (historial de comandos): presenta una historia de todas las funciones introducidas en
la ventana de comandos y permite copiarlas y ejecutarlas.
• Current Directory (directorio actual): muestra ficheros MATLAB y ejecuta operaciones de ficheros tales
como abrir y buscar contenido.
• Help (ayuda): muestra y busca documentación de toda la familia completa de productos MATLAB.
• Workspace (espacio de trabajo): muestra y realiza cambios en el contenido del espacio de trabajo.
• Array Editor: muestra contenido de arrays en formato de tabla y edita sus valores.
• Editor: crea, edita y comprueba M-Ficheros (mas adelante hablaremos sobre el editor y los M-
Ficheros).

13


MATLAB Orientado a la matemática aplicada

La ventana de comandos

La ventana de comandos es el camino principal para comunicarse con MATLAB. Aparece en el escritorio cuando
se inicia el programa y se utiliza para ejecutar funciones y todo tipo de operaciones. Las entradas a ejecutar se
escriben a continuación del prompt >> y, una vez completadas, se pulsa Enter.
La ventana de historial de comandos

La ventana Comand History aparece cuando se inicia MATLAB, situada en la parte inferior derecha del
escritorio de MATLAB. Esta ventana muestra una relación de las funciones utilizadas recientemente en la
ventana de comandos. También muestra un indicador de comienzo de sesión.


14


Andrés Pérez

La ventana de directorio actual

Su función es ver, abrir y hacer cambios en los ficheros del entorno de MATLAB. Esta ventana permite explorar
los directorios del ordenador en forma análoga a la del explorador u otras aplicaciones de Windows. Cuando se
llega al directorio deseado se muestran allí contenidos. La ventana Current Directory permite ordenarlos por
fecha, tamaño, nombre, etc.

La ventana de ayuda

MATLAB dispone de un sistema de ayuda en línea bastante eficiente. En el panel de la izquierda del navegador
de la ayuda se selecciona el tema, y en el panel de la derecha se presenta la ayuda relativa al tema
seleccionado, siendo posible el uso de hipervínculos para navegar por su contenido. La parte izquierda del
panel de navegación de la ayuda presenta en su zona superior una barra con las opciones Content (ayuda por
15


MATLAB Orientado a la matemática aplicada

contenido), Index (ayuda por índice alfabético), Search (buscar ayuda por tema) y Favorites (temas de ayuda
favoritos).
NÚMEROS, OPERADORES Y VARIABLES
Se puede trabajar con diferentes tipos de números y expresiones numéricas, que abarcan todo el campo de los
números enteros, racionales, reales, complejos, y se utilizan en argumentos de funciones.
Operaciones básicas
Una de las primeras aplicaciones de MATLAB es su uso para la realización de operaciones aritméticas como si
se tratara de una calculadora convencional, pero con una importante ventaja sobre ella: la precisión en el
cálculo. Las operaciones son realizadas bien en forma exacta o bien especificando al programa el grado de
precisión que desee. Los operadores aritméticos tienen la siguiente sintaxis:
x+y Suma
x - y Resta
x*y Multiplicación
x/y División
x^y Potenciación
Operadores aritméticos.
Para que MATLAB ejecute las entradas que le indiquemos, estas deben ser tecleadas en la ventana de
comandos, justamente al lado del prompt >>, luego se pulsa Enter para visualizar la salida.








Creación de variables
MATLAB no requiere ningún tipo de comando para declarar variables, sencillamente crea la variable mediante
la asignación directa de su valor.


EJEMPLO: para hacer el cómputo 1/2+1/3 escribimos en la ventana de comandos
>> 1/2+1/3
luego pulsamos Enter y MATLAB muestra el resultado deseado
ans =
0.8333

16


Andrés Pérez

































EJEMPLO: el cálculo del ejemplo anterior lo podemos hacer utilizando
variables. Escribimos en la ventana de comandos
>>x=1/2
pulsamos Enter y se produce
x =
0.5000
análogamente
>> y=1/3
>>y =
0.3333
ahora calculemos z=x+y
>>z=x+y
z =
0.8333
como la variable z almacena el valor 0.8333, si tipiamos
>>z
y luego pulsamos Enter, MATLAB nos muestra
z =
0.8333
Esto es así, pues el valor asignado a una variable es permanente, hasta
que no se cambie de forma expresa o hasta que no se salga de la presente
sesión de MATLAB, por ejemplo
>>z=10.2
z =
10.2

17


MATLAB Orientado a la matemática aplicada

Cualquier entrada que tenga “punto y coma” a su derecha se ejecuta al pulsar Enter pero no se ve su salida, sin
que esto afecte la operación realizada.












Funciones matemáticas elementales de MATLAB
Un resumen de las funciones elementales del módulo básico de MATLAB se muestra en la siguiente tabla
SINTAXIS EXPLICACIÓN
sqrt(x) Raíz cuadrada
exp(x) Exponencial
log(x) Logaritmo natural (neperiano)
abs(x) Valor absoluto
factorial(n) Factorial
rem(a,b) Resto de la división a/b
sin(x), sinh(x) Seno y seno hiperbólico
cos(x), cosh(x) Coseno y coseno hiperbólico
tan(x), tanh(x) Tangente y tangente hiperbólico
cot(x), coth(x) Cotangente y cotangente hiperbólico
sec(x), sech(x) Secante y secante hiperbólico
csc(x), csch(x) Cosecante y cosecante hiperbólico
EJEMPLO: la sentencia

>>r=2^(1/3);

hace que a la variable r se le asigne el valor de la raíz cúbica de dos, pero no se muestra la asignación.
Verifiquemos que la MATLAB si hizo tal asignación
>>r
r =
1.2599


18


Andrés Pérez

asin(x), asinh(x) Arco seno y arco seno hiperbólico
acos(x), acosh(x) Arco coseno y arco coseno hiperbólico
atan(x), atanh(x) Arco tangente y arco tangente hiperbólico
acot(x), acoth(x) Arco cotangente y arco cotangente
hiperbólico
asec(x), asech(x) Arco secante y arco secante hiperbólico
acsc(x), acsch(x) Arco cosecante y arco cosecante hiperbólico
Funciones matemáticas elementales.


















EJEMPLO:
>> abs(-1)
ans =
1
>> tan(3.14/4)
ans =
0.9992
>> atan(0.9992)
ans =
0.7850
>> exp(1)
ans =
2.7183
>> sqrt(2)
ans =
1.4142

19


MATLAB Orientado a la matemática aplicada

Algunos números especiales
Existe un grupo importante de números irracionales y reales en general que por su utilización merecen trato
especial. MATLAB incorpora los siguientes:
SINTAXIS EXPLICACIÓN
pi Número
exp(1) Número
i Unidad imaginaria
Inf Infinito. Se produce con operaciones como 1/0
NaN Indeterminación. Se produce con operaciones como
0/0 o Inf/Inf
realmin Menor número real positivo utilizable
realmax Mayor número real positivo utilizable
Números especiales.










EJEMPLO:
>> pi
ans =
3.1416
>> i
ans =
0 + 1.0000i
>> realmin
ans =
2.2251e-308
20


Andrés Pérez



VECTORES
Para representar a un vector de n elementos se puede definir en MATLAB una variable de las siguientes
formas:
o Separando los componentes con comas
v=[v1,v2,v3,…,vn]
o Separando los componentes con espacios en blanco
v=[v1 v2 v3 … vn]










Hay formas prácticas de definir ciertos vectores, sin necesidad de escribir explícitamente todos sus elementos.
Se presentan en la tabla siguiente
SINTAXIS EXPLICACIÓN
variable=[a:b] Define el vector cuyos primero y último
elementos son a y b, respectivamente, y los
elementos intermedios se diferencian en una
unidad
variable=[a:s:b] Define el vector cuyos primero y último
elementos son a y b, y los elementos
EJEMPLO:
>> w=[1,2,1,2,1,9]
w =
1 2 1 2 1 9

EJEMPLO:
>> w=[1 2 1 2 1 9]
w =
1 2 1 2 1 9

21


MATLAB Orientado a la matemática aplicada

intermedios se diferencian en la cantidad s
especificada por el incremento
variable=linspace(a,b,n) Define el vector cuyos primero y último
elementos son a y b, y que tiene en total n
elementos uniformemente espaciados entre

variable=logspace(a,b,n) Define el vector cuyos primero y último
elementos son especificados y que tiene en
total n elementos en escala logarítmica
uniformemente espaciados entre sí
Formas de definir vectores.







En MATLAB también se pueden definir vectores fila y vectores columna. Un vector columna se obtiene
separando sus elementos por “punto y coma”.









EJEMPLO:
>>G=[1:0.2:2]
G =
1.0000 1.2000 1.4000 1.6000 1.8000 2.0000

EJEMPLO:
>>h=[0.2;4;5;10]
h =
0.2000
4.0000
5.0000
10.0000

22


Andrés Pérez

Asimismo podemos seleccionar un elemento de un vector o un subconjunto de elementos. La tabla siguiente
nos lo explica
SINTAXIS EXPLICACIÓN
lenght(x) Devuelve la longitud del vector x
x(n) Devuelve el enésimo elemento del vector x
x(a:b) Devuelve los elementos del vector x situados entre el
a-ésimo y el b-ésimo, ambos inclusive.
x(a:p:b) Devuelve los elementos del vector x situados entre el
a-ésimo y el b-ésimo (a<b), ambos inclusive, pero
separados de p en p unidades (p>0)
x(b:p:a) Devuelve los elementos del vector x situados entre el
b-ésimo y el a-ésimo (b>a), ambos inclusive, pero
separados de p en p unidades y empezando por el b-
ésimo (p<0)
Opciones para manipular vectores.













EJEMPLO:
>> z=[1 0 2 0 3 0 4 0 5 0];
>> z(4)
ans =
0
>> z(1:2:10)
ans =
1 2 3 4 5
>> z(10:-2:1)
ans =
0 0 0 0 0
23


MATLAB Orientado a la matemática aplicada

MATRICES
En MATLAB se definen las matrices colocando entre corchetes todos sus vectores fila separados por “punto y
coma”








Una vez que una variable matricial ha sido definida, MATLAB habilita muchos caminos para insertar, extraer,
reenumerar y manipular en general sus elementos. Para ello consultemos la siguiente tabla
SINTAXIS EXPLICACIÓN
det(a) Determinante de la matriz A
inv(A) Devuelve la matriz inversa de A
A’ Devuelve la matriz transpuesta de A
rref(a) Matriz escalonada reducida por filas de Gauss-Jordan
de la matriz A
jordan(a) Forma canónica de Jordan de la matriz A
tril(A) Devuelve la parte triangular inferior de la matriz A
triu(A) Devuelve la parte triangular superior de la matriz A
flipud(A) Devuelve la matriz cuyas filas están colocadas en
orden inverso (de arrida hacia abajo) a las filas de A
fliplr(A) Devuelve la matriz cuyas columnas están colocadas
en orden inverso (de izquierda a derecha) a las de A
diag(A) Extrae la diagonal de la matriz A como vector
EJEMPLO:
>> matrix=[1 2 3;4 5 6;7 8 9]
matrix =
1 2 3
4 5 6
7 8 9

24


Andrés Pérez

columna
reshape(A,m,n) Devuelve la matriz de orden m×n extraída de la
matriz A tomando elementos consecutivos de A por
columnas
size(A) Devuelve el orden (tamaño) de la matriz A
diag(V) Crea una matriz diagonal con el vector v en la
diagonal
eye(n) Crea la matriz identidad de orden n
eye(m,n) Crea la matriz de orden m×n con unos en la diagonal
principal y ceros en el resto
zeros(m,n) Crea la matriz nula de orden m×n
ones(m,n) Crea la matriz de orden m×n con todos sus elementos
iguales a 1
pascal(n) Crea una matriz nxn, la cual es una extracción del
Triángulo de Pascal
magic(n) Crea una matriz mágica, en la cual todas las filas,
columnas y diagonales suman el mismo valor
rosser Devuelve una matriz de valores propios de prueba
A(m,n) Define el elemento

de la matriz A (fila i, columna j)
A(a,:) Define la fila a-ésima de la matriz A
A(:,b) Define la columna b-ésima de la matriz A
A(a:p:b,c:q:d) Define la submatriz de A formada por las filas que hay
entre la a-ésima y la b-ésima tomándolas de p en p y
por las columnas que hay entre la c-ésima y la d-
ésima de q en q
A([a b],[c d]) Define la submatriz de A formada por la intersección
de las filas a-ésima y b-ésima y las columnas c-ésima y
d-ésima
A(a:b,:) Define la submatriz de A formada por todas las
columnas de A y por las filas que hay entre la a-ésima
25


MATLAB Orientado a la matemática aplicada

y la b-ésima
A(:,c:d) Define la submatriz de A formada por todas las filas
de A y por las columnas que hay entre la c-ésima y la
d-ésima
A([a b c …],:) Define la submatriz de A formada por todas las
columnas de A y por las filas a, b, c, …
A(:,[c d e …]) Define la submatriz de A formada por todas las filas
de A y por las columnas c,d e,…
A(:) Define un vector columna cuyos elementos son las
columnas de A situadas por orden una debajo de otra
A(:,:) Equivale a toda la matriz A
[A,B,C,…] Define la matriz formada por las submatrices A, B, C,

Opciones para manipular matrices.














EJEMPLO: definimos la matriz de orden 8×8
>>A=[8 7 3 3 5 1 2 1;
9 2 7 5 4 5 8 9;
5 8 5 1 0 2 1 0;
1 3 5 0 3 6 7 7;
1 2 8 5 1 6 5 7;
2 2 3 7 7 7 9 8;
8 6 7 8 3 4 1 1;
2 4 7 1 5 1 4 4];
visualizamos los 4 bloques de la matriz
>> B1=A(1:4,1:4) %bloque superior izquierdo


26


Andrés Pérez


























B1 =
8 7 3 3
9 2 7 5
5 8 5 1
1 3 5 0
>> B2=A(1:4,5:8) %bloque superior derecho
B2 =
5 1 2 1
4 5 8 9
0 2 1 0
3 6 7 7
>> B3=A(5:8,1:4) %bloque inferior izquierdo
B3 =
1 2 8 5
2 2 3 7
8 6 7 8
2 4 7 1
>> B4=A(5:8,5:8) %bloque inferior derecho
B4 =
1 6 5 7
7 7 9 8
3 4 1 1
5 1 4 4

27


MATLAB Orientado a la matemática aplicada















GUARDANDO, BORRANDO Y LEYENDO
En muchas ocasiones puede resultar necesario interrumpir el trabajo con MATLAB y poderlo recuperar más
tarde en el mismo punto en el que se dejó (con las mismas variables definidas, con los mismos resultados
intermedios, etc.). Hay que tener en cuenta que al salir del programa todo el contenido de la memoria se borra
automáticamente. A continuación explicaremos dos formas de guardar variables (con ficheros .mat y ficheros
.ascii), pero antes debemos saber que es el fichero MATLAB.mat.
El fichero MATLAB.mat
Para guardar el estado de una sesión de trabajo existe el comando save. Si se teclea
>> save
antes de abandonar el programa, MATLAB crea en el directorio actual un fichero binario llamado MATLAB.mat
(o MATLAB), donde almacena la sesión.

Dicho estado puede recuperarse la siguiente vez que se arranque el programa
con el comando load, es decir, tipiando
>> load
ahora recuperamos la matriz A por medio de sus bloques
>> [B1 B2;B3 B4]
ans =
8 7 3 3 5 1 2 1
9 2 7 5 4 5 8 9
5 8 5 1 0 2 1 0
1 3 5 0 3 6 7 7
1 2 8 5 1 6 5 7
2 2 3 7 7 7 9 8
8 6 7 8 3 4 1 1
2 4 7 1 5 1 4 4
28


Andrés Pérez


Esta es la forma básica de los comandos save y load.

Ficheros .mat
Se pueden guardar también las variables de forma selectiva y en ficheros binarios llamados ficheros .mat,
especificando un nombre para dicho fichero. Por ejemplo, el comando
>> save nombre1 a b c
guarda las variables a, b y c en un fichero llamado nombre1.mat (o nombre1).Para recuperarlas en otra sesión
basta tipiar
>> load nombre1
Si no se indica ninguna variable, se guardan todas las variables creadas en esa sesión.

Ficheros .ascii
Resulta que un fichero.mat solo es legible por MATLAB, por ello, si se quiere disponer de dados creados en
MATLAB desde otras aplicaciones, es recomendable guardarlos en un fichero .ascii el cual tiene la siguiente
sintaxis
>> save nombre2 a b c -ascii
De modo que se guardan las variables a, b y c en un fichero llamado nombre2.ascii (o nombre2)
Un resumen de los comandos para manejar variables se cita a continuación:
SINTAXIS EXPLICACIÓN
clear Borra todas las variables del espacio de
trabajo
clear x y z Borra las variables numéricas x, y, z
load Lee todas las variables del fichero
MATLAB.mat
load nombre1 Lee todas las variables del fichero .mat
llamado nombre1
load nombre1 x y z Lee las variables x, y, z del fichero .mat
llamado nombre1
load nombre1 –mat Lee el fichero llamado nombre1 como .mat
sea cual sea su extensión
save Guarda las variables del espacio de trabajo
en el fichero binario MATLAB.mat en el
29


MATLAB Orientado a la matemática aplicada

directorio actual
save nombre1 Guarda las variables del espacio de trabajo en
el fichero .mat llamado nombre1 en el
directorio actual.
save nombre1 x y z Guarda las variables del espacio de trabajo x,
y, z en el fichero fichero.mat llamado
nombre1
who Lista las variables del workspace
whos Lista las variables del workspace con sus
tamaños y tipos
Comandos pata manejar variables
















EJEMPLO:
>> A=[1 2 3 4 5];
>> B=[6 7 8 9 10];
>> save vectores A
>> save VECTORES B -ascii
>> load vectores
>> A
A =
1 2 3 4 5
>> load VECTORES
>> B
B =
6 7 8 9 10
30


Andrés Pérez

ÚLTIMAS ACLARACIONES PARA TRABAJAR EN MATLAB
Tips
• Para teclear un comando, el cursor debe estar situado después del símbolo “>>”, también denominado
prompt.
• Una vez que el comando se ha tecleado y se pulsa la tecla Enter, el comando es ejecutado. Sin
embargo, sólo se ejecuta el último comando. Todo lo ejecutado anteriormente permanece inalterado.
• Se puede teclear más de un comando en una sóla línea. Para ello sólo hay que poner una coma entre
comando y comando. Cuando se pulsa la tecla Enter, todos los comandos se ejecutan de izquierda a
derecha.
• No es posible ir hacia arriba, a una línea anterior, realizar una corrección y ejecutar de nuevo un
comando.
• Un comando anteriormente tecleado puede ser invocado de nuevo. Para ello solo hay que utilizar las
flechas arriba (↑ comando anterior) y abajo (↓ comando porterior) de los cursores para localizar el
comando deseado, visualizando en el prompt y hacer cuantas modificaciones sean necesarias antes de
ejecutarlo de nuevo pulsando la tecla Enter.
• Si un comando es demasiado grande y ocupa más de una línea, este se puede distribuir en un segunda
línea tecleando al final de la primera puntos suspensivos (…) y pulsando la tecla Enter. Seguidamente
se continúa la escritura del comando en la línea siguiente. Un comando de gran tamaño se podría
distribuir en más de una línea hasta un límite máximo de 4096 caracteres.
El punto y coma (;)
Cuando se tecle una sentencia en la ventana de comandos y se pulsa la tecla Enter, el comando es ejecutado
inmediatamente. Cualquier salida que genere el comando se visualizará en la ventana de comandos. Si se
teclea un punto y coma (;) al final del comando, la salida de dicho comando no será visualizada. Esto puede ser
útil cuando el resultado de un comando es obvio o conocido, o cuando, por ejemplo, la salida es demasiado
grande.
Si se teclean varios comandos en la misma línea, la salida de cualquiera de esos comandos no se visualizará si
entre los comandos se escribe un punto y coma en lugar de coma.
El símbolo %
Cuando se teclea el símbolo % (tanto por ciento) al principio de una línea, MATLAB considerará dicha línea
como un comentario. Esto significa que cuando se pulsa la tecla Enter la línea no será ejecutada. El carácter %
seguido de texto (comentario) puede ser utilizado también después de un comando (en la misma línea). El
comentario no tiene ningún efecto sobre la ejecución del comando.
Habitualmente no es necesario poner comentarios en la ventana de comandos. Éstos se utilizan más bien en
programas para añadir descripciones o para explicar partes del código.
31


MATLAB Orientado a la matemática aplicada

El comando clc
El comando clc borra la ventana de comandos. A medida que se van tecleando y ejecutando sentencias en la
ventana de comandos, ésta se va llenando, y una vez que se teclea clc la ventana se limpia. Este comando no
cambia nada que haya sido creado antes, por ejemplo, si previamente se han definido variables, estas aún
seguirán definidas, con sus valores asignados, y podrán seguir usándose normalmente. Esto tampoco afecta a
los comandos que han sido tecleados anteriormente, los cuales pueden ser recuperados pulsando las flechas
arriba y abajo.
Algunas reglas básicas de sintaxis
MATLAB es sensible al uso de mayúsculas y minúsculas, por ello se debe tener cuidado a la hora de tipiar una
variable, un comando, una función, etc. Algunas entradas aparecen en diferentes colores en la ventana de
comandos para ayudar a interpretar mejor determinados elementos como comandos, funciones, instrucciones,
cadenas, etc. Algunas de las reglas existentes para los colores son las siguientes:
1. Las cadenas aparecen en color púrpura mientras se teclean. Al finalizarlas correctamente (con la
comilla de cierre) se vuelven de color marrón.
2. La sintaxis de control de flujo aparece en color azul. Todas las líneas entre la apertura y el cierre de las
funciones de control de flujo aparecen correctamente sangradas.
3. Los paréntesis, corchetes y llaves se mantienen brevemente iluminados hasta que no se finalice la
escritura de su contenido. Esto permite ver si se cierran correctamente o no en las expresiones
matemáticas.
4. Al introducir el símbolo % que precede a un comentario en la ventana de comandos, la escritura es de
color verde.
5. Los comandos de sistema tales como ! aparecen en color dorado.
6. Los errores aparecen en color rojo.










32


Andrés Pérez

EJERCICIOS 1

1. Calcule
a) 2
2
+2
3
+2
4

b)
1
2
+
1
2
+
1
3
+
1
4
+
1
5

c) √2 +√3 +√4
d) (1 2 −1 ⁄ )
2
+(1 3 ⁄ −1)
3
+(1 4 ⁄ −1)
4

e)
5
(√5+1 2 ⁄ )
5
+
6
(√6+1 2 ⁄ )
6

f)
√2

√3

√4

g) ((((4) +3) +2) +1)
h) �5
4
+4 ⁄
2
+ �5
3
+3 ⁄
3
+ �5
2
+2 ⁄
4


2. Cambie los siguientes puntos de coordenadas rectangulares (, ), a coordenadas polares (, )
a)
1
= (1, 4)
b)
2
= (2, −2)
c)
3
= (−1 2 ⁄ , 8)
d)
4
= (10, 0)
e)
5
= �11, √2�
f)
6
= (
2
, (3))

Recuerde que si un punto = (, ) es tal que ≠ 0, entonces las coordenadas polares de son
= �
2
+
2
y =
−1
( ⁄ )

3. Cambie los siguientes puntos de coordenadas polares (, ) a coordenadas rectangulares (, ),
a)
1
= (2, )
b)
2
= (7, −2)
c)
3
= �√3, 0�
d)
4
= (5, 3 4 ⁄ )
e)
5
= (0, 2 ⁄ )
f)
6
= (, 5)

Tenga en cuenta que las coordenadas cartesianas de un punto = (, ) vienen dadas por
= () y = ()

4. Defina los siguientes vectores
o A = los números del 1 al 13
o B = los números del 20 al 4
o C = los números pares del 2 al 26
o D = los números pares del 30 al 8

Respecto a los vectores anteriores, defina las siguientes matrices

33


MATLAB Orientado a la matemática aplicada

o A’
o [A ; B(1:13)]
o [C(1:5) ’, D(1:5)’]
o [A(1:3)’ , B(1:3)’ , C(1:3)’]

5. Defina las siguientes matrices

= �
1 2
−4 0

=



0 −1
2 3
0 9

−4 3
0 8



= �
8 −7 1 2 ⁄
0 0 −5
6 1 1

= �
1 −2 1 3 ⁄
−9 2 ⁄ 0 4
0 6 −5

0 8
1 3
0 4

= �
−2 −9
5 0
−8 −2 3 ⁄
1 0
0 5 8 ⁄
−7 0
−7 2
0 1

= �
0 1 5 ⁄
2 5 ⁄ 1

Calcule

o det ()
o
−1

o det()
−1

o (
−1
)
−1

o (1: 3,1: 4) +(1: 3,1: 4)
o
o


o +
o +(1: 2,1: 5)′
o (
−1
)′
o (1: 3,1: 2)′ +(1: 2,1: 3)
o ( +)
2
−2(3: 4,3: 4)
o �


� donde es la matriz cuyos elementos son iguales a 1
o �




� donde es la matriz cuyos elementos son iguales a 0
o �



o �




34


Andrés Pérez

CAPITULO 2. ALGORITMOS

Hasta el momento los algoritmos que hemos programado en MATLAB tienen estructura
secuencial, es decir, hemos tipiado sentencias en la ventana de comandos para que se
ejecuten en el orden escrito (desde arriba hacia abajo). No obstante, en MATLAB también se
pueden diseñar algoritmos con estructura selectiva (bifurcaciones) y estructura repetitiva
(bucles).
Antes de explicar dichas estructuras es necesario conocer dos nuevos tipos de operadores, los
cuales citaremos en los siguientes cuadros

SINTAXIS EXPLICACIÓN
> Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que
== Igual que
~= Distinto de
Operadores relacionales.

Mientras que para las operaciones lógicas tenemos

SINTAXIS EXPLICACIÓN
~A Negación lógica de A
A&B Conjunción lógica de A y B
A|B Disyunción lógica de A y B
xor(A,B) Disyunción lógica exclusiva de A y B
Operadores lógicos.

Los operadores lógicos ofrecen un camino para combinar o negar expresiones relacionales.
35


MATLAB Orientado a la matemática aplicada

COMANDO if
Las bifurcaciones permiten la ejecución de una o más sentencias, dependiendo del
cumplimiento de una condición. A continuación presentamos dos tipos.
Comando if simple
Ejecuta una o más sentencias dependiendo del cumplimiento de una condición. La sintaxis es
if condición
sentencias
end
Téngase en cuenta que la condición debe ser una expresión lógica, la cual generalmente es un
combinación de operadores relacionales y lógicos.















Notar que en ejemplo anterior, no aparece el prompt en las lineas 5, 6 y 7. Esto es propio del
bloque de la sentencia if.
Aquí se teclea el bloque de sentencias, las cuales se
ejecutarán siempre que la condición sea verdadera

EJEMPLO: crearemos una matriz 3×3 y si es invertible calculamos su inversa
>> A=[ 8 1 6
3 5 7
4 9 2];
>> if det(A)~=0
disp('La matriz es invertible y su inversa es')
inv(A)
end
La matriz es invertible y su inversa es
ans =
0.1472 -0.1444 0.0639
-0.0611 0.0222 0.1056
-0.0194 0.1889 -0.1028
36


Andrés Pérez

Comando if múltiple
A diferencia del anterior, este comando clasifica las sentencias en varios bloques, adjudicando
a cada bloque una condición, de modo que se ejecutará un solo bloque si la condición
respectiva es verdadera. La sintaxis es
if condicion1
sentencias 1
elseif condicion2
sentencias 2
elseif condicion3
sentencias 3
else
sentencias 4
end
Debe notarse que las condiciones 1, 2, 3 y 4 son mutuamente excluyentes, de modo que sólo
se ejecutará un bloque de sentencias (1, 2, 3 o 4 disyunción exclusiva).













Aquí se teclea el bloque Nº1 de sentencias, las cuales
se ejecutarán siempre que la condición1 sea cierta

Aquí se teclea el bloque Nº2 de sentencias, las cuales
se ejecutarán siempre que la condición2 sea cierta

Aquí se teclea el bloque Nº3 de sentencias, las cuales
se ejecutarán siempre que la condición3 sea cierta

Aquí se teclea el bloque Nº4 de sentencias, las cuales se
ejecutarán siempre que las condiciones 1, 2, 3 sean falsas

EJEMPLO: crearemos un matriz 3×3. Deseamos saber si es invertible o no, y en
caso afirmativo, visualizar su inversa
>> B =[1 2;
4 8];
>> if det(B)~=0
disp('La matriz es invertible')
inv(B)
else
disp('La matriz no es invertible')
end
La matriz no es invertible

37


MATLAB Orientado a la matemática aplicada

EJEMPLO: calcularemos la suma de los primeros 100 números naturales
>> sum=0;
>> for i=1:100
sum=sum+i;
end
>> sum
sum =
5050

COMANDO for
Los bucles permiten la ejecución de una o más sentencias, en forma repetida. A continuación
presentamos dos tipos.
Comando for simple
El comando for repite un conjunto de sentencias un número predeterminado de veces. La
sintaxis es
for i=a:b
entradas
end
La expresión i=a:b significa que las entradas se ejecutarán tantas veces la variable i recorra de
uno en uno los valores desde a (valor inicial) hasta b (valor final).
Una sintaxis muy típica es la siguiente
for i=1:n
entradas
end
en este caso las sentencias se ejecutarán tantas veces la variable i recorre de uno en uno los
valores de 1 hasta n, es decir, se ejecutarán n-veces.












Este algoritmo calcula la suma. Nótese que
tipiamos >>sum=sum+i; (con punto y coma) en
lugar de >>sum=sum+i (sin punto y coma) para
que MATLAB no imprimiera la lista de las cien
ejecuciones.

Ahora sí, visualizamos el último valor de la variable
sum, que almacena la suma 1+2+3…+100
38


Andrés Pérez

Comando for con especificación de incremento
Esta es una forma más general de la sentencia for. La sintaxis más común es
for i=1:c:n
sentencias
end
aquí las sentencias se ejecutarán tantas veces la variable i recorre los valores desde 1 hasta n,
en incremento de c (de c en c).













Anidamiento de comandos for
Consiste en un bucle dentro de otro. La sintaxis más común es
for i=1:m
for j=1:n
sentencias
end
end
en este caso, las sentencias se ejecután m×n veces.

EJEMPLO: calcularemos la suma de los primeros 50 números pares.
>> sump=0;
>> for i=1:100
if rem(i,2)==0
sump=sump+i;
end
end
>> sump
sump =
2550

39


MATLAB Orientado a la matemática aplicada


















Advertimos al lector que el uso del comando for no siempre es la mejor opción. Por ejemplo, si
queremos sumar dos matrices de 50x50 podríamos definir una matriz de orden 50x50 y luego
emplear dos comando for anidados para suma elemento por elemento. No obstante la
operación será más rápida si sumamos directamente las matrices. Invitamos al lector a
comprobar esto.
COMANDO while
Este comando es una especia de mezcla entre los comandos for e if. Al igual que el comando
for, se encarga de ejecutar una o más sentencias en forma repetida. La diferencia es que en el
comando while no se indica la cantidad de iteraciones a hacer, más bien se indica repetir
mientras se cumpla cierta condición. La sintaxis es
while condición
sentencias
end
EJEMPLO: a continuación definiremos una matriz de orden 4x6 y calcularemos la
suma de sus coeficientes
>>M =[8 7 10 10 5 7;
9 2 10 5 9 1;
2 4 2 8 8 9;
9 6 10 2 10 9];
>> sum=0;
>> for i=1:4
for j=1:6
sum=sum+M(i,j);
end
end
>> sum
sum =
162

40


Andrés Pérez
















Cabe destacar que en el anterior algoritmo, en principio, no se conocía de antemano la
cantidad de iteraciones a realizar, por lo cual no era viable emplear un comando for simple.
Esta es una de las ventajas del comando while.









EJEMPLO: una consecuencia de la Propiedad Arquimediana es que dado un número
real > 0, existe un entero > 0 tal que
1

� < . Elaboraremos un algoritmo que
encuentre un entero > tal que
1

� < 0,123456

>> a=0.123456;
>> n=1;
>> while 1/n>=a
n=n+1;
end
>> n
n =
9
41


MATLAB Orientado a la matemática aplicada

EJERCICIOS 2

1. Respecto a cada una de las siguientes matrices

2 6
−4 0


−1 4 ⁄ 3
1 0
� �
−5 3 7
0 0 1
2 1 9
� �
3 0 6
−1 9 ⁄ 0 −1
5 7 ⁄ 3 5
� �
1 4
−2 4

2 3 4 ⁄
0 −2
3 7
−9 2 ⁄ −1
4 0
−1 0


estudie si es invertible o no. En caso afirmativo visualizar su inversa, en caso contrario
visualizar su determinante.

2. Calcule la suma de los números del 1 al 1000.

3. Calcule la suma de los números impares del 1 al 100.

4. Considere la siguiente sucesión infinita {

} , donde

= (−1)

2

, ∀ ∈ ℕ

a) Visualice los primeros 10 términos.
b) Calcule la suma de los primeros 111 términos.
c) Calcule la suma de los primeros 10001 términos.
d) Calcule la suma de los primeros 1000001 términos.

5. Defina la matriz = (

)
4×4
, como
= �
4 9 ⁄ 2 −4 3 ⁄
−7 1 5
−3 2 0
3 4 ⁄ 1 1 6 ⁄
0 3 8 9 ⁄ 1 −2 3 ⁄ 2


Para cada coeficiente

, estudie si es divisible o no por 2 9 ⁄ .

6. Se desea saber cuál de los siguientes números es el máximo y cuál es el mínimo
5/3 1 6/9 77/4 3/5 7/2 9 5/6 7/6 9/8 33/2 5 4 3/2
Diseñe un algoritmo para resolver este problema.

7. Se desea saber cuáles de los siguiente números son primos
9929 902 9043 43568 8123 226968 32780 99991 98893 87491
Mediante un algoritmo, haga dicho estudio.

8. Considere la siguiente matriz

−4 9 1
8 1 4
0 5 −3

42


Andrés Pérez

Calcule la transpuesta de la misma.

9. Defina las siguientes matrices
= �
5 3 1 2 ⁄
−1 8 9
� , = �
1 −6 5 −8
0 7 −9 3
2 7 3 ⁄ 1 0


Mediante un algoritmo, calcule = . Recuerde que la matriz viene dada por =
(

)
2×4

donde

= �
1

3
=1
; = 1, 2 ; = 1, 2,3, 4


10. Considere la matriz = (

)
4×4
, dada como
= �
−2 5 8 ⁄
3 0
7 1
0 −2
−9 2 ⁄ 1
0 6

8 −3
1 1 3 ⁄

Calcule

��(, )
4
=1
4
=1


11. A continuación damos una lista de funciones no acotadas y un número positivo
a) () =
2
, = 52
b) () = 1 ⁄ , = 365
c) () = , = 27
d) () = (), = 100
e) () = −ℎ (), = 432
Para cada función halle un entero positivo tal que |()| > .
12. Cada uno de los siguientes polinomios tiene una única raíz entera positiva
a)
2
−45 −94
b)
2
−26 −120
c)
3
+7
2
−84 −540
d)
4
−51
3
−721
2
−2181 −1512
e)
4
−87
3
−1153
2
−3441 −2376
Halle la raíz entera positiva de cada polinomio.

43


MATLAB Orientado a la matemática aplicada

CAPITULO 3. M-Ficheros

Hay problemas en los cuales se necesita tipiar una enorme lista de sentencias (o líneas de
código) en la ventana de comandos, dicho algoritmo recibe el nombre de programa principal.
Los M-Ficheros (o simplemente ficheros) son archivos en los que podemos implementar
subprogramas para que sean utilizados desde el programa principal. Veamos el siguiente
esquema para comprender








Ejecutar
Ejecutar
PROGRAMA
PRINCIPAL
Subprograma 1
Subprograma 2
44


Andrés Pérez

PROBLEMA 1: consideremos las siguientes matrices

−3 1 6
−2 3 2
7 −8 −1
� , �
4 3 5
−1 2 ⁄ 7 −7
9 −2 9
� , �
−7 8 ⁄ −1 1
9 8 −7
1 3 ⁄ 2 1


−9 0 2
−2 4 6
1 4 −8
� , �
2 −2 3
−4 5 3 ⁄ 2
1 −7 −9 8 ⁄
� , �
7 −1 7
−1 4 4
2 −3 −9

Para cada una de ellas queremos un informe que nos muestre
• La suma de los coeficientes
• El producto de los coeficientes



Los M-Ficheros son de dos tipos: ficheros script y ficheros de función. En el presente capítulo
plantaremos dos problemas, los cuales resolveremos definiendo un fichero script y un fichero
de función respectivamente.









El código (o algoritmo) para obtener el informe de la primera matriz es
>> A=[-3 1 6;-2 3 2;7 -8 -1];
>> SUM=0;
>> PROD=1;
>> for i=1:3
for j=1:3
SUM=SUM+A(i,j);
PROD=PROD*A(i,j);
end
end
>> SUM
SUM =
5
>> PROD
PROD =
12096
45


MATLAB Orientado a la matemática aplicada

O sea, para estudiar cada matriz necesitamos escribir 11 líneas de código. Luego en total, para
obtener el informe de las 6 matrices tendríamos que escribir nada más y nada menos que 6x11
= 66 líneas de código.
Afortunadamente MATLAB nos ofrece la forma de simplificar este trabajo, implementando un
subprograma en un M-Fichero, el cual realice el estudio de cada matriz cada vez que se lo
indiquemos en la ventana de comandos (programa principal). A continuación definiremos un
fichero script para resolver el problema 1. Más adelante plantearemos otro problema para
resolverlo mediante un fichero de función.
FICHEROS SCRIPT
Los ficheros script son el tipo de M-Ficheros más fáciles de definir. Un fichero script (o script)
no tiene explícitamente argumentos de entrada ni de salida. Está formado por comandos de
MATLAB que se ejecutan en una forma preestablecida y opera con datos existentes en el
espacio de trabajo o con nuevos datos creados por el propio script. Cualquier variable que se
cree mediante un script permanecerá en el espacio de trabajo y podrá utilizarse en cálculos
posteriores. Sigamos los siguientes pasos para crear un script que resuelva el problema 1
Paso 1: acceder al editor
En el menú File, se selecciona New y luego M-File. Seguidamente se mostrará el editor

en el cual definiremos nuestro fichero script.
46


Andrés Pérez

Paso 2: estructurar el fichero
A continuación escribimos en el editor
%ESTE SUBPROGRAMA CALCULA DE UNA MATRIZ 3X3:
% 1)la suma de sus coeficientes
% 2)el producto de sus coeficientes

SUM=0;
PROD=1;
for 1=1:3
for j=1:3
SUM=SUM+A(i,j);
PROD=PROD*A(i,j);
end
end
SUM
PROD

Paso 3: guardar el fichero
Todo fichero debe ser almacenado en disco antes de utilizarse. Esto se hace utilizando la
opción Save as del menú File, seleccionando el lugar donde se guardará y proporcionando el
nombre del fichero en cuestión.
A nuestro fichero script le llamamos infomatriz, y quedó de esta forma


Líneas de comentarios: estas líneas
describen para que sirve el
subprograma. Aunque son opcionales,
resultan muy útiles para proporcionar
información sobre el mismo en cuestión
Cuerpo: esta es la parte que contiene el código
del subprograma que realiza las operaciones
especificadas. Dicho código puede contener
cualquier comando de MATLAB
47


MATLAB Orientado a la matemática aplicada

Paso 4: ejecutar el fichero
Un fichero definido por el usuario se utiliza de la misma forma que un comando predefinido en
MATLAB, desde la ventana de comandos o desde otro fichero. Obviamente, antes de usarlo
debe estar guardado.
Nos dirigimos ahora a la ventana de comandos para obtener el informe de la primera matriz
mediante el fichero infomatriz

























PROBLEMA 1 (continuación): para obtener el informe de la primera matriz
mediante el fichero infomatriz tipiamos
>> A=[-3 1 6;-2 3 2;7 -8 -1]; %primera matriz
>> infomatriz
SUM =
5
PROD =
12096
para obtener el informe de las matrices restantes procedemos de forma similar
>> A=[4 3 5;-1/2 7 -7;9 -2 9]; %segunda matriz
>> infomatriz
SUM =
27.5000
PROD =
-238140
>> A=[-7/8 -1 1;9 8 -7;1/3 -3 -9]; %tercera matriz
>> infomatriz
SUM =
-2.5417
PROD =
-3969

48


Andrés Pérez






















Así, ya no es necesario escribir 66 líneas de código en la ventana de comandos para estudiar las
6 matrices, hemos optimizado nuestro trabajo utilizando sólo 2x6 +13= 25 líneas de código (el
código de la ventana de comandos mas el código del fichero). Además, este fichero script lo
podemos utilizar posteriormente.
Cabe resaltar la siguiente observación: todas las matrices del problema 1 eran de orden 3x3, lo
que nos permitió utilizar el script infomatriz para estudiar cada una de ellas.
¿Realmente que es un fichero script?
Hasta ahora los comandos en MATLAB que hemos visto se ejecutan en la ventana de
comandos. Sin embargo, la utilización de la ventana de comandos se restringe generalmente a
la ejecución de un número pequeño de sentencias. En caso contrario, cuando el número de
>> A=[-9 0 2;-2 4 6;1 4 -8]; %cuarta mariz
>> infomatriz
SUM =
-2
PROD =
0
>> A=[2 -2 3;-4 5/3 2;1 -7 -9/8]; %quinta matriz
>> infomatriz
SUM =
-4.4583
PROD =
1260
>> A=[7 -1 7;-1 4 4;2 -3 -9]; %sexta matriz
>> infomatriz
SUM =
10
PROD =
42336

49


MATLAB Orientado a la matemática aplicada

sentencias es demasiado elevado (como el algoritmo para resolver el problema 1), esta
metodología no es apropiada.
El problema proviene, básicamente, de que la ventana de comandos no es suficientemente
interactiva, los comando no pueden ser guardados y ejecutados de nuevo a petición del
usuario. Esto implica que cada vez que se pulsa la tecla Enter sólo se ejecuta el último
comando, y todo lo anterior permanece inalterable. Si se necesita realizar alguna corrección o
cambio sobre alguno de esos comandos previamente ejecutados, será necesario volver a
escribirlos y ejecutarlos de nuevo de uno en uno.
Otra forma diferente de ejecutar comandos en MATLAB es crear un fichero script con las
líneas de código para ejecutarlas posteriormente (es decir implementando un subprograma en
MATLAB). Cuando se ejecuta este fichero en la ventana de comandos, las sentencias que
contiene son ejecutadas en el orden en que aparecen en el fichero. Además, si fueran
necesarias correcciones o cambios posteriores, sólo habría que editar el fichero y ejecutarlo de
nuevo.
A continuación modificaremos el problema 1 y lo resolveremos.
















PROBLEMA 2: consideremos las siguientes matrices


0
−5
9
4
−7
8
�, �
−5 3
4 1 8 ⁄
� , ( −5 9 9 8 ⁄ 4 −7 5 ⁄ −6 )

9 7 3
−3 0 8
7 −9 4
�, �
−1 4 ⁄
3
−7
4
�, �
−3 1
9 0
5 7

−7 −3
4 4
8 9

0 9
1 0
6 1


Para cada una de ellas queremos un informe que nos muestre
• La suma de los coeficientes
• El producto de los coeficientes

50


Andrés Pérez

Lo que se pide en este nuevo problema es lo mismo en el caso del problema 1, sin embargo,
no podemos utilizar el fichero scritp infomatriz pues este solo se aplica para matrices 3x3, y
como podemos ver el problema 2 nos plantea matrices no cuadradadas y hasta
unidimensionales (la única matriz 3x3 es la cuarta).
Podríamos modificar el scritp infomatriz de manera que pueda hacer el estudio de cualquier
matriz (cuadrada, no cuadrada y unidimensional), bastaría cambiar los índices de los bucles a
m (número de filas) y n (número de columnas) respectivamente
for 1=1:3
for j=1:3
SUM=SUM+A(i,j);
PROD=PROD*A(i,j);
end
end

y de esta forma , por ejemplo, para estudiar la primera matriz debemos tipiar en la ventana de
comandos
>>m=3;
>>n=2 ;
>>A=[0 4;-5 -7;9 8]
Sin embargo, esta nueva estructura nos obliga a considerar implícitamente a m,n, y A como
argumentos de entrada, lo cual hace más complejo su uso. Es por ello que MATLAB ofrece otro
tipo de M-Fichero: fichero de función.

FICHEROS DE FUNCIÓN
Un fichero de función es prácticamente un fichero script pero más sofisticado. Su diferencia
principal con el script es que si tiene explícitamente argumentos de entrada y salida. Lo
ficheros de función, al igual que los script, están formado por comandos de MATLAB que se
ejecutan en una forma preestablecida. Los pasos para resolver el problema 2 con un fichero de
función son similares al caso script:
Paso 1: acceder al editor
Recuérdese que en el menú File, se selecciona New y luego M-File. Seguidamente se mostrará
el editor.

Paso 2: estructurar el fichero
A continuación escribimos en el editor

51


MATLAB Orientado a la matemática aplicada



function[SUM,PROD]=estudiomatriz(A,m,n)


%ESTE SUBPROGRAMA ESTUDIA UNA MATRIZ
%ARGUMENTOS DE ENTRADA:
%A: matriz a estudiar
%m: numero de filas
%n: numero de columnas
%ARGUMENTOS DE SALIDA:
%SUM: suma de los coeficientes de A
%PROD: producto de los coeficientes de A

SUM=0;
PROD=1;

for i=1:m
for j=1:n
SUM=SUM+A(i,j);
PROD=PROD*A(i,j);
end
end


NOTA: la forma general que tiene la línea de definición es

function[argumentos_de_salida]=nombre_funcion(argumentos_de_entrada)









El nombre puede estar formado por letras, dígitos y el carácter subrayado. Las reglas para el
nombre de este tipo de M-Fichero son las mismas que para la construcción de nombres de
La palabra
function debe
ser la primera
palabra
tecleada en
minúscula
Lista de
argumentos
de salida
encerrados
entre
corchetes
Nombre
de la
función
Lista de
argumentos
de entrada
encerrados
entre
paréntesis
Línea de definición: esta línea indica el nombre del
fichero y los argumentos de entrada y salida
Línea H1: esta línea de comentario contiene el
nombre y una descripción corta del fichero
Líneas de texto de ayuda: estas nos ofrecen
información sobre cuáles son los argumentos de
entrada y salida del fichero
Cuerpo: esta es la parte que contiene el código que
realiza las operaciones especificadas
52


Andrés Pérez

variables. Se recomienda evitar usar para este propósito nombres de funciones ya predefinidas
en MATLAB (como sin, cos, sqrt, etc) así como nombres de variables ya predefinidas por el
usuario o internamente por MATLAB.
Paso 3: guardar el fichero
El procedimiento es el mismo en caso del fichero script. A nuestro fichero de función le
llamamos estudiomatriz, y quedó de esta forma


Paso 4: ejecutar el fichero










PROBLEMA 2 (continuación): tipiamos
>> A=[0 4;-5 -7;9 8]; %primera matriz
>> [SUM,PROD]=estudiomatriz(A,3,2)
SUM =
9
PROD =
0

53


MATLAB Orientado a la matemática aplicada











¿Realmente que es un fichero de función?
Sabemos que una función matemática y=f(x) asocial un número f(x) (variable dependiente) a
cada número x (variable independiente). Cuando se introduce un valor x (entrada) en la
expresión de la función, se obtiene un valor y (salida).
Existen muchas funciones que están ya predefinidas en MATLAB y que pueden ser utilizadas en
expresiones simplemente tecleando su nombre junto con el argumento de entrada como por
ejemplo las sunciones sin(x), cos(x), exp(x) y sqrt(x).
Frecuentemente, a la hora de programar, existe la necesidad de operar con funciones distintas
que no están predefinidas (como el caso de obtener estudiar las matrices del problema 2).
Este problema se puede resolver creando un M-Fichero que sirva como una función. Tal M-
Fichero recibe el nombre de fichero de función. En forma esquemática, este tipo de fichero se
comporta de la siguiente forma



donde la entrada y la salida pueden estar compuestas por una o más variables (escalares,
vectoriales o matriciales).
EL COMANDO help
Antes de utilizar un fichero scirpt o un fichero de función, se debe conocer todos los aspectos
del mismo, como por ejemplo para que sirve. Puede suceder que el usuario, una vez definido
un fichero, no recuerde exactamente que trabajo realiza. Para solventar este problema está el
comando help.
Fichero de función ENTRADA SALIDA
PROD =
21
>> A=[-3 1 -7 -3 0 9;9 0 4 4 1 0;5 7 8 9 6 1];%sexta matriz
>> [SUM,PROD]=estudiomatriz(A,3,6)
SUM =
51
PROD =
0

54


Andrés Pérez




















Con el anterior ejemplo queda clara la importancia de las líneas de comentario hechas en los
ficheros.

COMPARATIVA ENTRE UN FICHERO SCRIPT Y UN
FICHERO DE FUNCIÓN
Algunas similitudes y diferencias son las siguientes:
• Ambos son archivos con extensión .m (por tal razón reciben el nombre de M-Ficheros).
• En un fichero script no es obligatorio indicar los argumentos de entrada y salida. En
cambio en un fichero de función si es necesario, y precisamente se hace en la línea de
definición.
EJEMPLO: si queremos consultar que hace el fichero infomatriz tipiamos
> >> help infomatriz
ESTE SUBPROGRAMA CALCULA DE UNA MATRIZ 3X3:
1)la suma de sus coeficientes
2)el producto de sus coeficientes
similarmente para el fichero estudiomatriz
>> help estudiomatriz
ESTE SUBPROGRAMA ESTUDIA UNA MATRIZ
ARGUMENTOS DE ENTRADA:
A: matriz a estudiar
m: numero de filas
n: numero de columnas
ARGUMENTOS DE SALIDA:
SUM: suma de los coeficientes de A
PROD: producto de los coeficientes de A

55


MATLAB Orientado a la matemática aplicada

• Los ficheros script pueden usar variables definidas en el espacio de trabajo. Por el
contrario, para usar una variable definida en el espacio de trabajo dentro de un fichero
de función, dicha variable debe estar indicada como argumento de entrada del mismo.
• Cualquier variable que se cree en un script, permanecerá en el espacio de trabajo. En
un fichero de función solamente las variables definidas como argumentos de salida,
permanecerán en el espacio de trabajo.
• Si se quiere resolver un problema complejo, definir un script puede ser muy largo y el
código se torna engorroso. En cambio puede ser útil descomponer el código del script
en una o mas funciones (definiendo ficheros de función) que sean llamadas desde un
script compuesto justamente de ocas líneas de código.
• Los ficheros script son más fáciles de definir que los ficheros de función.
• Al momento de usar un fichero de función hay libertad de nombrar los argumentos de
entrada y de salida (nótese que cuando empleamos el fichero estudiomatriz en la
tercera matriz no le dimos nombre a esta última como A, simplemente la escribimos
directamente como argumento de entrada). En cambio, el uso de un fichero script nos
obliga nombrar los argumentos de entrada de acuerdo a como serán usados en el
script (por cierto que estos aspectos son implícitos).

















56


Andrés Pérez

EJERCICIOS 3

1. Considere la siguientes matrices


4 0 1
−5 4 9
2 3 −8
�, �
7 −2 8
1/7 0 3
−3 1 −9
�, �
9 4 1
−1 3 0
9 0 2



4 2 5
−9 9 6
0 3 −1
�, �
−7 1 2
1 8 9
3 −5 3
�, �
−1 7 9
−7 3 1
9 3 5


Para cada matriz = (

)
3×3
se desea un informe que con lo siguiente
��

3
=1
3
=1
, ��(

)
2
3
=1
3
=1
, ��(

)
3
3
=1
3
=1

Defina un fichero script para ello

2. Para cada una de las matrices del ejercicio anterior, se quiere un informe con los
siguiente
a) Determinante
b) Matriz inversa (si la matriz es invertible)
c) Matriz escalonada reducida por filas de Gauss-Jordan
d) Forma canónica de Jordan
Para ello defina un fichero scritp.
3. El siguiente código de fichero de función calcula el máximo común divisor de dos
enteros no simultáneamente nulos

function[mcd]=max_com_div(a,b)
%este subprograma calcula el maximo comun divisor de dos enteros no
simultaneamente nulos
%ARGUMENTOS DE ENTRADA:
%a: entero no negativo
%b: entero cualquiera
%ARGUMENTOS DE SALIDA:
%mcd: maximo comun divisor

r=[a, b];

n=length(r); %cantidad de terminos actual

while r(n)~=0

x=r(n-1); %penultimo termino

57


MATLAB Orientado a la matemática aplicada

y=r(n); %ultimo termino
z=rem(x,y); %nuevo termino

r=[r, z]; %agrandar el vector columna

n=length(r); %cantidad de terminos actual

end

mcd=r(n-1);

Calcule el máximo común divisor de los siguientes números
a) 43 y 65
b) 115 y 20
c) 40 y 90
d) 76 y 140

4. El siguiente código calcula el elemento mínimo de un vector
function[minimo]=small(x)
%ESTE SUBPROGRAMA CALCULA EL MINIMO DE UN VECTOR
%ARGUMENTOS DE ENTRADA:
%x: vector a estudiar
%ARGUMENTOS DE SALIDA:
%minimo: menor elemento del vector x

minimo=x(1);

n=length(x);

for i=2:n

if x(i)<minimo

minimo=x(i);

end

end

Calcule el elemento mínimo de los siguientes vectores
a) v=[ 8 9 2 9 7 2 4 6 10]
b) w=[ 8 10 7 1 9 9 7 8 8 5 7]
c) x=[ 3 7 1 3 1 2 8 7 4 10 1]
d) y=[ 2 3 9 3 8 3 9 4 3 3 7 5 4]
e) z=[ 8 1 6 9 4 8 8 4 6 2 1 6 8 9 2 6]

5. Defina un fichero de función para calcular el elemento máximo de los vectores del
ejercicio 4.
58


Andrés Pérez


6. El siguiente código calcula la posición mínima en un vector que ocupa el elemento
mínimo del vector
function[k_min]=pos_min(x)
%ESTE SUBPROGRAMA CALCULA LA POSICION MINIMA QUE OCUPA EL MINIMO
DE X EN EL %VECTOR X
%ARGUMENTOS DE ENTRADA:
%x: vector a estudiar
%ARGUMENTOS DE SALIDA:
%k_min: posicion minima que ocupa el minimo de x en el vector x

n=length(x);

for i=1:n

if x(i)==small(x)

k_min=i;

break

end

end

Respecto a cada uno de los vectores del ejercicio 4 calcule la posición mínima que
ocupa el mínimo. Observe que para utilizar este fichero es necesario que ya esté
definido el fichero small. El comando break se utiliza para salir de un bucle.

7. El siguiente código ordena un vector en forma creciente
function[ord_cre]=creciente(x)
%ESTE SUBPROGRAMA ORDENA UN VECTOR DE MAS DE UN ELEMENTO
%EN FORMA CRECIENTE
%ARGUMENTOS DE ENTRADA:
%x: vector
%ARGUMENTOS DE SALIDA:
%ord_cre: ordenacion de x en forma creciente

n=length(x);

ord_cre=[min(x), zeros(1,n-1)]; %vector de n componentes

for i=2:n

m=length(x); %longitud actual del vector x

[k_min]=pos_min(x);
k=k_min;

if k==1 %el minimo ocurre el en el extremo izquierdo
59


MATLAB Orientado a la matemática aplicada


x=[x(k+1:m)];

elseif 1<k & k<m %el minimo ocurre en el interior

x=[x(1:k-1), x(k+1:m)];

else %el minimo ocurre en el extremo derecho

x=[x(1:k-1)];

end

ord_cre(i)=min(x);

end

Ordene los vectores del ejercicio 4 en forma creciente. Observe que para utilizar este
fichero es necesario que ya esté definido el fichero pos_min.

8. Defina un fichero de función para ordenar en forma decreciente los vectores del
ejercicio 4.
















60


Andrés Pérez

EJEMPLO: dada la función
() =
3
−3
calcular (0) y (4)

>> syms x f
>> f='x^3-3'
f =
x^3-3
>> subs(f,x,0)
ans =
-3
>> subs(f,x,4)
ans =
61

CAPITULO 4. CÁLCULO SIMBÓLICO

Cuando hablamos de cálculo simbólico, nos referimos a cómputos como solución de
ecuaciones; cálculos de límites, derivadas, integrales, y ese tipo de operaciones en los cuales se
involucran variables. MATLAB dispone de una gran variedad de comandos que facilitan estos
cálculos, pero antes de utilizarlos, se debe colocar la entrada
>>syms x y z
con lo cual se indica que x, y, z son variables simbólicas.
FUNCIONES
Simbólicamente se pueden crear funciones de una o más variables y evaluarlas en cualquier
expresión.

















Esta es la manera de indicar que f
está definida como
() =
3
−3
Para este fin siempre debe utilizarse
comillas.

61


MATLAB Orientado a la matemática aplicada

También se pueden hacer sustituciones múltiples en el caso de funciones simbólicas de varias
variables. Para ello, se usa la sintaxis
>> subs(f,{x,y,z,…},{a,b,c,…})
donde x, y, z,… denotan las variables, y a, b, c,… denotan los valores que se asignaran a las
variables x, y, z,…






















A veces, necesitamos evaluar expresiones simbólicas dentro de otras expresiones simbólicas.
EJEMPLO: dada la función
(, ) =

3
+

4

2

calcular (0,1), (1, −2) y (3,3)

>> syms f x y
>> f='(x^3+y)/(x^4-y^2)'
f =
(x^3+y)/(x^4-y^2)
>> subs(f,{x,y},{0,1})
ans =
-1
>> subs(f,{x,y},{1,-2})
ans =
0.3333
>> subs(f,{x,y},{3,3})
ans =
0.4167
62


Andrés Pérez


















También es posible evaluar una función f en un vector v. La sintaxis sería
>>subs(f,x,v)
en este caso el resultado es un vector de igual longitud que v.


ECUACIONES

Para ello se emplea el comando
>>solve(‘E’,x).
donde E denota la ecuación y x la variable.
EJEMPLO: verificar que y son las raíces del polinomio

2
− − +
>> syms f x a b
>> f='x^2-b*x-a*x+b*a'
f =
x^2-b*x-a*x+b*a
>> subs(f,x,a)
ans =
0
>> subs(f,x,b)
ans =
0





63


MATLAB Orientado a la matemática aplicada













También se pueden resolver ecuaciones cuadráticas.









En algunas expresiones simbólicas utilizamos letras como a, b, c para denotar constantes y las
letras x, y, z para denotar variables. En MATLAB todas las letras deben declararse como
variables simbólicas.
EJEMPLO: vamos a resolver la ecuación
2 +1 = 9
tecleamos
>> syms x
>> solve('2*x+1=9',x)
ans =
4
lo cual nos indica que la solución es = 4.

EJEMPLO: para hallar las raíces del polinomio
−3
2
+ +3
tecleamos
>> solve('-3*x^2+x+3=0',x)
ans =
1/6-1/6*37^(1/2)
1/6+1/6*37^(1/2)
donde 1/6-1/6*37^(1/2) y 1/6+1/6*37^(1/2) son las raíces del polinomio.

64


Andrés Pérez

EJEMPLO: si queremos una mejor visualización de las soluciones del ejemplo
anterior tecleamos
>> pretty(solve('a*x^2+b*x+c=0',x))
y MATLAB muestra

soluciones que son exactamente la que nos da la resolvente
=
− ±√
2
−4
2











Nótese que aunque sabemos que en la ecuación a, b, c son constates, fue necesario declararlas
en el comando syms al igual que x.
Un comando muy útil para visualizar correctamente soluciones en el cálculo simbólico es
>>pretty(expresion)














EJEMPLO: resolver

2
+ + = 0
>> syms a b c x
>> solve('a*x^2+b*x+c=0',x)
ans =
-1/2*(b-(b^2-4*a*c)^(1/2))/a
-1/2*(b+(b^2-4*a*c)^(1/2))/a

65


MATLAB Orientado a la matemática aplicada

LÍMITES
El comando afín es
>>limit(f,x,a)
donde f es la expresión, x es la variable, y a es el parámetro.










También se pueden calcular límites laterales













EJEMPLO: calcular
lim
→−
3
2
4
2
−9
2 −3

>> syms x
>> limit((4*x^2-9)/(2*x-3),-3/2)
ans =
0
Así, el límite buscado es 0.

EJEMPLO: calcular
lim
→0

||
, lim
→0
+

||

>> syms x
>> limit(x/abs(x),x,0,'left')
ans =
-1
>> limit(x/abs(x),x,0,'right')
ans =
1

66


Andrés Pérez

DERIVADAS
El comando a utilizar es
>>diff(f,x)
donde f es la expresión y x es la variable.








También podemos calcular derivadas parciales de funciones de varias variables















EJEMPLO: derivar la siguiente función
() =

( −1)
2

>> diff(-x/(1-x)^2,x)
ans =
-1/(1-x)^2-2*x/(1-x)^3

EJEMPLO: calcule las derivadas parciales de la siguiente función
(, ) =

( −
2
)
3

>> syms g x y
>> g='(y-x)/(x-y^2)^3';
>> diff(g,x) %derivada parcial respecto a x
ans =
-1/(x-y^2)^3-3*(y-x)/(x-y^2)^4
>> diff(g,y) %derivada parcial respecto a y
ans =
1/(x-y^2)^3+6*(y-x)/(x-y^2)^4*y

67


MATLAB Orientado a la matemática aplicada

INTEGRALES
Para integrar funciones, se utiliza el comando
>>int(f,x)
donde f es la expresión y x es la variable.










MATLAB también calcula integrales definidas












EJEMPLO: calcular


1 +
2
()
2
0


>> syms x
>> int(1/(1+sin(x)^2),x,0,2*pi)
ans =
pi*2^(1/2)

EJEMPLO: integrar
() =
+1

3
−7
2
+14 −8


>>syms x
>>pretty(int((x+1)/(x^3-7*x^2+14*x-8),x))

68


Andrés Pérez

A continuación damos un compendio de comandos afines al cálculo simbólico
COMANDO UTILIDAD
subs(f,x,a) Sustituye x por a en la función f
subs(f,{x,y,z,…},{a,b,c,…}) Sustituye x, y, z,… por a, b,
c,…respectivamente en la función f
solve(e,x) Resuelve una ecuación e en la variable x
solve(e1,e2,...,en) Resuelve varias ecuaciones de varias
variables
limit(f,x,a) Calcula el límite de la función f cuando x
“tiende a” a
lim


limit(x,a,’left’) Calcula el límite de la función f cuando x
“tiende a” a por la izquierda

lim



limit(x,a,’right’) Calcula el límite de la función f cuando x
“tiende a” a por la derecha

lim

+

diff(f,x) Deriva la función f en la variable x
′()
Notar que f puede ser una función de
dos variables: x, y. En tal caso la
derivada corresponde a la derivada
parcial de f respecto a x

(, )
diff(f,x,n) Deriva de orden n de la función f en la
variable x

()
()
En este caso n debe ser un entero
positivo
69


MATLAB Orientado a la matemática aplicada

int(f,x) Calcula la integra indefinida de la
función f respecto a la variable x
�()
int(f,x,a,b) Calcula la integra definida de la función
f respecto a la variable x, de a hasta b
� ()

Comandos para el cálculo simbólico.


















70


Andrés Pérez

EJERCICIOS 4

1. Defina la siguiente función
() =
− √
3
2
2
+3

Calcule
a) (0)
b) (2)
c) (−3)
d) (5.1)
e) �√2�
f) ( −)

2. Considere los siguientes polinomios

2
+ +

2
+

2
+

2

a) Calcule las raíces del primero y guárdelas en una variable de nombre PRIM
b) Calcule las raíces del segundo y guárdelas en una variable de nombre SEG
c) Calcule las raíces del tercero y guárdelas en una variable de nombre TERC
d) Calcule las raíces del cuarto y guárdelas en una variable de nombre CUAR
e) Verifique que las raíces del segundo son un caso particular del primero (haga
= 0 en PRIM y compare con SEG)
f) Verifique que las raíces del tercero son un caso particular del primero (haga
= 0 en PRIM y compare con TERC)
g) Verifique que las raíces del cuarto son un caso particular del primero, del
segundo y del tercero (haga = 0 y = 0 en PRIM y compare con CUAR,
luego haga = 0 en SEG y compare con CUAR, finalmente haga = 0 en TER
y compare con CUAR)

3. Resuelva las ecuaciones
a) +1 = 3 −
1
2

b) −3
2
+ −5 = 0
c)
4
−2
=
71


MATLAB Orientado a la matemática aplicada

d) √
3
+2 = 2
e) | +1| = 2
f) |
2
+ −5|=
1
3

g)

= 1
h) = 0
i) () = cos()

4. Resuelva los siguientes sistemas de ecuaciones
a) �
2 +3 = 13
4 − = 5

b) �
3
2
− = 9
+

2
= 7

c) �

1
+
1
=
1

2
+
2
=
2

d) �
+4 − = 6
2 +5 −7 = −9
3 −2 + = 2


5. Calcule
a) lim
→2

2
+6
) lim
→1

2
−1
−1

) lim
→1
2
2
+ −3
−1

) lim
→1
1
( −1)
2

) lim
→−
3
2
4
2
−9
2 −3

) lim


3

3

2
− − +

) lim
→1
√ + −√ +
√ + −√ +

ℎ) lim
→1

−1

−1

) lim
→0
()

) lim
→0
1 −cos (2)
4
2

) lim
→0
(2)
(3)

) lim
→∞
�1 +
1

) lim
→0
+
1

) lim
→−∞

ñ) lim
→0

log ()
) lim
→3
√9 −
2
−3

) lim

+
√ −√

3
− √
3

) lim
→0

1


1
||

) lim
→4
+
−4
| −4|

72


MATLAB Orientado a la matemática aplicada


6. Derive las siguientes funciones
a) () = 3 +5
b) () = −4
3
+2
c) ℎ() =
3−
2
−7

d) () =

+
3

e) () = ln (1 ⁄ )
f) () = () +()

7. Calcule
a)

(
2
+
3
)
b)


2
+
2

c)

2
+cos �

��
d)

2

2
��
+

3
��

8. Calcule
a) ∫3
2
−5
b) ∫

2
+2

3
+3
2
+1

c) ∫

(+1)
2

d) ∫
4−11
2
2
+7−4

e) ∫
1
3+√+2

f) ∫(
2
+1)
g) ∫tan() ()
h) ∫
2
()
3
()
i) ∫

3
(())
6
(())

j) ∫�tan ()

9. Calcule
a) ∫ �
1−

1
1 2 ⁄

b) ∫

+

1
0

c) ∫

2

3
+4
2
+5+2
4
0

73


MATLAB Orientado a la matemática aplicada

d) ∫

4 −√
16
0

e) ∫
3
()
3
()
2 ⁄
0

f) ∫

()+()




10. Asumiendo que la siguiente matriz es invertible
= �



calcule
−1


11. Asumiendo que la siguiente matriz es invertible
= �




calcule
−1


12. Dada una función () tal que existen las primeras n derivadas en = 0, el polinomio
de Maclaurin de grado de f viene dado por

() = �

()
(0)

!

=0

Definiendo un fichero de función, calcule el polinomio de Maclaurin de grado de las
siguientes funciones:

• () =

, = 4
• () =
1
(1−)
2
, = 8
• ℎ() = (1 +), = 6
• () = (), = 5
• () = cosh() , = 7








74


Andrés Pérez

CAPITULO 5. GRÁFICOS

Los gráficos son herramientas muy utilizadas para presentar todo tipo de información;
información que puede proceder de cualquier campo del conocimiento, pero especialmente
de las disciplinas relacionadas con las ciencias y la ingeniaría, donde MATLAB es ampliamente
utilizado.
A continuación estudiaremos como crear gráficos en el plano y en el espacio.
GRÁFICOS EN 2D
Graficando funciones del tipo y=f(x)
Para representar una función del tipoy=f(x) se utiliza el comando
>>plot(x,y)
Habiendo creado previamente un vector con los valores x del dominio de la función f,
seguidamente de un vector y para los valores de y=f(x) (esto es, expresando simbólicamente la
función).
Una vez creados ambos vectores se utiliza el comando plot(x,y) para la creación del gráfico de
la función.














EJEMPLO: graficar la función
() = cos ()
en el intervalo [-2,2]

>> x=-2:0.1:2;

>> y=cos(x);

>> plot(x,y)

MATLAB genera la siguiente figura

Definimos el vector [-2,2] que es
el dominio de la función f
Calculamos el valor de y en
cada punto del vector [-2,2]
Finalmente creamos el gráfico
75


MATLAB Orientado a la matemática aplicada





Es importante señalar que para graficar funciones cuya expresión simbólica involucra una
potenciación (o división), debe colocarse un punto antes del operador potencia (o división).












EJEMPLO: graficar la función
=
2

en el intervalo [-2,2]

>> x=-2:0.1:2;
>> y=x.^2;
>> plot(x,y)


Notar que escribimos y=x.^2
en vez de y=x^2
76


Andrés Pérez





Graficando curvas paramétricas en el plano
Consideremos la función paramétrica
() = 〈(), ()〉
Donde t es el parámetro y las funciones componente de r son x=f(t) , y=g(t) (estas últimas son
funciones de valor real en la variable t). Para crear el gráfico de la curva paramétrica 2D que
induce este tipo de función se tienen los siguientes pasos:
1. Crear un vector con los valores del parámetro t del dominio de la función r, por
ejemplo
>>t=-a:i:b
donde i representa el incremento (para mayor información consulte la tabla)
Con esto se define el intervalo [a,b] , el cual corresponde al dominio de la función r.

2. Calcular el valor de x, y en cada punto del vector anterior (esto es, representar
simbólicamente las funciones componentes de t). En este caso, como en el
bidimensional, si la expresión simbólica de las funciones f, g involucra una
potenciación (o división), debe colocarse un punto antes del operador potencia (o
división).

3. Representar el gráfico. Para ello se emplea el comando
>>plot(x,y)
77


MATLAB Orientado a la matemática aplicada

EJEMPLO: visualizar el gráfico de la circunferencia unitaria centrada en el
origen, sabiendo que una parametrización de la misma es



t=0:0.1:2*pi

x=cos(t);

y=sin(t);

plot(x,y)









() = 〈(), ()〉, 0 ≤ ≤ 2




















Definimos el vector [0,7π],
que es el domino de la
función r

Definimos las funciones
componente de r

Finalmente representamos el
gráfico de la circunferencia

78


Andrés Pérez


GRÁFICOS EN 3D
Los gráficos tridimensionales proporcionan una manera muy práctica de representar datos de
más de dos variables. La sintaxis para estos gráficos es análoga a la utilizada para el caso
bidimensional.
Graficando funciones del tipo z=f(x,y)
Para representar funciones que tiene la formaz=f(x,y) (donde x,y son las variables
independientes y la variable dependiente es z) se utilizan los gráficos de malla y superficie en
3D. Los gráficos de malla y superficie se generan siguiendo tres pasos:
1. Crear una rejilla en el plano XY que cubre el dominio de la función. Para ello se deben
definir dos vectores x, y por ejemplo

>>x=[a:i:b]
>>y=[c:i:d]

donde i representa el incremente y seguidamente se utiliza el comando

>>[x,y]=meshgrid(x,y)

Con el cual se define la región [a,b]×[c,d] del plano XY, la cual corresponde al dominio
de la función f.

2. Calcular el valor de z en cada punto de la rejilla (esto es, representar simbólicamente la
función). En este caso, como en el bidimensional, si la expresión simbólica de la
función involucra una potenciación (o división), debe colocarse un punto antes del
operador potencia (o división).

3. Representar el grafico. Para ello se tienen dos comandos alternativos:

• para crear un gráfico de malla:
>>mesh(x,y)

• para crear un gráfico de superficie:
>>surf(x,y)
A continuación mostraremos los distintos modelos de gráficos de malla y de superficie, para
representar la función
(, ) =
cos ((
2
+
2
) 4 ⁄ )

2
+
2
+3

en el rectángulo [-5,5]×[-5,5]
79


MATLAB Orientado a la matemática aplicada

EJEMPLO: visualizar el gráfico de malla de la función f
>> x=-5:0.1:5;
>> y=-5:0.1:5;
>> [x,y]=meshgrid(x,y);
>> z=cos((x.^2+y.^2)./4)./(3+x.^2+y.^2);
>> mesh(x,y,z)
























Otras configuraciones para hacer un gráfico de malla son:
• meshz(x,y,z) (gráfico de malla con cortina)
• meshc(x,y,z) (gráfico de malla con contorno)

Ahora vamos con la otra modalidad.
80


Andrés Pérez

EJEMPLO: visualizar el gráfico de superficie de la función f
>> x=-5:0.1:5;
>> y=-5:0.1:5;
>> [x,y]=meshgrid(x,y);
>> z=cos((x.^2+y.^2)./4)./(3+x.^2+y.^2);
>> surf(z)

























EL gráfico de malla también ofrece otras configuraciones:
• surfc(x,y,z) (gráfico de superficie con contorno)
• surfl(x,y,z) (gráfico de superficie con alumbrado)

81


MATLAB Orientado a la matemática aplicada

Graficando curvas paramétricas en el espacio
Consideremos la función paramétrica
() = 〈(), (), ℎ()〉
Donde t es la variable independiente (o parámetro) y las funciones componente de r son
x=f(t), y=g(t), z=h(t) (estas últimas son funciones de valor real en la variable t). Para crear el
gráfico de la curva paramétrica 3D que induce este tipo de función se tienen los siguientes
pasos:
1. Crear un vector con los valores del parámetro t del dominio de la función r, por
ejemplo

>>t=-a:i:b

donde i representa el incremento.
Con esto se define el intervalo [a,b] del eje X, la cual corresponde al dominio de la
función r.

2. Calcular el valor de x, y, z en cada punto del vector anterior (esto es, representar
simbólicamente las funciones componentes de t). En este caso, como en el
bidimensional, si la expresión simbólica de las funciones f, g, h involucra una
potenciación (o división), debe colocarse un punto antes del operador potencia (o
división).

3. Representar el grafico. Para ello se emplea el comando
>>plot3(x,y,z)











EJEMPLO: graficar la curva paramétrica en 3D que define la siguiente función
() = 〈(), (), 〉
en el dominio [0,7π]
t=0:0.1:7*pi;
x=cos(t);
y=sin(t);
z=t;
plot3(x,y,z)




82


Andrés Pérez































83


MATLAB Orientado a la matemática aplicada

EJERCICIOS 5

1. Grafique la siguiente función
() =
3

en el intervalo [−2,2]

2. Grafique la siguiente función
() =

+1

en el intervalo [−3,2]

3. Considere las siguientes funciones

a) =
4

2
[−2,3]
b) =
+3

[−3,3]
c) =

+



[−1,2]
d) = ( +2)[−4,2]
e) = () +
3
()[−2, 2]

Se desea visualizar la gráfica de las anteriores funciones en los intervalos indicados.

4. Visualice el gráfico de la circunferencia de radio 2 centrada en el origen Sugerencia:
utilice la parametrización
() = 〈2(), 2()〉, 0 ≤ ≤ 2

5. Visualice la gráfica de la hipérbola
2

2
= 1. Sugerencia: utilize la parametrización
() = 〈ℎ(), ℎ()〉,

6. Considere las siguientes funciones paramétricas

a) () = 〈4cos() , 3()〉, 0 ≤ ≤ 2
b) () = 〈 −(), 1 −cos ()〉, − ≤ ≤
c) () = 〈 −(), 1 −cos ()〉, 0 ≤ ≤
d) () = 〈−() +2cos(− 2 ⁄ ) , −() +2(− 2 ⁄ )〉, 0 ≤ ≤ 2
e) () = 〈
3
(),
3
()〉, 0 ≤ ≤
f) () = 〈 −tanh() , sech()〉, − ≤ ≤
84


Andrés Pérez

Visualice la gráfica de las curvas paramétricas asociadas.

7. Grafique la función
(, ) = −

3

3


En el rectángulo [−2,2] × [−2,2]

8. Grafique la function
(, ) =
−3

2
+
2
+1

2

2

En el rectángulo [−3,3] × [−3,3]

9. Obtenga el gráfico de las siguientes funciones en los rectángulos indicados

a) =
2
+
2
, [−2,2] × [−2,2]
b) =
2

2
, [−3,2] × [−3,2]
c) = () +(), [−2, 2] × [−2, 2]
d) =
()()

[−3,3] × [−3,3]

10. La curva que induce la función
() = 〈cos() , (), 〉
Se llama hélice. Bosqueje su gráfico para 2 ≤ ≤ 60.

11. Visualice el gráfico de la recta que pasa por el punto (3,1, −2) y cuyo vector director
es (2,3,1). Sugerencia: utilize la parametrización
() = 〈3 +2, 1 +2, −2 −〉, −7 ≤ ≤ 6

12. Las siguientes funciones definen curvas paramétricas

a) () = 〈,
2
,
3

b) () = 〈cos (), ()cos (2), 〉
c) () = 〈(), [(), 〉
d) () = 〈2(), 2(), √8)〉
e) () = 〈(2),2
2
() ,2cos ()〉

Obtenga la gráfica de dichas curvas para −3 ≤ ≤ 3.


85


MATLAB Orientado a la matemática aplicada

CAPITULO 6. ESTADÍSTICA

El paquete estadístico de MATLAB ha sido desarrollado para proveer ayuda a cualquier tipo de
área, desde las finanzas hasta la ingeniería, con herramientas interactivas capaces de
establecer análisis de datos, además viene acompañado de una completa serie de funciones
para desarrollar desde las más básicas aplicaciones estadísticas hasta un completo diseño y
proceso de cualquier análisis estadístico.
MEDIDAS DE LOCALIZACIÓN
Media aritmética
Para calcular la media aritmética o promedio se emplea la función
>>mean(a)
donde a es un vector o una matriz.
• Si a es un vector, se calcula la media de los valores
• Si a es una matriz, se calcula la media de cada columna















EJEMPLO:
>> a =[8 9 2 9 7 2 4];
>> mean(a)
ans =
5.8571
>> b =[6 2 5 5 10 9;
10 10 8 9 7 9;
10 10 2 8 1 7];
mean(b)
ans =
8.6667 7.3333 5.0000 7.3333 6.0000 8.3333
86


Andrés Pérez

Otra sintaxis del comando mean es
>>mean(a,dim)
donde
• a es una matriz
• dim es 1 o 2. Si es 1 se calculará la media de cada columna. Si es 2 se calculará
la media de cada fila















Media geométrica
Para este cálculo están los comandos
>>geomean(a)
y
>>geomean(a,dim)
donde a y dim se comportan de la misma forma que en comando mean

EJEMPLO:
>>a =[ 8 6 5 1 0;
8 1 8 6 3;
4 1 9 5 2];
>> mean(a,1)
ans =
6.6667 2.6667 7.3333 4.0000 1.6667
>> mean(a,2)
ans =
4.0000
5.2000
4.2000
87


MATLAB Orientado a la matemática aplicada









Media armónica
La función es
>>harmmean(a)
Y
>>harmmean(a,dim)
donde a y dim se comportan de la misma forma que en comando mean













EJEMPLO:
>>a =[ 9 2 8 5];
>> geomean(a)
ans =
5.1800

EJEMPLO:
>> a =[8 2;
3 2;
7 5;
7 10];
>> harmmean(a,2)
ans =
3.2000
2.4000
5.8333
8.2353
88


Andrés Pérez

Media ajustada

Se emplea el comando
>>trimmean(a,y)
donde
• a funciona de la misma manera que en el comando mean
• y representa el número de percentiles que se quieren obviar en los extremos













Máximo
Comando
>>max(a)
donde a es un vector
En caso de que a sea una matriz, el comando es
>>max(a,[ ],dim)
donde dim es 1 o 2
EJEMPLO:
>> a =[4 4 4 2 2 2;
3 8 8 1 6 8;
3 6 8 6 5 4;
7 6 4 8 1 6;
5 9 6 9 4 2];
trimmean(a,3)
ans =
4.4000 6.6000 6.0000 5.2000 3.6000 4.4000
89


MATLAB Orientado a la matemática aplicada

• Si dim es 1 se calculará el máximo de cada columna
• Si dim es 2 se calculará la máximo de cada fila














Mínimo
Los comandos afines son
>>min(a)
y
>>min(a,[],dim)
donde a y dim funcionan de la misma forma que en el comando max






EJEMPLO:
>> a =[6 7 2 2;
3 8 3 8;
7 5 9 6];
>> max(a,[],1)
ans =
7 8 9 8
>> max(a,[],2)
ans =
7
8
9
EJEMPLO:
>> a=[2 3 9 3 8];
>> min(a)
ans =
2
90


Andrés Pérez

Mediana
Comando
>>median(a,dim)
donde a y dim funcionan de la misma forma que en el comando mean







MEDIDAS DE DISPERSIÓN
Desviación estándar
Comando
>>std(a,flag,dim)
donde
• a es un vector o una matriz y funciona de la misma manera que en el comando mean
• flag es 0 o 1. Si vale 0, retorna la desviación estándar corregida. Si vale 1 devuelve la
desviación estándar sin corregir
• dim funciona de la misma manera que en el comando mean









EJEMPLO:
>> A=[3 9 4 3];
>> median(a)
ans =
3.5000
EJEMPLO:
>> a =[10 2 5 2 10 1 8];
>> std(a,0)
ans =
3.9097
>> std(a,1)
ans =
3.6197
91


MATLAB Orientado a la matemática aplicada

Varianza
Para la varianza corregida se usa el comando
>>var(a)
donde a es un vector o una matriz.
Para la varianza sin corregir
>>var(a,1)











Rango
Comando
>>range(a)
donde a se comporta de la misma manera que en el comando mean







EJEMPLO:
>> a=[7 8 5];
>> std(a)
ans =
1.5275
>> std(a,1)
ans =
1.2472
EJEMPLO:
>> a =[8 9 2];
>> range(a)
ans =
7

92


Andrés Pérez

Rango intercuartil
Comando
>>iqr(a)
donde a se comporta de la misma manera que en el comando mean


















Percentil
Comando
>>prctile(a,p)
donde
• a se comporta de la misma manera que en el comando mean
• p corresponde al percentil que se busca, puede ser un vector o un escalar
EJEMPLO:
>> a =[4 6 10 10];
>> iqr(a)
ans =
5
>> b =[5 3 6;
3 3 6;
8 2 2;
5 2 9;
9 9 7];
>> iqr(b)
ans =
3.7500 2.5000 2.5000
93


MATLAB Orientado a la matemática aplicada








Quantil
Comando
>>quantile(a,p,dim)
donde
• a se comporta de la misma manera que en el comando mean
• p corresponde al quantil que se busca, puede ser un vector o un escalar y se encuentra
entre el rango [0,1]
• dim se comporta de la misma manera que en el comando mean










Oblicuidad
Comando
>>skewness(a)
donde a se comporta de la misma manera que en el comando mean
EJEMPLO:
>> a =[8 5 7];
>> prctile(a,3)
ans =
5

EJEMPLO:
>> a =[1 10 5;
9 5 4];
>> quantile(a,0.3,2)
ans =
2.6000
4.4000

94


Andrés Pérez











Curtosis
Comando
>>kurtosis(a,flag)
donde
• a se comporta de la misma manera que en el comando mean
• flag es 0 o 1. Si vale 0 se corrige la diagonal. Si vale 1 no se corrige








Tabla con las frecuencias absolutas y relativas
Comando
>>tabulate(a)
donde a representa la muestra y sólo puede ser un vector
EJEMPLO:
>> a =[0 1 3 4 8 4 8;
3 8 10 4 2 6 3;
0 7 0 8 5 7 7];
>> skewness(a)
ans =
0.7071 -0.6520 0.4451 0.7071 0 -0.3818 -0.5952
EJEMPLO:
>>a =[8 9 3;
4 2 1];
>> kurtosis(a,1)
ans =
1 1 1
95


MATLAB Orientado a la matemática aplicada












Desviación absoluta
Comando
>>mad(a,flag,dim)
donde
• a se comporta de la misma manera que en el comando mean
• flag es 0 o 1. si vale 0 se calcula la desviación absoluta media. Si vale 1 se calcula la
desviación absoluta mediana










EJEMPLO:
>> a =[4 5];
>> tabulate(a)
Value Count Percent
1 0 0.00%
2 0 0.00%
3 0 0.00%
4 1 50.00%
5 1 50.00%
EJEMPLO:
>>a =[3 5 8 5;
6 4 6 9];
>> mad(a,0,2)
ans =
1.3750
1.3750
96


Andrés Pérez

Momentos centrales
Comando
>>moment(a,order,dim)
donde
• a se comporta de la misma manera que en el comando mean
• order es un entero positivo
• dim se comporta de la misma manera que en el comando mean













GRUPOS DE DATOS
Matriz de covarianza
Comando
>>cov(a)
donde a es un vector o una matriz
• Si a es un vector, devuelve un valor con la varianza del mismo
• Si a es una matriz, cada columna es una observación y cada columna una variable
EJEMPLO:
>> a =[8 5 4;
1 6 7;
1 4 8;
3 8 2;
7 3 9;
8 7 8;
7 3 5];
>> moment(a,2)
ans =
8.8571 3.2653 5.5510









97


MATLAB Orientado a la matemática aplicada










Matriz de correlación lineal
Comando
>>corr(a)
donde a debe ser una matriz










Matriz de los coeficientes de correlación
El comando es corrcoef, y su sintaxis es
>> [R,P,RLO,RUP]=corrcoef(a)
Donde el argumento de entrada es
• a: la cual debe ser una matriz
EJEMPLO:
>> a =[5 6;
2 3];
>> cov(a)
ans =
4.5000 4.5000
4.5000 4.5000
EJEMPLO:
>> a =[8 10;
5 1];
>> corr(a)
ans =
1 1
1 1
98


Andrés Pérez

Mientras que los argumentos de salida son
• R: matriz con los coeficientes de correlación
• P: matriz con los valores p usados en las pruebas de hipótesis
• RLO y RUP son los límites de determinado intervalo a 95% de confianza




















EJEMPLO:
>> a =[7 4;
6 5;
3 3];
>> [R,P,RLO,RUP]=corrcoef(a)
R =
1.0000 0.7206
0.7206 1.0000

P =
1.0000 0.4878
0.4878 1.0000

RLO =
1 NaN
NaN 1

RUP =
1 NaN
NaN 1
99


MATLAB Orientado a la matemática aplicada

Matriz con tabulación-cruzada
Comando
>>crosstab (a,b)
donde a y b son vectores


















Resumen estadístico por grupo
Comando
>>grpstats(a,group)
donde
• a es una matriz
• group es el vector que define como se agruparán los datos
EJEMPLO:
>> a =[10 5 8 2 5 9 8 10 7 1 9 9];
>>b =[7 8 8 5 7 3 7 1 3 1 2 8];
>> crosstab(a,b)
ans =
1 0 0 0 0 0
0 0 0 1 0 0
0 0 0 0 1 1
0 0 1 0 0 0
0 0 0 0 1 1
0 1 1 0 0 1
1 0 0 0 1 0
100


Andrés Pérez





















GRÁFICOS ESTADÍSTICOS
MATLAB proporciona grandes facilidades en lo relacionado con gráficas, situación que permite
automatizar y agilizar el manejo y procesamiento de las mismas. Para ello dispone de una serie
de funciones que permiten modificar dentro de la figura los parámetros que afectan el
resultado de la misma.
Las gráficas en MATLAB permiten la posibilidad de adecuarlas de tal forma que sean
completamente entendibles para los usuarios, por medio de las diferentes posibilidades
existentes para insertar en las gráficas

EJEMPLO:
>>a =[5 10 1 5 3;
3 6 1 6 4;
5 2 3 4 7;
2 3 7 8 8;
2 4 8 3 2;
9 8 7 7 9];
>> group=[9 2 1 4 1 5];
>> grpstats(a,group)
ans =
3.5000 3.0000 5.5000 3.5000 4.5000
3.0000 6.0000 1.0000 6.0000 4.0000
2.0000 3.0000 7.0000 8.0000 8.0000
9.0000 8.0000 7.0000 7.0000 9.0000
5.0000 10.0000 1.0000 5.0000 3.0000
101


MATLAB Orientado a la matemática aplicada

Gráficos simples
Comando
>>plot(x,y)
donde x, y son vectores de igual longitud
Cuando se ejecuta el comando plot, el gráfico se crea en la Ventana de Gráficos. Si no se ha
abierto previamente, esta ventana se abrirá automáticamente el a jecutar el comando. La
representación del gráfico que se mostrará se corresponde con una curva donde los valores de
x serán los de la abscisa (eje horizontal) y los de y los de la ordenada (eje vertical). La curva se
construye mediante segmentos de recta que unen los puntos cuyas coordenadas están
definidas por los elementos de los vectores x, y.




















EJEMPLO:
>> x=[1:8];
>> y =[3 7 1 3 1 2 8 7];
>> plot(x,y)

102


Andrés Pérez

Línea de ajuste de mínimos cuadrados
El comando que genera esta línea es lsline, y la sintaxis de su uso es
>>plot(y,’+’)
>>lsline
donde y es un vector

























EJEMPLO:
>> y =[5 10 4 6 3 8 3 6 7 9 10 6];
>> plot(y,'+');
>> lsline



103


MATLAB Orientado a la matemática aplicada

Histograma
El comando es hist. Para generar el gráfico de histograma con diez barras igualmente
espaciadas, la sintaxis es
>>hist(y)
donde y es un vector
Otra sintaxis es
>>hist(y,n)
donde n representa el número de barras que se desean en el gráfico




















EJEMPLO:
>> y =[4 10 1 5 4 8 8 3 5 5];
>> hist(y)


104


Andrés Pérez

Gráfico de barras verticales
Comando
>>bar(x,y)
donde x, y son vectores de igual longitud
























EJEMPLO:
>> x=[1:8];
>> y =[4 2 8 4 6 2 6 3];
>> bar(x,y)


105


MATLAB Orientado a la matemática aplicada

Gráfico de barras horizontales
Comando
>>barh(x,y)
donde x, y son vectores de igual longitud
























EJEMPLO:
> x=[5:13];
>> y =[7 7 8 5 2 3 9 2 8];
>> barh(x,y)


106


Andrés Pérez

Gráfico de escaleras
Comando
>>stairs(x,y)
donde x, y son vectores de igual longitud
























EJEMPLO:
>> x=[-2:4];
>> y=[3 5 2 6 4 7 1];
>> stairs(x,y)


107


MATLAB Orientado a la matemática aplicada

Gráfico de tallo
Comando
>>stem(x,y)
donde x, y son vectores de igual longitud
























EJEMPLO:
>> x=[3:8];
>> y =[8 9 2 9 7 2];
>> stem(x,y)


108


Andrés Pérez

Gráfico de tarta
Comando
>>pie(x)
donde x es un vector
























EJEMPLO:
>> x =[4 6 10 10 2];
>> pie(x)


109


MATLAB Orientado a la matemática aplicada

Generación de números al azar
Comando
>>randtool
Esta función permite generar de forma interactiva números al azar mostrando los resultados
gráficos por medio de un histograma. Instala un interfaz gráfico que permite indagar los
efectos al realizar cambios en los parámetros que afectan la función que se desee graficar




















Además, la interfaz que se abre con la función, permite fijar valores de parámetro para la
distribución y para cambiar sus límites superiores e inferiores en la generación de datos
aleatorios.
EJEMPLO:
>>randtool


110


Andrés Pérez

Diagramas de distribuciones de probabilidad
Comando
>> disttool
Esta función permite generar de forma interactiva diagramas de diferentes distribuciones de
probabilidad. La interfaz generada por esta función permite escoger entre dos tipos de
diagramas, el de cdf (genera una función distribución acumulativa elegida) o el de pdf (función
de densidad de probabilidad para una distribución especificada) .


























Al igual que la función presentada con anterioridad permite realizar modificaciones a los
parámetros relacionados con las características de la misma interfaz generada.

EJEMPLO:
>> disttool


111


MATLAB Orientado a la matemática aplicada

EJERCICIOS 6

1. Según el INE, la población venezolana ha evolucionado (de acuerdo a los censos 1873-
2011) de la siguiente manera
Censos Población
1873 1732411
1881 2005139
1891 2221572
1920 2479525
1926 2814131
1936 3364347
1941 3850771
1950 5034838
1961 7523999
1971 10721522
1981 14516735
1990 18105265
2001 23054210
2011 27227930

Calcule la el promedio y la mediana de la población venezolana entre los años 1873 y
2011.

2. Según el INE, la población del estado Lara (mejor conocida como la capital musical de
Venezuela) ha evolucionado (de acuerdo a los censos 1873-2011) de la siguiente
manera

LARA
Censo Población
1873 143818
1881 176079
1891 189624
1920 219816
1926 271369
1936 291230
1941 332975
1950 368169
1961 489140
1971 671410
1981 945064
1990 1193161
2001 1556415
2011 1774867

Calcula la media geométrica, armónica y ajustada de la población del estado Lara.

3. A continuación mostramos las cifras dadas por el INE (de acuerdo a los censos 1873-
2011) respecto a la evolución de la población en 5 estados venezolanos


112


Andrés Pérez

Lara Miranda Carabobo Distrito
Capital
Aragua
1873 143818 109917 113715 58050 110828
1881 176079 127844 132316 67735 108085
1891 189624 141446 165156 86965 94195
1920 219816 174266 125514 107236 97251
1926 271369 189572 147204 155499 105849
1936 291230 216527 172127 237069 129746
1941 332975 227604 191442 326712 138235
1950 368169 276273 242923 623713 189891
1961 489140 492349 381636 1116245 313274
1971 671410 856272 659339 1658500 543170
1981 945064 1421442 1062268 1816901 891623
1990 1193161 1871093 1453232 1823222 1120132
2001 1556415 2330872 1932168 1836286 1449616
2011 1774867 2675165 2245744 1943901 1630308


Calcule por estado
a) La desviación estándar corregida y sin corregir
b) La varianza corregida y sin corregir

4. Considerando los datos del ejercicio 3 calcule por año
a) La desviación estándar corregida y sin corregir
b) La varianza corregida y sin corregir

5. Considerando los datos del ejercicio 1 calcule
a) La matriz de covarianza
b) La matriz de correlación lineal
c) La matriz de los coeficientes de correlación

6. Considerando los datos del ejercicio 2 visualice l
a) El gráfico simple
b) El gráfico de barras verticales
c) El gráfico de barras horizontales
d) El gráfico de escaleras
e) El gráfico de tallo







113


MATLAB Orientado a la matemática aplicada

CAPÍTULO 7. OPTIMIZACIÓN

MATLAB proporciona comandos para resolver problemas de optimización tales como:
programación lineal y cuadrática, minimización no lineal con restricciones, minimización no
lineal restringida, logro de objetivos minimización semi-infinita, entre otros. En este capítulo
sólo nos enfocaremos en la programación lineal y la programación cuadrática.
PROGRAMACIÓN LINEAL

Formato general de un programa lineal
Un programa lineal (PL) se escribe de la siguiente forma
Maximizar o minimizar =
1

1
+
2

2
+⋯+

Sujeto a

11

1
+
12

2
+⋯+
1


1

21

1
+
22

2
+⋯+
2


2

⋮ ⋮ ⋮

1

1
+
2

2
+⋯+


11

1
+�
12

2
+⋯+�
1

=

1


21

1
+�
22

2
+⋯+�
2

=

2

⋮ ⋮ ⋮

1

1
+�
2

2
+⋯+�

=

1

1

1

2

2

2

Si hacemos
Restricciones
de desigualdad
Restricciones
de igualdad
Función
objetivo
Acotación de
las variables
114


Andrés Pérez

= (

1

2

) , = �

1

2


= �

12

12

21

21


1

2
⋮ ⋮ ⋮

1

2

� , = �

1

2


= �

12

12


21

21


1


2
⋮ ⋮ ⋮

1

2


� , =



1


2




= �

1

2

� , = �

1

2


El PL se puede escribir matricialmente como
Maximizar o minimizar =
Sujeto a

=
≤ ≤

Minimización
La sintaxis en para resolver un PL de minimización es

>>[X,z] = linprog(C,A,B,Aeq,Beq,L,U)

Donde los argumentos de entrada son
o C: el vector fila dado en la función objetivo
o A: la matriz dada en la restricción de desigualdad
o B: es el vector columna dado en la restricción de desigualdad
o Aeq: es la matriz dada en la restricción de igualdad
o Beq: es el vector columna dado en la restricción de igualdad
o L y U son los vectores columna dados en la acotación de las variables de decisión

Mientras que los argumentos de salida son
o X: vector columna con la solución óptima del PL
o z: valor máximo de la función objetivo



115


MATLAB Orientado a la matemática aplicada








































EJEMPLO: resolver el siguiente PL
Minimizar = 3
1
+5
2
−4
3

Sujeto a
−7
1
+2
2
+3
3
≤ −4
5
1
−3
2
−2
3
≤ 9
−2
1
+4
2
+8
3
= −3
1 ≤
1
≤ 4 , 0 ≤
2
≤ 7 , 0 ≤
3
≤ 9
>> C=[3 5 -4];
>> A=[-7 2 3;5 -3 -2];
>> Aeq=[-2 4 8];
>> B=[-4;9];
>> Beq=[-3];
>> L=[1;0;0];
>> U=[4;7;9];
>> [X,z]=linprog(C,A,B,Aeq,Beq,L,U)
Optimization terminated.
X =
1.5
1.7756e-013
3.4227e-012
z =
4.5
Así, el mínimo valor de la función objetivo es = 4.5 y ocure en la solución
óptima
1
= 1.5 ,
2
= 1.7756e −013 y
3
= 3.4227e −012.




116


Andrés Pérez


Cuando en un PL no hay restricciones de de igualdad, en vez de colocar Aeq y Beq como
argumentos de entrada de la función linprog, se escriben dos corchetes []. De forma similar
ocurre cuando no hay acotación de variables.
























EJEMPLO: en Granjas Modelo se usa diariamente un mínimo de 800 libras (lb) de
un alimento especial, que es una mezcla de maíz y soya, con las composiciones
siguientes
lb por lb de alimento
Alimento Proteínas Fibras Costo ($/lb)
Maíz 0.09 0.02 0.30
Soya 0.60 0.06 0.90

Las necesidades dietéticas del alimento especial son un mínimo de 30% de
proteínas y un máximo de 5% de fibras. Granjas Modelo desea determinar las
proporciones de alimento que produzcan un costo diario mínimo.

Como la mezcla de alimentos consiste en maíz y soya, las variables de decisión del
modelo se definen como

1
= lb de maíz en la mezcla diaria

2
= lb de soya en la mezcla diaria
La función objetivo se expresa como sigue
= 0.3
1
− 0.9
2

Así, el PL a resolver es
Minimizar = 0.3
1
− 0.9
2

Sujeto a

1
+
2
≥ 800
0.21
1
−0.30
2
≤ 0
0.03
1
−0.01
2
≥ 0

1
,
2
≥ 0
multiplicando por -1 en ambos lados de la primera y tercera restricción, obtenemos
un PL equivalente al anterior


117


MATLAB Orientado a la matemática aplicada























Maximización
Resolver un PL de maximización
Maximizar =
Sujeto a

=
Minimizar = 0.3
1
− 0.9
2

Sujeto a

1

2
≤ −800
0.21
1
−0.30
2
≤ 0
−0.03
1
+0.01
2
≤ 0

1
,
2
≥ 0
>> C=[0.3 0.9];
>> A=[-1 -1;0.21 -0.30;-0.03 0.01];
>> B=[-800;0;0];
>> [X,z]=linprog(C,A,B,[],[],L,[])
Optimization terminated.
X =
470.5882
329.4118
z =
437.6471
Entonces el costo mínimo correspondiente, de la mezcla de alimentos, es
= $437.6471 diarios.

118


Andrés Pérez

≤ ≤
es equivalente a resolver un Pl de minimización

Minimizar = −
Sujeto a

=
≤ ≤
Nótese que la diferencia entre estos dos PL es que la función objetivo del segundo es el
opuesto aditivo del la del primero. En este caso la solución óptima del problema de
minimización es la misma del problema de maximización, y el el valor máximo de Z es el valor
mínimo de z.

























EJEMPLO: la compañía Reddy Mikks produce pinturas para interiores y
exteriores, M1 y M2. La tabla siguiente proporciona los datos básicos del
problema
Ton de materia prima
Pintura para
exteriores
Pintura para
interiores
Disponibilidad
diaria
Materia prima
M1
6 4 24
Materia prima
M2
1 2 6
Utilidad por ton
(miles de $)
5 4

Una encuesta de mercado indica que la demanda diaria de pintura para
interiores no puede ser mayor que 1 tonelada más que la de pintura para
exteriores. También, que la demanda máxima diaria de pintura para interiores es
de 2 toneladas. Reddy Mikks desea determinar la mezcla óptima (la mejor) de
productos para exteriores y para interiores que maximice la utilidad diaria total.
El modelo a resolver es

119


MATLAB Orientado a la matemática aplicada




























Maximizar Z= 5
1
+4
2

Sujeto a
6
1
+4
2
≤ 24

1
+2
2
≤ 6

1
+
2
≤ 1

2
≤ 2

1
,
2
≥ 0
por ello resolveremos el siguiente PL

Minimizar = −5
1
−4
2

Sujeto a
6
1
+4
2
≤ 24

1
+2
2
≤ 6

1
+
2
≤ 1

2
≤ 2

1
,
2
≥ 0

>> C=[-5 -4];
>> A=[6 4;1 2;-1 1;0 1];
>> B=[24;6;1;2];
>> L=[0;0];
>> [X,z]=linprog(C,A,B,[],[],L,[])
Optimization terminated.
X =
3.0000
1.5000
z =
-21.0000

Luego, la solución de PL original es
1
=3.0000 y
2
= 1.5000. Y al utilidad
máxima diaria es de = − = −(−21.0000) = 21.0000 dólares.

120


Andrés Pérez

PROGRAMACIÓN CUADRÁTICA
Un problema general de este tipo puede definirse como sigue
Minimizar =
1
2

+

Sujeto a

=
≤ ≤
donde D es una matriz cuadrada, simétrica y tal que

≥ 0
Aquí

denota la traspuesta de y

la traspuesta de . La sintaxis para resolver el modelo
de programación cuadrática es
>>[X,z] = quadprog(D,C,A,B,Aeq,Beq,L,U)
Nótese que la diferencia entre un PL y un problema de programación cuadrática es la forma de
la función objetivo.














EJEMPLO: dadas las matrices
= �
1 −1
−1 2
� , = �
−2
−6
� , = �
1 1
−1 2
2 1

= �
2
2
3
�, = �

1

2

solucionar el problema
Minimizar =
1
2

+

Sujeto a

≥ 0
Vemos que la matriz es simétrica, además

=
1
2
−2
1

2
+2
2
2
≥ 0
entonces nuestro programa es cuadrático

121


MATLAB Orientado a la matemática aplicada



















Para resolver un programa cuadrático de maximización
Maximizar =
1
2

+

Sujeto a

=
≤ ≤
hacemos
= − = −�
1
2

+

� =
1
2

(−) + (−

)

>> D=[1 -1;-1 2];
>> C=[-2;-6];
>> A=[1 1;-1 2;2 1];
>> B=[2;2;3];
>> L=[0;0];
>> [X,z] = quadprog(D,C,A,B,[],[],L,[])
Warning: Large-scale method does not currently solve this problem formulation,
using medium-scale method instead.
> In quadprog at 264
Optimization terminated.
X =
0.6667
1.3333
z =
-8.2222




122


Andrés Pérez

y procedemos a resolver
Minimizar =
1
2

(−) + (−)

Sujeto a

=
≤ ≤
verificando que se satisfaga

(−) ≥ 0




















EJEMPLO: dadas las matrices
= �
−4 −2
−2 −4
� , = �
4
6
� , = ( 1 2 ) , = ( 2 )
Maximizar =
1
2

+

Sujeto a

1
,
2
≥ 0
Vemos que

(−) = 2
1
2
+2
1

2
+2
2
2
≥ 0
Así el modelo es cuadrático, y procedemos a hallar que minimice = −
>> D=[4 2;2 4];
>> C=[-4;-6];
>> A=[1 2];
>> B=[2];
>> L=[0;0];
>> [X,z]=quadprog(D,C,A,B,[],[],L,[])
Warning: Large-scale method does not currently solve this problem formulation,
using medium-scale method instead.

123


MATLAB Orientado a la matemática aplicada












Un programa cuadrático también se puede plantear sin especificar las matrices y , en lugar
de ello se muestra la función objetivo en la forma
=
1
2
��

+

=1

=1

=1


En la parte lineal es evidente la forma de la matriz . Por el contrario, saber como viene dada
la matriz no es fácil. Para ello veamos el siguiente ejemplo.










>> In quadprog at 264
Optimization terminated.
X =
0.3333
0.8333
z =
-4.1667
Luego, el valor máximo de es = − = −(−4.1667) = 4.1667
EJEMPLO:
Minimizar = 2
1
2
−4
1

2
+4
2
2
−15
1
−30
2

Sujeto a

1
+2
2
≤ 30

1
,
2
≥ 0

Primeramente debemos hallar una matriz D simétrica de orden 2x2 tal que
1
2

= 2
1
2
−4
1

2
+4
2
2



124


Andrés Pérez




























>> syms x1 x2 D d11 d d22
>> D=[d11 d;d d22]
D =
[ d11, d]
[ d, d22]
>> pretty(expand((1/2)*[x1 x2]*D*[x1;x2]))

Lo cual nos indica que
11
= 4 , = −4 y
22
= 8.
De manera que los datos de nuestro problema son
= �
4 −4
−4 8
� , = �
−15
−30
� , = ( 1 2 ), = ( 30 )
>> D=[4 -4;-4 8];
>> C=[-15;-30];
>> A=[1 2];
>> B=[30];
>> L=[0;0];
>> [X,z]=quadprog(D,C,A,B,[],[],L,[])
Warning: Large-scale method does not currently solve this problem
formulation,
using medium-scale method instead.
> In quadprog at 264
Optimization terminated.
X =
12
9
z =
-270


125


MATLAB Orientado a la matemática aplicada












En el ejemplo anterior utilizamos el comando simbólico expand, el cual permite expresar un
objeto simbólico de forma más amplia.















Lo cual nos muestra que solución óptima de nuestro programa cuadrático es

1
= 12 ,
2
= 9
Así, el mínimo valor de
= −270

Lo cual nos muestra que solución óptima de nuestro programa cuadrático es

1
=
2
= 0
Sin el mínimo valor de
= 0
126


Andrés Pérez

EJERCICIOS 7

1. Resolver
Minimizar = 3
1
+8
2

Sujeto a

1
+
2
≥ 8
2
1
−3
2
≤ 0

1
+2
2
≤ 30
3
1

2
≥ 0

1
≤ 10

2
≥ 9

1
,
2
≥ 0

2. Resolver
Maximizar = 5
1
+4
2

Sujeto a
6
1
+4
2
≤ 24
6
1
+3
2
≤ 22.5

1
+
2
≤ 5

2
+2
2
≤ 6

1
+
2
≤ 1

2
≤ 2

1
,
2
≥ 0

3. Modelos Alfa fabrica camisas y blusas para las Tiendas Beta, que aceptan toda la
producción de Alfa. En el proceso de producción interviene el corte, costura y
empacado. Alfa emplea 25 trabajadores en el departamento de corte, 35 en el
departamento de costura y 5 en el departamento de empaque. Esa fábrica trabaja
un turno de 8 horas, 5 días por semana. En la tabla siguiente se muestran los
tiempos necesarios y las utilidades unitarias para las dos prendas



127


MATLAB Orientado a la matemática aplicada

Minutos por unidad
Prenda Corte Costura Empaque Utilidad unitaria
($)
Camisas 20 70 12 8.00
Blusas 60 60 4 12.00

Mediante un programa lineal:

a) Determine el programa de producción semanal óptimo para Alfa.
b) Determine el valor de corte, costura y empaque por hora.

4. Juan acaba de entrar a la universidad, y se da cuenta que si sólo estudia y no juega,
su personalidad será gris. Desea repartir su tiempo disponible, aproximadamente
de 10 horas por día, entre juego y estudio. Estima que el juego es doblemente
divertido que el estudio. También desea estudiar cuando menos un tiempo igual al
que pasa jugando. Sin embargo, se da cuenta que si debe hacer todas sus tareas
escolares, no puede jugar más de 4 horas diarias. ¿Cómo debe repartir Juan su
tiempo, para maximizar su placer de estudiar y jugar?

5. Dadas las matrices

= �
−8 4
4 −8
� , = ( 12 12 ) , = �
0 1
1 1
� , = �
3
6


Maximizar =
1
2

+

Sujeto a

≥ 0


6. Resolver
Minimizar =
1
2
+
1

2
+
2
2

1

2

Sujeto a

1
+
2
≥ 2
2
1
≥ 1

1
,
2
≥ 0
128


Andrés Pérez


6. Resolver
Maximizar = −2
1
2
−4
1

2
−3
2
2
+6
1
+3
2

Sujeto a

1
+
2
≤ 1
2
1
+3
2
≤ 4

1
,
2
≥ 0
7. Resolver
Minimizar =
1
2
+
1

2
+2
2
2
+
1

2

Sujeto a

1
−2
2
≥ 2

1
+
2
≥ −1

1
,
2
≥ 0

8. Resolver
Minimizar = 2
1
2
+2
2
2
+3
3
2
+2
1

2
+2
2

3
+
1
−3
2
−5
3

Sujeto a

1
+
2
+
3
≥ 1
3
1
+2
2
+
3
≤ 6

1
,
2
,
3
≥ 0









129


MATLAB Orientado a la matemática aplicada

CAPÍTULO 8. MÉTODOS NUMÉRICOS

Los métodos numéricos se utilizan habitualmente para resolver problemas matemáticos
formulados en diferentes campos científicos y técnicos, donde es difícil o incluso imposible
obtener soluciones exactas a un problema dado.
MATLAB posee distintas librerías de funciones pensadas para la resolución numérica de una
gran variedad de problemas matemáticos. Sin embargo, el objetivo principal de este capítulo
no es presentar estas funciones predefinidas en MATLAB sino más bien, enseñar al lector como
poder implementar métodos numéricos mediante ficheros de función.
Este capítulo está compuesto por dos secciones: resolución de ecuaciones no lineales e
interpolación polinomial. Al final de cada una se mostrará los comandos ya predefinidos en
MATLAB afines a los métodos numéricos planteados.
RESOLUCIÓN DE ECUACIONES NO LINEALES
En general, no es posible determinar el cero de una función, es decir, el valor

tal que
(

) = 0, en un número finito de pasos. Esto hace necesario utilizar métodos numéricos. Los
métodos son usualmente iterativos (es decir, emplean una sucesión {

} )y tienen la forma:
• Iniciar con una aproximación inicial
0
(o en un intervalo [, ]) de


• Calcular las aproximaciones sucesivas
1
,
2
, … del cero según el esquema iterativo
dado por el método
• Elegir

como aproximación de

cuando se cumpla un criterio de parada dado
Un criterio de parada es la forma de indicar cuándo terminar la iteración del bucle. Algunos
criterios de parada son:
a) |


−1
| < ( es llamado tolerancia)
b) |(

)| < ( es llamado cota)
c) Un número máximo de iteraciones
Método de punto fijo
En muchos casos una ecuación no lineal aparece en la forma de “problema de punto fijo”:
Encuentre tal que () =
Un número =

que satisface esta ecuación se llama punto fijo de .
El esquema iterativo del método de punto fijo consiste en emplear la sucesión {

} dada por

0
(punto inicial)

+1
= (

) , = 0, 1, 2, …

130


Andrés Pérez









El código del fichero de función que resuelve este problema es el siguiente
function[informe]=met_punto_fijo(x0,maxi)
%ESTE SUBPROGRAMA APROXIMA LA UNICA SOLUCION REAL DE LA ECUACION
% x^3-4*x-1=0
%ESTANDO DICHA SOLUCION EN [-1,1]
%METODO:
% punto fijo
%FORMULACION:
% haciendo fx)=(x^3-1)/4
% hallar x tal que x=f(x)
%CRITERIO DE PARADA:
% un numero maximo de iteraciones
%ARGUMENTOS DE ENTRADA:
%x0: termino inicial
%maxi: iteracion maxima
%ARGUMENTOS DE SALIDA:
%informe: matriz con los datos del metodo
%columna N°1: indices
%columna N°2: terminos x_k
%columna N°3: evaluacion de x_k en la ecuacion principal

x=[x0, zeros(1,maxi)]; %vector que almacenara los k+1 terminos x0, x1, x2, ..., xk

ec_x0=x0^3-4*x0-1; %evaluamos x0 en la ecuacion principal

ec=[ec_x0, zeros(1,maxi)]; %vector que contendra los k+1 terminos f(x0), f(x1), f(x2), ...,f(xk)

N=[0]; %hasta ahora solo tenemos el termino x0

for k=2:maxi+1 %se hacen k iteraciones

x(k)=(x(k-1)^3-1)/4;
ec(k)=x(k)^3-4*x(k)-1; %evaluamos x_k en la ecuacion principal

N=[N, k-1]; %anexamos el indice k
EJEMPLO: aproximaremos una solución de la ecuación

3
−4 −1 = 0
lo cual es equivalente a hallar el punto fijo de la función
() =

3
−1
4

Punto inicial: −0.5
Criterio de parada: 5 iteraciones

131


MATLAB Orientado a la matemática aplicada

end

informe=[N',x',ec'];



















Método de bisección
Este es uno de los métodos más sencillos y de fácil intuición, para resolver ecuaciones de una
variable. Si una función es tal que () y () tienen signos opuestos, el valor cero es un
valor intermedio entre () y (), por lo que con certeza existe un

en [, ] que cumple
(

) = 0.
El método consiste en lo siguiente: supongamos que en el intervalo [, ] hay un cero de .
Calculamos el punto medio = ( +)/2 del intervalo [, ]. A continuación calculamos
(). Verificamos si () tiene signo opuesto al de (). Se redefine el intervalo [, ] como
[, ] o [, ] según se haya determinado en cuál de estos intervalos ocurre un cambio de
signo. A este nuevo intervalo se le aplica el mismo procedimiento y así, sucesivamente, iremos
encerrando la solución en un intervalo cada vez más pequeño, hasta alcanzar la precisión
deseada.
ESQUEMA ITERATIVO: emplear las sucesiones {

}, {

} y {

} dadas como

1
(extremo izquierdo inicial)

1
(extremo derecho inicial inicial)
[

,

] = �
[
−1
,
−1
], (
−1
)(
−1
) > 0

[
−1
,
−1
], (
−1
)(
−1
) < 0
; = 2,3, …

=

+

2
; = 1,2, …
En este caso la sucesión {

} es la aproximación del cero

.
EJEMPLO (continuación): una vez definido y guardado el fichero, lo podemos
utilizar

>> [informe]=met_punto_fijo(-0.5,5)

informe =

0 -0.5000 0.8750
1.0000 -0.2813 0.1028
2.0000 -0.2556 0.0056
3.0000 -0.2542 0.0003
4.0000 -0.2541 0.0000
5.0000 -0.2541 0.0000

132


Andrés Pérez










CÓDIGO:
function[informe]=met_biseccion(a,b,cota)
%ESTE SUBPROGRAMA APROXIMA EL CERO DE LA FUNCION
% f(x)=x^2-cos(x)-1 en [1,2]
%METODO:
% biseccion
%CRITERIO DE PARADA:
% |f(m_k)|<cota
%ARGUMENTOS DE ENTRADA:
%a: extremo izquierdo inicial
%b: extremo derecho inicial
%cota: cota superior de |f(m_k)|
%ARGUMENTOS DE SALIDA:
%informe: matriz con los datos del metodo de biseccion
%columna N°1: cantidad de iteraciones
%columna N°2: terminos a_k
%colmuna N°3: terminos b_k
%columna N°4: terminos m_k
%colmuna N°5: terminos de la sucecion de diametros d_k=(b-a)/2^k
%columna N°6: evaluacion f(m_k)

k=1;

N=[k]; %inicializamos el vector N

m=[(a+b)/2]; %inicializamos el vector de terminos m_k

d=[0.5]; %inicializamos el vector de terminos d_k

f_a=a(1)^2-cos(a(1))-1; %evaluacion f(a_1)

f_m=m(1)^2-cos(m(1))-1; %evaluacion f(m_1)

f=[f_m]; %inicializamos el vector de imagenes f(m_k)
EJEMPLO: la función
() =
2
−cos() −1
tiene un cambio de signo en el intervalo [1,2]. Aproximaremos

mediante el
método de bisección
Extremo izquierdo inicial:
1
= 1
Extremo derecho inicial:
1
= 2
Criterio de parada: cota = 0.00454

133


MATLAB Orientado a la matemática aplicada


while abs(f_m(k))>=cota

if f_a*f_m>0

a_k=m(k); %nuevo termino de a

b_k=b(k); %nuevo termino de b

else

a_k=a(k); %nuevo termino de a

b_k=m(k); %nueo termino de b

end

a=[a, a_k]; %agrandar el vector a

b=[b, b_k]; %agrandar el vector b

m_k=(a_k+b_k)/2; %nuevo termino de m

m=[m, m_k]; %agrandar el vector m

f_a=a_k^2-cos(a_k)-1; %evaluacion f(a_k)

f_m=m_k^2-cos(m_k)-1; %evaluacion f(m_k)

k=k+1; %aumentamos el contador

N=[N, k]; %agrandar el vector N

d=[d, 1/2^k]; %agrandar el vector d

f=[f, f_m]; %agrandar el vector f

end

informe=[N', a', b', m', d', f'];







134


Andrés Pérez













Método de Newton
El método de Newton es uno de los métodos que muestra mejor velocidad de convergencia
llegando (bajo ciertas condiciones) a duplicar, en cada iteración, los decimales exactos.
El método consiste así: partiendo de una aproximación
0
de un cero

de , entonces
1
es
la intersección de la recta tangente a en
0
, con el eje . Cuando se ha calculado una
aproximación

, la siguiente aproximación
+1
se obtiene hallando la intersección con el
eje de la recte tangente en el punto (

, (

)).
ESQUEMA ITERATIVO: emplear la sucesión {

} dada por

0
(punto inicial)

+1
=


(

)


(

)
, = 0,1,2, …






EJEMPLO (continuación):
>> [informe]=met_biseccion(1,2,0.00454)
informe =
1.0000 1.0000 2.0000 1.5000 0.5000 1.1793
2.0000 1.0000 1.5000 1.2500 0.2500 0.2472
3.0000 1.0000 1.2500 1.1250 0.1250 -0.1656
4.0000 1.1250 1.2500 1.1875 0.0625 0.0362
5.0000 1.1250 1.1875 1.1563 0.0313 -0.0659
6.0000 1.1563 1.1875 1.1719 0.0156 -0.0151
7.0000 1.1719 1.1875 1.1797 0.0078 0.0104
8.0000 1.1719 1.1797 1.1758 0.0039 -0.0024
EJEMPLO: aproximar la solución

de la ecuación

2
= () +1
estando

en [1,2]
Punto inicial:
0
= 1.5
Criterio de parada: tolerancia = 0.0089


135


MATLAB Orientado a la matemática aplicada

CÓDIGO:
function[informe]=met_newton(x0,tol)
%ESTE SUBPROGRAMA APROXIMA LA UNICA SOLUCION DE LA ECUACION
% x^2=cos(x)+1 en [1,2]
%METODO:
% Newton
%PLANTEAMIENTO:
% aproximar el cero de la funcion f(x)=x^2-cos(x)-1 en [1,2]
%CRITERIO DE PARADA:
% | x_{n} - x_{n-1} |<=tol
%ARGUMENTOS DE ENTRADA:
%x0: aproximacion del cero de f
%tol: tolerancia
%ARGUMENTOS DE SALIDA:
%informe: matriz con los datos del metodo de biseccion
%columna N°1: cantidad de iteraciones
%columna N°2: terminos x_k
%columna N°3: error absluto estimado como | x_{n} - x_{n-1} |

x1=x0-(x0^2-cos(x0)-1)/(2*x0+sin(x0));

x=[x1]; %inicializamos el vetor de terminos x_k

est=[abs(x1-x0)]; %inicializamos el vector de estimacion del error absoluto

k=1; %cantidad de terminos actual

N=[k]; %inicializamos el vector de iteraciones

while est(k)>tol

x_new=x(k)-(x(k)^2-cos(x(k))-1)/(2*x(k)+sin(x(k))); %calculamos el nuevo termino

est_new=abs(x_new-x(k)); %calculamos la nueva estimacion del error absluto

k=k+1; %aumentamos el contador

x=[x, x_new]; %agrandamos el vector x

est=[est, est_new]; %agrandamos el vector est

N=[N, k]; %agrandamos el vector N

end

informe=[N', x', est'];



136


Andrés Pérez









Método de Euler
El método de Newton puede obtenerse con un polinomio de Taylor de orden 1. Si
aumentamos el orden del polinomio de Taylor, se puede obtener un método de orden
superios. Tal es el método de Euler, el cual es de orden cúbico.
ESQUEMA ITERATIVO: emplear la suceción {

}dada por

0
(punto inicial)

+1
=

−(

)
2
1 +�1 −2(

)

donde
() =
()


()
() = ()

′′
()


()







CÓDIGO:
function[informe]=met_euler(x0,maxi)
%ESTE SUBPROGRAMA APROXIMA UN CERO DE LA FUNCION
% f(x)=x^2-2*cos(x)+1
%METODO:
% Euler
EJEMPLO (continuación):
>> [informe]=met_newton(1.5,0.0089)
informe =
1.0000 1.2050 0.2950
2.0000 1.1768 0.0282
3.0000 1.1765 0.0003
EJEMPLO: aproximar un cero de la función
() =
2
−2cos() +1
Punto inicial:
0
= 0.5
Criterio de parada: 6 iteraciones
137


MATLAB Orientado a la matemática aplicada

%CRITERIO DE PARADA:
% un numero maximo de iteraciones
%ARGUMENTOS DE ENTRADA:
%x0: aproximacion del cero de f
%maxi: iteracion maxima
%ARGUMENTOS DE SALIDA:
%informe: matriz con los datos del metodo de euler
%columna N°1: cantidad de iteraciones
%columna N°2: terminos x_k
%columna N°3: error absluto estimado como | x_{n} - x_{n-1} |

Ux0=(x0^2-2*cos(x0)+1)/(2*x0+2*sin(x0)); %evaluamos la funcion auxiliar U

Tx0=Ux0* (1+cos(x0)/(x0+sin(x0))); %evaluamos la funcion auxiliar T

x1=x0-Ux0*(2/(1+sqrt(1-2*Tx0)));

x=[x1]; %inicializamos el vetor de terminos x_k

est=[abs(x1-x0)]; %inicializamos el vector de estimacion del error absoluto

N=[1]; %inicializamos el vector de iteraciones

for k=2:maxi

Ux_k=(x(k-1)^2-2*cos(x(k-1))+1)/(2*x(k-1)+2*sin(x(k-1))); %evaluamos la funcion

%auxiliar U

Tx_k=Ux0* (1+cos(x(k-1))/(x0+sin(x(k-1)))); %evaluamos la funcion auxiliar T

x_new=x(k-1)-Ux_k*(2/(1+sqrt(1-2*Tx_k)));

est_new=abs(x_new-x(k-1)); %calculamos la nueva estimacion del error absluto

=[x, x_new]; %agrandamos el vector x

est=[est, est_new]; %agrandamos el vector est

N=[N, k]; %agrandamos el vector N

end

informe=[N', x', est'];




138


Andrés Pérez












Un método híbrido: Newton-Bisección
Si el método de Newton falla (en algún sentido) en una iteración, podemos usar bisección para
dar un pequeño salto y regresar al método de Newton lo más pronto posible.
El método es como sigue: supongamos que ()() < 0. Sea
0
= o
0
= . En cada
iteración una nueva aproximación

es calculada y y son actualizados como sigue
• Si

=
0
−(
0
)

(
0
) ⁄ cae en [, ] lo aceptamos, sino usamos bisecciónm, es
decir

= ( +) 2 ⁄
• Actualizar:

=

,

= o

= ,

=

, de tal manera que (

)(

) < 0










EJEMPLO (continuación):
>> [informe]=met_euler(0.5,6)
informe =
1.0000 0.7143 0.2143
2.0000 0.7146 0.0002
3.0000 0.7146 0.0000
4.0000 0.7146 0.0000
5.0000 0.7146 0.0000
6.0000 0.7146 0.0000
EJEMPLO: aproximar el cero

de la función
() = 0.2(16) − +1.75
sabiendo que cambia de signo en el intervalo [1,2]
Punto inicial:
0
= 1
Extremo izquierdo inicial: = 1
Extremo derecho inicial: = 2
Criterio de parada: 8 iteraciones
139


MATLAB Orientado a la matemática aplicada

CÓDIGO:
function[informe]=meth_newton_biseccion(x0,a,b,maxi)
%ESTE SUBPROGRAMA APROXIMA UN CERO DE LA FUNCION
% f(x)=0.2*sen(16*x)-x+1.75
%DICHO CERO ESTA EN [1,2]
%METODO:
% hibrido: newton-biseccion
%CRITERIO DE PARADA:
% un numero maximo de iteraciones
%ARGUMENTOS DE ENTRADA:
%x0: aproximacion del cero de f
%a: extremo izquierdo inicial
%b: extremo derecho inicial
%maxi: iteracion maxima
%ARGUMENTOS DE SALIDA:
%informe: matriz con los datos del metodo newton-biseccion
%columna N°1: cantidad de iteraciones
%columna N°2: terminos x_k
%columna N°3: error absluto estimado como | x_{n} - x_{n-1} |
%columna N°4: metodo empleado en la k-esima iteracion
% 1) Newton
% 2) Biseccion

cand=x0-(0.2*sin(16*x0)-x0+1.75)/(3.2*cos(16*x0)-1); %calculamos el candidato a ser x1

if 1<cand & cand<2

x1=cand;

met=[1]; %metodod de Newton

else

x1=(a+b)/2;

met=[2]; %metodo de Biseccion

end

x=[x1]; %inicializamos el vector de terminos x_k

est=[abs(x1-x0)]; %inicializamos el vector de estimacion del error absoluto

N=[1]; %inicializamos el vector de iteraciones

f_a=0.2*sin(16*1)-1+1.75; %evaluacion f(1)

f_x1=0.2*sin(16*x1)-x1+1.75; %evaluacion f(x1)

if f_a*f_x1<0 %a no varia

140


Andrés Pérez

b=x1; %actualizacion de b

else %b no varia

a=x1; %actualizacion de a

end

for k=2:maxi

cand=x(k-1)-(0.2*sin(16*x(k-1))-x(k-1)+1.75)/(3.2*cos(16*x(k-1))-1); %calculamos el

%candidato a ser x_new

if a<cand & cand<b %aplicar el metodo de Newton

x_new=cand;

met=[met, 1]; %agrandar el vetor met

else %aplicar el metodo de Biseccion

x_new=(a+b)/2;

met=[met, 2]; %agrandar el vector met

end

est_new=abs(x_new-x(k-1));

x=[x, x_new]; %agrandar el vector de terminos x_k

est=[est, est_new]; %agrandar el vector de estimacion del error absoluto

N=[N, k]; %agrandar el vector de iteraciones

f_a=0.2*sin(16*a)-a+1.75; %evaluacion f(a)

f_x_new=0.2*sin(16*x_new)-x_new+1.75; %evaluacion f(x_new)

if f_a*f_x_new<0 %a no varia

b=x_new; %actualizacion de b

else %b no varia

a=x_new; %actualizacion de a

end

end

141


MATLAB Orientado a la matemática aplicada

informe=[N', x', est', met'];









Método de la Falsa Posición
La idea de este método es similar al de bisección: iniciar en un intervalo [, ] donde cambia
de signo, y obtener una sucesión de intervalos encajados [

,

] (donde cambie de signo),
juntamente con una sucesión de términos {

} (dentro de los intervalos anteriores), siendo
esta última sucesión la que aproxima el cero de .
La diferencia con el método de bisección, es que el término

no es punto medio del intervalo
[
−1
,
−1
], sino el punto de interseción entre la recta secante (que une los puntos
extremos (

, (

)) y (

, (

)) y el eje .
ESQUEMA ITERATIVO: emplear las sucesiones {

}, {

} y {

} dadas para = 1, 2, …
[

,

] = �
[
−1
,
−1
], (
−1
)(
−1
) > 0

[
−1
,
−1
], (
−1
)(
−1
) < 0

=

(

) −

(

)
(

) −(

)



EJEMPLO (continuación):
>> [informe]=meth_newton_biseccion(1,1,2,8)
informe =
1.0000 1.1704 0.1704 1.0000
2.0000 1.5852 0.4148 2.0000
3.0000 1.7926 0.2074 2.0000
4.0000 1.7617 0.0309 1.0000
5.0000 1.7631 0.0014 1.0000
6.0000 1.7631 0.0000 1.0000
7.0000 1.7631 0.0000 1.0000
8.0000 1.7624 0.0007 2.0000
142


Andrés Pérez








CODIGO:
function[informe]=met_falsa_posicion(a,b,maxi)
%ESTE SUBPROGRAMA APROXIMA LA RAIZ DEL POLINOMIO
% P(x)=x^2-1
%DONDE TAL RAIZ SE ENCUENTRA EN EL INTERVALO [0,4]
%MÉTODO:
% falsa posicion
%CRITERIO DE PARADA:
% un numero maximo de iteraciones
%ARGUMENTOS DE ENTRADA:
%a: extremo izquierdo inicial
%b: extremo derecho inicial
%maxi: numero de iteraciones que se desea
%ARGUMENTOS DE SALIDA:
%informe: matriz con los datos del metodo
%columna N°1: indices
%columna N°2: terminos a_k
%columna N°3: terminos b_k
%columna N°4: terminos x_k (falsa posicion)

f_a=a^2-1; %evaluamos f(a1)

f_b=b^2-1; %evaluamos f(b1)

x=(a*f_b-b*f_a)/(f_b-f_a); %primer termino x_k

f_x=x^2-1; %evaluamos f en la falsa posicion

a=[a]; %inicializamos el vector a

b=[b]; %inicializamos el vector b

x=[x]; %inicializamos el vector x

N=[1]; %inicializamos el vector N
for k=2:maxi

EJEMPLO: hallar una aproximación de la raíz

del siguiente polinomio
() =
2
−1
sabiendo que (0)(4) < 0.
Extremo izquierdo inicial:
1
= 0
Extremo derecho inicial:
1
= 4
Criterio de parada: 4 iteraciones


143


MATLAB Orientado a la matemática aplicada

if f_a*f_x<0

a_new=a(k-1); %nuevo extremo izquierdo

b_new=x(k-1); %nuevo extremo derecho

else

a_new=x(k-1); %nuevo extremo izquierdo

b_new=b(k-1); %nuevo extremo derecho

end

f_a_new=a_new^2-1; %evaluamos f(a_new)

f_b_new=b_new^2-1; %evaluamos f(b_new)

x_new=(a_new*f_b_new-b_new*f_a_new)/(f_b_new-f_a_new); %calculamos la falsa

%posicion

f_x_new=x_new^2-1; %evaluamos f en la falsa posicion

a=[a, a_new]; %agrandamos el vector a

b=[b, b_new]; %agrandamos el vector b

x=[x, x_new]; %agrandamos el vector x

N=[N, k]; %agrandamos el vector N

end

informe=[N', a', b', x'];









EJEMPLO (continuación):
>> [informe]=met_falsa_posicion(0,4,4)
informe =
1.0000 0 4.0000 0.2500
2.0000 0.2500 4.0000 0.4706
3.0000 0.4706 4.0000 0.6447
4.0000 0.6447 4.0000 0.7705

144


Andrés Pérez

Método de la Secante
Este método es prácticamente el de la falsa posición, la diferencia radica es que en cada
iteración no se estudia si la función cambia de signo en el intervalo respectivo.
ESQUEMA ITERATIVO: emplear la sucesión {

} dada por

0
(primer punto inicial)

1
(segundo punto inicial)

+1
=

−1
(

) −

(
−1
)
(

) −(
−1
)
, = 1,2, …








CÓDIGO:
function[informe]=met_secante(x0,x1,cota)
%ESTE SUBPROGRAMA APROXIMA LA RAIZ DEL POLINOMIO
% P(x)=x^3-0.2*x^2-0.2*x-1.2
%DONDE TAL RAIZ SE ENCUENTRA EN EL INTERVALO [1,1.5]
%MÉTODO:
% secante
%CRITERIO DE PARADA:
% | f(x_{k+1}) |<cota
%ARGUMENTOS DE ENTRADA:
%x0: primer punto inicial
%x1: segundo punto inicial
%cota: cota de la imagen x_{k+1}
%ARGUMENTOS DE SALIDA:
%informe: matriz con los datos del metodo
%columna N°1: indices
%columna N°2: terminos x_{k+1}
%columna N°3: estimacion del k+1-esimo error absoluto como | x_{k+1} - x_{k} |
%columna N4: evaluacion | f(x_{k+1}) |

f_x0=x0^3-0.2*x0^2-0.2*x0-1.2; %imagen f(x_{0})

EJEMPLO: aproximar la raíz

del polinomio
() =
3
−0.2
2
−0.2 −1.2
estando

en el intervalo [1,1.5].
Primer punto inicial:
0
= 1
Segundo punto inicial:
1
= 1.5
Criterio de parada: cota =

145


MATLAB Orientado a la matemática aplicada

f_x1=x1^3-0.2*x1^2-0.2*x1-1.2; %imagen f(x_{1})

x2=(x0*f_x1-x1*f_x0)/(f_x1-f_x0);

f_x2=x2^3-0.2*x2^2-0.2*x2-1.2; %imagen f(x_{2})

est1=abs(x1-x0);

est2=abs(x2-x1);

k=2; %hasta ahora tenemos dos terminos

x=[x1, x2]; %inicializamos el vector de terminos

est=[est1, est2]; %inicializamos el vector de estimacion

f=[f_x1, f_x2]; %inicializamos el vector de imagenes

N=[1, 2]; %inicializamos el vector N

while abs(f(k))>=cota %se refiere a f(x_{k}), NO confundir con f(2)

f_a=x(k-1)^3-0.2*x(k-1)^2-0.2*x(k-1)-1.2; %imagen del termino x_{k-1}

f_b=x(k)^3-0.2*x(k)^2-0.2*x(k)-1.2; %imagen del termino x_{k}

x_new=(x(k-1)*f(k)-x(k)*f(k-1))/(f(k)-f(k-1)); %nuevo termino x_{k+1}

f_x_new=x_new^3-0.2*x_new^2-0.2*x_new-1.2; %imagen f(x_{k+1})

est_new=abs(x_new-x(k)); %estimacion | x_{k+1} - x_{k} |

k=k+1; %aumentamos el contador

x=[x, x_new]; %agrandamos el vector x
est=[est, est_new]; %agrandamos el vector est

f=[f, f_x_new]; %agrandamos el vector f

N=[N, k]; %agrandamos el vector N

end

informe=[N', x', est', f'];


146


Andrés Pérez







Comandos predefinidos en MATLAB
Para hallar el cero de una función, MATLAB habilita el comando fzero, el cual es un M-Fichero
cuyo algoritmo usa una combinación de los métodos de bisección, secante e interpolación
cuadrática inversa. La sintaxis para este comando es
>>[x,fval,exitflag,output]=fzero(‘ f ’,x0)
donde los argumentos de entrada son
o f: función a estudiar, la cual debe introducirse entre comillas
o x0: escalar o vector de dos elementos. Si es un escalar, es interpretado como un punto
inicial del método iterativo a emplear. Si es un vector de dos elementos, digamos
x0=[a,b], MATLAB lo considera como el intervalo inicial del método iterativo (y debe
cumplirse que f(a)f(b)<0).
Mientras que los argumentos de salida son
o x: aproximación del cero de f
o fval: valor de la función f en x
o exitflag: condición de salida del comando fzero. Los posibles valores son
 1 si la función converge a la solución x
 -1 si el algoritmo fue por la función de salida
 -3 NaN o Inf si la función toma estos valores en el algoritmo
 -4 si la función toma valores complejos en el algoritmo
 -5 si el comando fzero converge a un punto singular
o output: contiene información acerca de la optimización. Los posibles valores son
 output.algorithm algoritmo usado
 output.funcCount Nº de evaluaciones de la función
EJMPLO (continuación):
>> [informe]=met_secante(1,1.5,0.000023)
informe =
1.0000 1.5000 0.5000 1.4250
2.0000 1.1481 0.3519 -0.1797
3.0000 1.1876 0.0394 -0.0448
4.0000 1.2006 0.0131 0.0023
5.0000 1.2000 0.0006 -0.0000
6.0000 1.2000 0.0000 -0.0000
147


MATLAB Orientado a la matemática aplicada

 output.intervaliterations Nº de iteraciones hechas para hallar un intervalo
 output.iterations Nº de iteraciones en la bésque del cero de f
 output.message mensaje de salida


















EJEMPLO: iniciando en el punto
0
= 0.7854 hallar el cero de la función
() = () −()
>> [x,fval,exitflag,output]=fsolve('sin(x)-cos(x)',0.7854)
Optimization terminated: first-order optimality is less than options.TolFun.
x =
0.7854

fval =
-3.3307e-015

exitflag =
1

output =
iterations: 1
funcCount: 4
algorithm: 'trust-region dogleg'
firstorderopt: 4.7103e-015
message: 'Optimization terminated: first-order optimality is less than
options.TolFun.'
148


Andrés Pérez

INTERPOLACIÓN POLINOMIAL
Dada una función , si conocemos +1 puntos de si gráfico, la interpolación polinomial
consiste en hallar un polinomio

() que pase por los +1 dados, de modo que podamos
aproximar el valor de la función en un un número � (para el que no se conoce (�)).
Formalmente, un problema de interpolación polinomial se especifica como sigue: dados +1
pares (
0
,
0
), (
1
,
1
), …, (

,

), siendo todos los

distintos entre si, y

= (

) para
alguna función ; encontrar un polinomio

() de grado ≤ tal que

(

) =

, = 0,1,2, …,
A

() se le llama polinomio interpolante, a cada

le decimos nodo de interpolación y a cada

valor interpolado. Si hacemos = {
0
,
1
, …,

} y � no está en pero min() < � <
(); entonces interpolar en � con un subconjunto de +1 nodos de consiste en
calcular

() donde

es el polinomio interpolante obtenido con un subconjunto de +1
nodos alrededor de �. Así el valor de en un un � lo estimamos como (�) ≈

(� ).
A continuación, estudiaremos seis formas de calcular el polinomio interpolante.
Forma de Lagrange
Lagrange demostró que el polinomio interpolante viene dado por

() =
0

,0
() +
1

,1
() +⋯+

,
()
donde para cada = 0,1,2, …,

,
() = �

=0


A

() expresado de esta forma se le conoce como forma de Lagrange del polinomio
interpolante.
CÓDIGO:
function[f_new]=forma_lagrange(x,y,x_new)
%ESTE SUBPROGRAMA REALIZA INTERPOLACION POLINOMIAL DE UNA FUNCION
%PLANTEAMIENTO:
%dados n+1 puntos (x0,y0), (x1, y1), ..., (xn, yn) de una funcion f con los xi distintos entre
si,denotando A={x0, x1, ..., xn}, y dado x_new distinto de cada xi con min(A)<x_new<max(A);
%este subprograma interpola f en x_new mediante el polinomio interpolante de grado n
%METODO:
% forma de Lagrange
%ARGUMENTOS DE ENTRADA:
%x: vector con los n+1 nodos de interpolacion
%y: vector con los n+1 valores interpolados
%ARGUMENTOS DE SALIDA:
%f_new: interpolacion de f en x_new

m=length(x); %cantidad de nodos m=n+1 (se cuantan los n+1 nodos)
149


MATLAB Orientado a la matemática aplicada

L_n=zeros(m); %damos forma el vector que almacenara los valores L_{n,k}

for k=1:m %en cada iteracion k se calcula L_{n,k-1} evaluado en x_new
fac=1;

for i=1:m

if i~=k

fac=fac*(x_new-x(i))/(x(k)-x(i));

end

end

L_n(k)=fac;

end

suma=0;

for k=1:m %evaluamos el polinomio interpolante en x_new

suma=suma+y(k)*L_n(k);

end

f_new=suma;



















EJEMPLO: de una función , conocemos la información de la tabla siguiente.
0.1 0.3 0.4 0.6
() 0.32 0.33 0.34 0.45

Interpolar (0.35) usando un polinomio interpolante
3
()
>> x=[0.1 0.3 0.4 0.6];
>> y=[0.32 0.33 0.34 0.45];
>> [f_new]=forma_lagrange(x,y,0.35)
f_new =
0.3329
Así, (0.35) ≈
3
(0.35) = 0.3329.
150


Andrés Pérez

Forma modificada de Lagrange
La forma de Lagrange del polinomio interpolante es atractiva para propósitos teóricos. Sin
embargo se puede escribir en una forma que se vuelva eficiente para el cálculo computacional,
además de ser numéricamente más estable. De allí surgén la forma modificada y la forma
barcéntrica de Lagrange.
Primeramente, definimos el polinomio auxiliar
() = �( −

)

=0

Definimos los pesos baricéntricos como

= �
1

=0

, = 0,1,2, …,
La forma modificada del polinomio de Lagrange se escribe como

() = () �

=0

CÓDIGOS:

Para el cálculo de los pesos baricéntricos

function[W]=pesos_baricentricos(x)
%ESTE SUBPROGRAMA CALCULA LOS PESOS BARICENTRICOS DE n+1 NODOS
%ARGUMENTOS DE ENTRADA:
%x: vector con los n+1 nodos de interpolacion
%ARGUMENTOS DE SALIDA:
%W: vector con los pesos baricentricos

m=length(x); %cantidad de nodos m=n+1 (se cuentan los n+1 nodos)

W=zeros(1,m); %damos forma el vector de pesos baricentricos

for k=1:m %en cada iteracion se calcula el k-1 esimo peso baricentrico
%W_{k-1}

fac=1;

for i=1:m

if i~=k

fac=fac*(1/(x(k)-x(i)));

end

151


MATLAB Orientado a la matemática aplicada

end

W(k)=fac;

end

Para la interpolación (aquí se utiliza la función pesos_baricentricos)

function[f_new]=forma_lagrange_modificada(x,y,x_new)
%ESTE SUBPROGRAMA REALIZA INTERPOLACION POLINOMIAL DE UNA FUNCION
%PLANTEAMIENTO:
%dados n+1 puntos (x0,y0), (x1, y1), ..., (xn, yn) de una funcion f con los xi distintos entre
%si,denotando A={x0, x1, ..., xn}, y dado x_new distinto de cada xi con min(A)<x_new<max(A);
%este subprograma interpola f %en x_new mediante el polinomio interpolante de grado n
%METODO:
% forma modificada de Lagrange
%ARGUMENTOS DE ENTRADA:
%x: vector con los n+1 nodos de interpolacion
%y: vector con los n+1 valores interpolados
%ARGUMENTOS DE SALIDA:
%f_new: interpolacion de f en x_new

m=length(x); %cantidad de nodos m=n+1 (se cuentan los n+1 nodos)

L=1;

for k=1:m

L=L*(x_new-x(k));

end

[W]=pesos_baricentricos(x);

suma=0;

for k=1:m %evaluamos el polinomio interpolante en x_new

suma=suma+(W(k)/(x_new-x(k)))*y(k);

end

f_new=L*suma;









152


Andrés Pérez
























Forma baricéntrica de Lagrange
La forma baricéntrica del polinomio de Lagrange es

() =





, =


=0

=0
, ≠

CÓDIGO:

Aquí se utiliza la función pesos_baricentricos

function[f_new]=forma_baricentrica_lagrange(x,y,x_new)
%ESTE SUBPROGRAMA REALIZA INTERPOLACION POLINOMIAL DE UNA FUNCION
%PLANTEAMIENTO:
%dados n+1 puntos (x0,y0), (x1, y1), ..., (xn, yn) de una funcion f con los xi distintos entre %si,
%denotando A={x0, x1, ..., xn}, y dado x_new distinto de cada xi con min(A)<x_new<max(A);
%este subprograma interpola f en x_new mediante el polinomio interpolante de grado n
%METODO:
%forma baricentrica del poliniomio de Lagrange
%ARGUMENTOS DE ENTRADA:
%x: vector con los n+1 nodos de interpolacion
%y: vector con los n+1 valores interpolados
%ARGUMENTOS DE SALIDA:
%f_new: interpolacion de f en x_new
m=length(x); %cantidad de nodos m=n+1 (se cuentan los n+1 nodos)

EJEMPLO: considere los siguientes datos del segundo coeficiente virial en función
de la temperatura
() 100 150 320 400 500 600
(

⁄ ) -160 -35 -4.2 9.0 16.9 21.3

¿Cuál es el segundo coeficiente virial a una temperatura = 450?
>> x=[100 200 300 400 500 600];
>> y=[-160 -35 -4.2 9.0 16.9 21.3];
>> [f_new]=forma_lagrange_modificada(x,y,450)
f_new =
13.8844
153


MATLAB Orientado a la matemática aplicada

L=1;

for k=1:m

L=L*(x_new-x(k));

end

[W]=pesos_baricentricos(x);

suma1=0;

suma2=0;

for k=1:m

suma1=suma1+(W(k)/(x_new-x(k)))*y(k);

suma2=suma2+W(k)/(x_new-x(k));

end

f_new=suma1/suma2; %evaluamos el polinomio interpolante en x_new





























EJEMPLO: considere la siguiente tabla de vapor
2
calentada a 200
(

⁄ ) 0.10377 0.11144 0.1254
( . ⁄ ) 6.4147 6.5453 6.7664

Use interpolación polinomial para encontrar la entropía para un volumen
específico de 0.108
3

>> x=[0.10377 0.11144 0.1254];
>> y=[6.4147 6.5453 6.7664];
>> [f_new]=forma_baricentrica_lagrange(x,y,0.108)
f_new =
6.4875
154


Andrés Pérez

Forma baricéntrica con nodos igualmente espaciados
La forma baricéntrica toma una forma especialmente simple cuando los nodos son igualmente
espaciados

() =





, =

∑ (−1)


=0
∑ (−1)


1

=0
, ≠

CÓDIGO:

function[f_new]=forma_lagrange_baricentrica_2(x,y,x_new)
%ESTE SUBPROGRAMA REALIZA INTERPOLACION POLINOMIAL DE UNA FUNCION
%PLANTEAMIENTO:
%dados n+1 puntos (x0,y0), (x1, y1), ..., (xn, yn) de una funcion f con los xi distintos entre si,
%denotando A={x0, x1, ..., xn}, y dado x_new distinto de cada xi con min(A)<x_new<max(A);
este subprograma interpola f en x_new mediante el polinomio interpolante de grado n
%METODO:
%forma baricentrica del poliniomio de Lagrange con nodos igualmente espaciados
%ARGUMENTOS DE ENTRADA:
%x: vector con los n+1 nodos igualmente espaciados
%y: vector con los n+1 valores interpolados
%ARGUMENTOS DE SALIDA:
%f_new: interpolacion de f en x_new

m=length(x); %cantidad de nodos m=n+1 (se cuentan los n+1 nodos)

n=m-1;

suma1=0;

suma2=0;

for k=1:m

num_comb=factorial(n)/(factorial(k-1)*factorial(n-(k-1)));

suma1=suma1+(-1)^(k-1)*num_comb*(y(k)/(x_new-x(k)));

suma2=suma2+(-1)^(k-1)*num_comb*(1/(x_new-x(k)));

end

f_new=suma1/suma2; %evaluamos el polinomio interpolante en x_new






155


MATLAB Orientado a la matemática aplicada
























Forma de Newton
La representación

() =
0,0
+
1,1
( −
0
) +
2.2
( −
0
)( −
1
)
+⋯+
,
( −
0
) …( −
−1
)
para el polinomio interpolante que pasa por los +1 puntos (
0
,
0
), (
1
,
1
), …, (

,

), es
conocida como la presentación de Newton del polinomio interpolante. Los coeficientes
,

son los elementos de la diagonal de la matriz de diferencias divididas

0,0

1,0

1,1

2,0

2,1

3,0

3,1
⋮ ⋮

,0

,1

2,2

3,2


⋮ ⋱

,2

,


Para el cálculo de las diferencias divididas, se utiliza la fórmula recursiva

,0
=

, = 0, 1 ,2, …,

,
=

,−1

−1,−1



, = 1, 2, …, , = , …,


CÓDIGOS:

Para la matriz de diferencias divididas
EJEMPLO: de una función conocemos los siguientes datos
-0.5 0 0.5 1 1.5 2
() 4.5 6 5.2 4.7 2.9 1

Tomando en cuenta que los nodos están igualmente espaciados interpole (0.2)
>> x=[-0.5 0 0.5 1 1.5 2];
>> y=[4.5 6 5.2 4.7 2.9 1];
>> [f_new]=forma_lagrange_baricentrica_2(x,y,0.2)
f_new =
5.6348
156


Andrés Pérez

function[C]=diferencias_divididas(x,y)
%ESTE SUBPROGRAMA CALCULA LA MATRIZ DE DIFERENCIAS DIVIDIDAS DE n+1 PUNTOS
%(x0,y0), (x1,y1),…, (xn, yn)
%ARGUMENTOS DE ENTRADA:
%x: vector con los n+1 nodos de interpolacion
%y: vector con los n+1 valores interpolados
%ARGUMENTOS DE SALIDA:
%C: matriz con las diferencias divididas

m=length(x); %cantidad de nodos m=n+1

n=m-1;

C=zeros(m); %damos forma a la matriz de diferencias divididas

%con el siguiente bucle llenamos la primera columna de la matriz C

for i=1:m

C(i,1)=y(i); %aqui se calcula C_{i,0}

end

%con el siguiente bucle llenamos el resto de la triangular inferior de la matriz C

for j=1:n

for i=j:n

C(i+1,j+1)=(C(i+1,j)-C(i,j))/(x(i+1)-x(i-j+1));

end

end

Para la interpolación (aquí se utiliza la función diferencias_divididas)

function[f_new]=forma_newton(x,y,x_new)
%ESTE SUBPROGRAMA REALIZA INTERPOLACION POLINOMIAL DE UNA FUNCION
%PLANTEAMIENTO:
%dados n+1 puntos (x0,y0), (x1, y1), ..., (xn, yn) de una funcion f con los xi distintos entre si,
%denotando A={x0, x1, ..., xn}, y dado x_new distinto de cada xi con min(A)<x_new<max(A);
este subprograma interpola f en x_new mediante el polinomio interpolante de grado n
%METODO:
% forma de Newton
%ARGUMENTOS DE ENTRADA:
%x: vector con los n+1 nodos de interpolacion
%y: vector con los n+1 valores interpolados
%ARGUMENTOS DE SALIDA:
%f_new: interpolacion de f en x_new

m=length(x); %cantidad de nodos m=n+1
157


MATLAB Orientado a la matemática aplicada

[C]=diferencias_divididas(x,y);

suma=C(1,1);

fac=1;

for j=2:m

fac=fac*(x_new-x(j-1));

suma=suma+C(j,j)*fac;

end

f_new=suma; %evaluamos el polinomio interpolante en x_new





















Forma de Newton con nodos igualmente espaciados
Si tenemos nodos igualmente espaciados (de paso ℎ) y =
0
+ ∙ ℎ, entonces la forma de
Newton del polinomio interpolante adquiere la forma

() = ��

� ! ℎ

,

=0

Donde los coeficientes
,
son las entradas de la diagonal principal de la matriz de diferencias
divididas, y �

� es el número combinatorio extendido, dado por
EJEMPLO: la siguiente tabla muestra los pesos normales (en libras) de bebés
durante los primeros 12 meses de vida
Edad 0 2 5 8 10 12
Pesos 7.5 10.25 15 16 18 21

Determine el peso de los bebés a los 6 meses de vida
>> x=[0 2 5 8 10 12];
>> y=[7.5 10.25 15 16 18 21];
>> [f_new]=forma_newton(x,y,6)
f_new =
15.4564
158


Andrés Pérez

0
� = 1 ,

1
� = ,

2
� =
( −1)
2
,

� =
( −1)( −2) …( −( −1))
!

CÓDIGOS:
Para el número combinatorio extendido
function[combi]=combinatorio_ext(s,k)
%ESTE SUBPROGRAMA CALCULA EL NUMERO COMBINATORIO EXTENDIDO
%ARGUMENTOS DE ENTRADA:
%s: numero real cualquiera
%k: numero entero no negativo
%ARGUMENTOS DE SALIDA:
%combi: numero combinatorio extendido C_{s,k}

fac=1;

for i=0:k-1

fac=fac*(s-i);

end

combi=fac/factorial(k);

Para la interpolación (aquí se utilizan las funciones diferencias_divididas y combinatorio_ext)

function[f_new,C,s]=forma_newton_2(x,y,x_new)
%ESTE SUBPROGRAMA REALIZA INTERPOLACION POLINOMIAL DE UNA FUNCION
%PLANTEAMIENTO:
%dados n+1 puntos (x0,y0), (x1, y1), ..., (xn, yn) de una funcion f con los xi distintos entre
si,denotando A={x0, x1, ..., xn},
%y dado x_new distinto de cada xi con min(A)<x_new<max(A); este subprograma interpola f
en x_new mediante
%el polinomio interpolante de grado n
%METODO:
%forma de Newton del poliniomio interpolante con nodos igualmente espaciados
%ARGUMENTOS DE ENTRADA:
%x: vector con los n+1 nodos igualmente espaciados
%y: vector con los n+1 valores interpolados
%ARGUMENTOS DE SALIDA:
%f_new: interpolacion de f en x_new
159


MATLAB Orientado a la matemática aplicada

m=length(x); %cantidad de nodos m=n+1

[C]=diferencias_divididas(x,y);

h=abs(x(1)-x(2)); %distancia entre nodos consecutivos

s=(x_new-x(1))/h; %s es el numero tal que x_new=x(1)+s*h

suma=0;

for k=1:m

[combi]=combinatorio_ext(s,k-1); %numero combinatorio extendido C_{s,k} (pues s es

%real)

suma=suma+combi*factorial(k-1)*h^(k-1)*C(k,k);

end

f_new=suma; %evaluamos el polinomio interpolante en x_new

















EJEMPLO: de una función , conocemos los siguientes datos
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7
() 3 3.1 3.2 3.3 3.4 4.5 4.6 4.7

Interpolar (0.57)
>> x=[0:0.1:0.7];
>> y=[3 3.1 3.2 3.3 .34 4.5 4.6 4.7];
>> [f_new]=forma_newton_2(x,y,0.57)
f_new =
6.4180
160


Andrés Pérez

Comandos predefinidos en MATLAB
Para calcular los coeficientes del polinomio interpolador

() que pasa por los +1 puntos
(
0
,
0
), (
1
,
1
), …, (

,

), se MATLAB ofrece el comando
>>p = polyfit(x,y,n)
Siendo los argumentos de entrada
• x: vector fila que almacena los valores
0
,
1
, …,

• y: vector fila que almacena los valores
0
,
1
, …,

• n: grado del polinomio
Y los argumento de salida es
• p: vector fila con los coeficientes del polinomio interpolador
Mas precisamente, p arroja los n+1 coeficientes de

() en sentido decreciente
() =
1

+
2

−1
+⋯+

+
+1

Una vez obtenido el vector p de los coeficientes del polinomio, este puede ser evaluado en un
valor x con el comando
>>polyval(p,x)

EJEMPLO: la altura ℎ() alcanzada en tiempo por un fluido, en un cilindro recto,
ha sido medida cada 5 segundos obteniéndose los siguientes valores
0 5 10 15 20
() 0.6350 0.1336 0.4410 1.3572 0.2822

Aproximar la altura del fluido a los 16 segundos
>> x=[0 5 10 15 20];
>> y=[0.6350 0.1336 0.4410 1.3572 0.2822];
>> p=polyfit(x,y,4)
p =
-0.0002 0.0045 -0.0238 -0.0745 0.6350
Para interpolar h(16), evaluamos p(16)

161


MATLAB Orientado a la matemática aplicada





















>> polyval(p,16)
ans =
1.4269
A continuación, visualizamos el gráfico del polinomio interpolante
>> t=[0:0.1:20];
>> u=polyval(p,t);
>> plot(t,u)



162


Andrés Pérez

EJERCICIOS 8

1. Resuelva las siguientes ecuaciones con el método indicado
a) −cos() = 0, punto fijo,
0
= 0.8, = 0.0023
b)
2
−1 = 0, bisección,
1
= −0.25,
1
= 1.25, siete iteraciones
c)

= 0, Newton,
0
= −0.4, = 0.005
d) −1536 +6272 −11328
2
+11872
3
−7952
4
+3528
5

1036
6
+194
7
−21
8
+
9
= 0, Euler,
0
= 2.2
e)
3
cos() −(2) +1, Newton-bisección,
0
= 1.5, = 1, = 2,
= 0.012
f) () cosh() −1 = 0, falsa posición, = 3 2 ⁄ , = 2, cinco
iteraciones
g)
5
−100
4
+3995
3
−79700
2
+794004 −3160075 = 0, secante,

0
= 22.2,
1
= 17, = 0.0007

2. Resuelva la ecuación

2
−2cos() +1 = 0
Aplicando Newton y Euler simultáneamente,
0
= 0.5, diez iteraciones. La
salida del fichero que va a definir debe ser una matriz de orden 10 × 3, donde:
• La primera columna indique el índice de la iteración
• La segunda columna muestre los términos

del método de Newton
• La tercera columna muestre los términos

del método de Euler

3. Resuelva la ecuación

2
−cos() −1 = 0
Aplicando bisección y falsa posición simultáneamente,
1
= 1,
1
= 2, nueve
iteraciones. La salida del fichero que va a definir debe ser una matriz de orden
9 × 3, donde:
• La primera columna indique el índice de la iteración
• La segunda columna muestre los términos

del método de bisección
• La tercera columna muestre los términos

del método de la falsa
posición

4. De una función conocemos los siguientes datos
0 0.2 0.4 0.6
() 0.656 -0.086 0.68 -1.799

Interpole (0.27) mediante la forma de lagrange

5. En la siguiente tabla se muestran los valores de la densidad del agua del mar (en

3
⁄ ) correspondientes a diferentes valores de la termperatura (en grados
Celsius)
163


MATLAB Orientado a la matemática aplicada


4
0
8
0
12
0
16
0
20
0


1000.7794 1000.6427 1000.2805 999.7165 998.9700

Aproxime la densidad del agua a 5
0
mediante la forma modificada de
Lagrange.

6. Según el INE, la población venezolana ha evolucionado (de acuerdo a los censos
1873-2011) de la siguiente manera
Censos Población
1873 1732411
1881 2005139
1891 2221572
1920 2479525
1926 2814131
1941 3850771
1950 5034838
1961 7523999
1971 10721522
1981 14516735
1990 18105265
2001 23054210
2011 27227930

Aproxime la población venezolana en el año 1936 mediante la forma
baricentrica de Lagrange.

7. A continuación mostramos las cifras dadas por el INE (de acuerdo a los censos 1873-
2011) respecto a la evolución de la población en el estado Lara
Censo Población
1873 143818
1881 176079
1891 189624
1920 219816
1926 271369
1936 291230
1941 332975
1950 368169
1971 671410
1981 945064
1990 1193161
2001 1556415
2011 1774867

Aproxime la población venezolana en el año 1961 mediante la forma de
Newton.
164


Andrés Pérez

CAPÍTULO 9. COMPONENTES DE MATLAB

EL SOFTWARE BÁSICO MATLAB Y SUS
HERRAMIENTAS ADICIONALES
MATLAB, en su contenido básico, es un entorno integrado de trabajo que permite el análisis y
la computación matemáticos interactivos de forma sencilla con más de 500 funciones
matemáticas, estadísticas y técnicas implementadas, así como la visualización a través de todo
tipo de gráficos de ingeniería y científicos.

También es posible con el módulo básico de MATLAB el desarrollo de algoritmos a través de un
lenguaje propio de programación que resulta ser abierto (integrable con C, Excel y Bases de
Datos), extensible (a través de las funcionalidades que aportan las librerías especializadas
complementarias) y de sintaxis similar al C (pero sin las dificultades técnicas de programación
que presenta C).

Asimismo, MATLAB integra un conjunto importante de herramientas básicas adicionales muy
útiles, entre las que destacan las siguientes:

MATLAB Report Generador
Permite la creación de informes estándar y personalizados de los algoritmos desarrollados en
MATLAB. Los informes pueden ejecutar comandos de MATLAB a medida que se van
procesando, lo cual nos ofrece la posibilidad de documentar nuestras pruebas con MATLAB a
medida que las realizamos.

MATLAB Compiler Suite
Está formado por: MATLAB Compiler, MATLAB C/C++ Math Library, MATLAB C/C++ Graphics
Library. Convierte, de forma automática, los ficheros de MATLAB que contienen los algoritmos
que hemos desarrollado (en lenguaje de MATLAB) a código C y C++, bien para poder distribuir
aplicaciones independientes o para mejorar el rendimiento del algoritmo. Se trata por tanto de
un generador de código C a partir de los programas de MATLAB.

MATLAB Runtime Server
Permite distribuir cualquier aplicación desarrollada con MATLAB de forma sencilla mediante
un runtime.

MATLAB Web Server
Permite incorporar funciones de MATLAB (matemáticas y gráficas) a nuestras aplicaciones
web.
Matriz VB
Librería para poder utilizar desde Visual Basic las funciones matemáticas y gráficas que
incorpora MATLAB.
165


MATLAB Orientado a la matemática aplicada

MATLAB Excel Builder
Permite transformar algoritmos desarrollados en MATLAB a funciones de Excel y usar estas
funciones desde Excel sin necesidad de tener MATLAB.

TOOLBOXES DE MATLAB DE APLICACIÓN EN
MATEMÁTICA GENERAL
Una faceta muy importante de MATLAB son los toolboxes añadidos, que consisten en
paquetes de ampliación al software básico y que son aplicables a determinados campos de la
ciencia. A continuación se relacionan los toolboxes más interesantes de MATLAB.

Symbolic Math
Permite integrar la expresión y el cálculo simbólicos (cálculo, transformadas, álgebra lineal,
ecuaciones) al entorno de cálculo y visualización de MATLAB.

Extended Symbolic Math
Incluye todas las características de Symbolic Math, proporciona soporte completo para la
programación en Maple y permite el acceso completo a las librerías matemáticas de Maple.

Database Toolbox
Permite directamente desde MATLAB consultar e intercambiar datos con las bases de datos
ODBC/JDBC más populares (Oracle, Sybase SQL Server, Sybase SQL Anywhere, Microsoft SQL
Server, Microsoft Access, Informix and Ingres) de forma dinámica, preservándolos durante el
intercambio y simultáneamente con más de una base de datos.

Excel Link Toolbox
Integra toda la potencia de MATLAB con Microsoft Excel permitiendo la transferencia de datos
en los dos sentidos, ejecutando cualquier función de MATLAB desde una fórmula de Excel o
utilizando Excel desde MATLAB como editor de vectores.

Statistics Toolbox
Funciones y herramientas interactivas para el análisis de datos históricos, el modelado y
simulación de sistemas y para el desarrollo de algoritmos estadísticos. Soporta 20
distribuciones de probabilidad, incorpora el control estadístico de procesos, el diseño de
experimentos, estadística descriptiva, análisis clúster, etc.

Optimization Toolbox
Proporciona diversos algoritmos y técnicas para solucionar problemas de optimización no
lineales, tanto generales como a gran escala.
Spline Toolbox
Mediante un interface gráfico proporciona potentes funciones para el ajuste de datos,
visualización, interpolación y extrapolación mediante técnicas spline.
166


Andrés Pérez


Partial Differential Equation Toolbox
De aplicación en la solución de problemas en muchos campos de la física y la ingeniería:
transferencia de calor, flujo en medios porosos, medios conductores, cálculo de esfuerzos y
fatigas en estructuras, campos magnéticos, etc. Usa el método FEM (Método de los Elementos
Finitos que incorpora el algoritmo de triangulación de Delaunay) para solucionar ecuaciones
diferenciales parciales.

Neural Network Toolbox
Proporciona las versiones más comunes de paradigmas y algoritmos para el diseño y
simulación de redes neuronales. Incluye bloques de Simulink para poder usar esta toolbox en
aplicaciones de control y simulación de sistemas. Incluye ejemplos de control predictivo y
control adaptativo. Entre las aplicaciones más comunes de las redes neuronales tenemos las
técnicas de clasificación, predicción, filtrado, optimización, reconocimiento de patrones,
aproximación a funciones, interpretación y clasificación de imágenes.

TOOLBOXES DE MATLAB DE ADQUISICIÓN DE
DATOS
Dentro de los toolboxes de MATLAB tienen un papel importante los relativos a la adquisición
de datos de otras aplicaciones. En esta categoría destacan los siguientes:

Data Acquisition Toolbox
Permite el control y la comunicación con una gran variedad de dispositivos de adquisición de
datos estándares en la industria (National Instruments, Agilent, Computer Boards, etc.).
Incluye kit de adaptación para el desarrollo de interfaces para nuevos dispositivos.

Instrument Control Toolbox
Permite la comunicación con instrumentos (analizadores de espectro, osciloscopios,
generadores de funciones) y dispositivos externos. Soporta los protocolos de comunicación
GPIB (IEEE-488, HPIB) y VISA (Serial, GPIB, VXI, GPIB-VXI) y proporciona soporte avanzado de
puerto serie (RS-232, RS-422, RS485).

Curve Fitting Toolbox
Mediante un interface gráfico podemos realizar ajustes de curvas, visualizando y
preprocesando los datos y usando una amplia gama de modelos y métodos de ajuste.

TOOLBOXES DE MATLAB PARA PROCESADO DE
SEÑALES
Otra campo importante en el que MATLAB presenta herramientas es el procesado de señales.
Destacan los siguientes toolboxes:

167


MATLAB Orientado a la matemática aplicada

Signal Processing Toolbox
Conjunto de funciones para analizar, manipular y visualizar señales y sistemas lineales.
Incorpora un interface para diseñar y analizar de forma interactiva filtros digitales (FIR and IIR).

Filter Desgin Toolbox
Complementa la Signal Processing Toolbox añadiendo técnicas avanzadas de filtros digitales
para aplicaciones complejas de DSP en tiempo real. También proporciona funciones para
simplificar el diseño de filtros de punto fijo y para el análisis de los efectos de “quantization”.

Communications Toolbox
Conjunto de funciones para MATLAB que facilitan el diseño de algoritmos y componentes de
sistemas de comunicaciones.

Wavelet Toolbox
Funciones basadas en el análisis wavelet para analizar y procesar señales, imágenes (señal
bidimensional) y series temporales; son adecuadas para el estudio de señales con
características no estacionarias o transitorias en las que el análisis del tiempo en que dichas
señales experimentan los cambios es primordial (para el estudio de este tipo de señales no es
adecuado el análisis de Fourier). Estas aplicaciones son muy convenientes para eliminación de
ruidos y ecos, compresión de imágenes y vídeo.

System Identification Toolbox
Proporciona herramientas para crear modelos matemáticos de sistemas dinámicos, de los
cuales desconocemos su comportamiento, a partir de los datos de entrada observados y de los
de salida. De aplicación en una gran variedad de campos.

TOOLBOXES DE MATLAB PARA PROCESADO DE
IMÁGENES
También en el área del procesado de imágenes MATLAB presenta los siguientes toolboxes:

Image Processing Toolbox
Entorno interactivo que proporciona un conjunto de herramientas para el análisis y procesado
de imágenes con un amplio abanico de aplicaciones. Algunas de estas herramientas son:
operaciones geométricas, análisis de imagen, eliminación de ruidos, filtros lineales, filtros 2-D,
transformaciones, ROI (Region-of-Interest), operaciones binarias, conversiones de color,
procesado por “neighborhood” y por bloques, etc.
Mapping Toolbox
Conjunto de herramientas para el análisis y visualización de información
gráfica de tipo geográfico.

168


Andrés Pérez

TOOLBOXES DE MATLAB EN EL ÁREA FINANCIERA
Las finanzas es otro campo en el que MATLAB ha desarrollado toolboxes. Los más importantes
son los siguientes:

Financial Toolbox
Proporciona las herramientas básicas para finanzas cuantitativas y prototipaje analítico
aplicables a optimización de portfolios y análisis de riesgos, cálculos de precios y sensibilidades
según diversos modelos, análisis de volatilidad (ARCH/GARCH), análisis básico de series
temporales, etc.

Financial Time Series Toolbox
Conjunto de herramientas para el análisis de series temporales en mercados financieros:
análisis y transformación de datos, análisis técnico (osciladores, índices, estocásticos,
indicadores), visualización.

Financial Derivatives Toolbox
Permite la creación y gestión de portafolios con diversos instrumentos financieros, así como
calcular sus precios y sensibilidades. Proporciona análisis “hedging”.

Garch Toolbox
Proporciona un entorno de cálculo integrado para trabajar con el modelo
GARCH de volatilidad. Usa un modelo compuesto ARMAX/GARCH para
simulaciones, previsiones, estimación de parámetros de series temporales, etc.

Datafeed Toolbox
Permite desde MATLAB el acceso a los servicios de datos financieros (Bloomberg, Interactive
Data, Yahoo Finance) para su descarga y posterior análisis en MATLAB.

SIMULACIÓN DE SISTEMAS CON SIMULINK Y SUS
HERRAMIENTAS ADICIONALES
Otro de los campos tratados especialmente por MATLAB, y de gran aplicación en la ingeniería,
es la automatización del diseño mediante simulación de sistemas dinámicos. Los productos
más importantes en el área de simulación de sistemas son:

Simulink
Es un entorno gráfico interactivo para el modelado, análisis y simulación de una gran variedad
de sistemas dinámicos (discreto, analógico e híbrido) mediante la utilización de diagramas de
bloques. Permite la incorporación de los algoritmos y controles que se hayan desarrollado en C
previamente a la utilización de Simulink. Trabaja totalmente integrado con MATLAB.

169


MATLAB Orientado a la matemática aplicada

Stateflow
Es un entorno gráfico interactivo para el modelado de la lógica de sistemas dinámicos basados
en eventos (temporales o de estado). Se basa en la teoría de máquinas de estado finito y utiliza
diagramas de transición de estado para expresar la lógica del sistema y diagramas de control
de flujo. Trabaja perfectamente integrado con Simulink.

Simulink Report Generator
Permite la documentación automática mediante la creación de diversos informes de los
modelos desarrollados en Simulink.

Simulink Performance Tools
Es un conjunto de 4 herramientas que gestionan y optimizan el rendimiento de Simulink en las
simulaciones de modelos de gran escala: Simulink Accelerator, Simulink Model Profiler,
Simulink Model Differencing y Simulink Model Coverage.

Requirements Management Interface
Nos permite coordinar, registrar e implementar los cambios en el diseño de especificaciones a
lo largo del ciclo de desarrollo. Esta herramienta nos permite asociar los requerimientos del
proyecto con modelos de Simulink, diagramas de Stateflow y algoritmos de MATLAB.

Virtual Reality
Permite la creación de escenas e imágenes en movimiento en un entorno de realidad virtual de
3 dimensiones. Desde MATLAB y Simulink podemos representar y visualizar en este entorno de
realidad virtual el modelo que estamos simulando e interactuar con él, bien desde Simulink o
bien desde el propio entorno de realidad virtual.

BLOCKSETS DE SIMULINK
Al igual que MATLAB presentaba toolboxes adicionales con extensiones del programa general
aplicadas a diversos campos, Simulink también presenta aplicaciones adicionales con
extensiones de simulación de sistemas denominadas blocksets. A continuación se relacionan
los más interesantes:

DSP Blockset
Proporciona un conjunto de bloques para Simulink que son el fundamento para el diseño de
muchas aplicaciones de procesado de señales digitales (DSP) como procesado básico de señal,
estimación espectral, diseño de filtros. Todos los bloques soportan simulación por muestreo y
por frames.
Communications Blockset
Conjunto de más de 150 bloques para Simulink para diseñar de forma completa y simular
sistemas de comunicaciones.

170


Andrés Pérez

CDMA Reference Blockset
Conjunto de bloques de Simulink para crear y simular modelos de sistema de comunicaciones
inalámbricos bajo el estándar IS-95A.

Fixed-Point Blockset
Permite emular la aritmética de punto fijo cuando diseñamos y simulamos sistemas dinámicos
o filtros digitales que al final serán implementados en targets digitales de punto fijo.

Dials & Gauges Blockset
Monitoriza señales y parámetros de simulación mediante elementos gráficos (instrumentos de
aspecto real). Nos permite añadir a los modelos de Simulink estos elementos gráficos y así
visualizar el entorno que estamos modelando.

Nonlinear Control Design Blockset
Proporciona una aproximación al diseño de sistemas de control basada en una optimización
que ajusta los parámetros de acuerdo con unas restricciones en la respuesta transitoria
temporal del sistema fijadas por el usuario.

Power System Blockset
Permite modelar y simular en Simulink sistemas eléctricos de potencia (generación,
transmisión, distribución) y su control (motores, transformadores, tiristores, diodos, etc.)

Sym Mechanics Blockset
Permite modelar y simular de forma sencilla en Simulink los componentes de un sistema
mecánico, ver y animar su movimiento, estudiar su cinemática y dinámica (directa e inversa),
etc.

GENERACIÓN DE CÓDIGO DE SIMULINK
La generación de código en el campo de la simulación es otra de las facetas tratadas por
MATLAB. Entre los generadores de código tenemos:

Real-Time Workshop
Genera código C en tiempo real a partir de los modelos realizados en Simulink, lo que nos
permite realizar prototipaje rápido, acelerar las simulaciones o realizar simulaciones en tiempo
real.

Real-Time Workshop Embedded Coder
Genera código C en tiempo real optimizado en velocidad de ejecución y con unos mínimos
requerimientos de memoria para usarlo en sistemas “embedded” de tiempo real. Este código
puede ser descargado directamente al procesador target. El código generado es comparable al
código optimizado escrito a mano.

171


MATLAB Orientado a la matemática aplicada

Stateflow Coder
Genera código C en tiempo real a partir de los diagramas de transición realizados en Stateflow.

IMPLEMENTACIÓN EN TARGETS
El desarrollo de tarjetas (targets) para relacionar MATLAB con aplicaciones de otros sistemas
ha registrado un avance importante en las últimas versiones del programa. La implementación
en targets ha originado módulos como los siguientes:

Developer’s Kit for Texas Instruments DSP
Este software facilita el diseño, análisis e implementación de aplicaciones
para DSPs de Texas Instruments al integrar MATLAB, Simulink y Real-Time
Workshop con el software (Code Composer Studio, RTDX) y targets (C5000,
C6000, C6701EVM, DSKs) de Texas Instruments.

Motorola DSP Developer’s Kit.
Este software integra MATLAB y Simulink con el software de Motorola
(Motorola’s Suite 56) para el desarrollo de aplicaciones basadas en DSPs de
Motorola (familias 56300 y 56600).

Xilinx’s FPGA System Generator for Simulink
Este software permite el desarrollo de aplicaciones DSP de alto rendimiento para
los FPGAs de Xilinx (Spartan II y Virtex/E) usando MATLAB y Simulink (Xilinx
Blockset). Entre otras prestaciones genera código VHDL a partir de los modelos de
Simulink.

PROTOTIPAJE
En el campo del prototipaje MATLAB dispone de las siguientes aplicaciones:

Real-Time Windows Target
Permite ejecutar los modelos de Simulink y Stateflow en tiempo real en un PC con Windows.
Durante la ejecución podemos comunicarnos con una amplia variedad de tarjetas I/O (más de
100), lo cual nos permite controlar sensores, actuadores y otros dispositivos para poder
experimentar, desarrollar y testear nuestros sistemas tiempo-real.

xPC Target
Permite añadir bloques I/O a Simulink, generar código con Real-Time Workshop y descargar
este código en un segundo PC que ejecuta el kernel de xPC Target. Es ideal para prototipaje
rápido. Permite la ejecución de modelos en tiempo real en un segundo PC (como target) sin
necesidad de Windows. Con esta solución, el PC que actúa como host y el que actúa como
target se mantienen comunicados durante la ejecución en tiempo real.

172


Andrés Pérez

xPC Target Embedded Option
Esta opción nos permite que el modelo desarrollado se ejecute en el PC que actúa como target
sin necesidad de que esté conectado al PC host. Esta opción es la adecuada cuando nuestro
modelo está finalizado y lo entregamos para su funcionamiento en producción.

ANÁLISIS Y DISEÑO DE SISTEMAS DE CONTROL
El análisis y diseño de los sistemas de control es otro de los campos de la ingeniería que cubre
MATLAB con diversos toolboxes. Entre los más importantes tenemos los siguientes:

Control System Toolbox
Proporciona un entorno interactivo y gráfico para el modelado, análisis y diseño de sistemas
de control, utilizando tanto los métodos clásicos como los modernos: root locus, loop shaping,
pole placement y LQR/LQG regulation. Soporta sistemas LTI, SISO, MIMO y diversos métodos
de conversión.

Fuzzy Logic Toolbox
Herramienta interactiva para el desarrollo de algoritmos de lógica difusa aplicable a
reconocimiento e identificación de imágenes con patrones difusos, procesado de señales y
desarrollo de procesos inteligentes y adaptativos.

Robust Control Toolbox
Herramientas para el diseño y modelado de sistemas de control multivariable mediante
técnicas H∞ donde la robustez del sistema es un factor crítico.

μ-Analysis and Synthesis Toolbox
Algoritmos para μ aplicables al análisis de rendimiento y de robustez en sistemas con
incertidumbres en el modelado y parametrización.

LMI Control Toolbox
Algoritmos de optimización para la resolución de inecuaciones matriciales lineales (LMI)
presentes en control robusto, en control multiobjetivo, etc.

Model Predictive Control Toolbox
Completo conjunto de herramientas para implantar estrategias de control predictivo.
Model-Based Calibration Toolbox
Conjunto de herramientas para la calibración de sistemas motrices complejos. Cubre las tres
fases de la calibración: planificación de la prueba física en el dinamómetro, utilización de los
datos medidos para producir una serie de modelos de respuesta que reflejen el
comportamiento del motor y empleo de estos modelos para calibrar el sistema motriz.


173


MATLAB Orientado a la matemática aplicada

BIBLIOGRAFÍA
C. Pérez. (2002). Matlab y sus Aplicaciones en las Ciencias y la Ingeniería. Madrid.
A. Gilat. (2005). Matlab: Una introducción con ejemplos practicos. Ohio.
H. Moore. (2007). MATLAB para ingenieros. México.
G. Borrell i Nogueras. (2008). Introdución informal a Matlab y Octave. Calella.
J. García. (2005). Aprenda Matlab 7.0 como si estuviara en primero. Madrid.
R. Fernández. (2012). MATLAB: Fundamentos y/o aplicaciones. Barcelona.
B. Hunt. (2001). A Guide to MATLAB for Beginners and Experienced Users. Cambridge.
J. Benitez. (2007). Introducción a MATLAB. Valencia.
J. Schmidt. (2011). GNU Octave. Birmingham.
C. Gil; M. Franco. (2005). ANÁLISIS ESTADÍSTICO EN MATLAB. Bogotá.
J. Saenz. (2005). CALCULO DIFERENCIAL. Barquisimeto
J. Saenz. (2009). CALCULO INTEGRAL. Barquisimeto.
J. Saenz. (2013). CALCULO VECTORIAL. Barquisimeto.
J. Stewart. (2006). Cálculo. Sao Paulo.
J. Rodríguez ; M. Rodríguez; I. Huerta. Espacios con producto interno. Barquisimeto.
D. Malik. (2007). Introduction to Abstract Algebra. Creighton.
H. Taha. (2004). INVESTIGACIÓN DE OPERACIONES . México
F. Hillier; G. Lieberman. (1997). INTRODUCCIÓN A LA INVESTIGACIÓN DE OPERACIONES.
México.
R. Thierauf; R. Grosse. (1981). Toma de decisiones por medio de INVESTIGACIÓN DE
OPERACIONES. Méico.
L. Rodríguez. (2007). PROBABILIDAD Y ESTADÍSTICA BÁSICA PARA INGENIEROS. Guayaquil.
D. Wackerly; W. Mendehall; R. Scheaffer. (2002). ESTADÍSTICA MATEMÁTICA CON
APLICACIONES. México.
A. Quarteroni; F. Saleri. (2006). CÁLCULO CIENTÍFICO con MATLAB y Octave. Milano.
INE (Instituto Nacional de Estadística de la República Bolivariana de Venezuela)(2011). XIV
CENSO NACIONAL DE POBLACIÓN Y VIVIENDA: Resultados Básicos. Carácas.
174


Andrés Pérez

INE (Instituto Nacional de Estadística de la República Bolivariana de Venezuela) (2013). XIV
CENSO NACIONAL DE POBLACIÓN Y VIVIENDA: Resultados por Entidad Federal y Municipio
del Estado Lara. Carácas.
INE (Instituto Nacional de Estadística de la República Bolivariana de Venezuela) (2013). XIV
CENSO NACIONAL DE POBLACIÓN Y VIVIENDA: Resultados por Entidad Federal y Municipio
del Estado Miranda. Carácas
INE (Instituto Nacional de Estadística de la República Bolivariana de Venezuela) (2013). XIV
CENSO NACIONAL DE POBLACIÓN Y VIVIENDA: Resultados por Entidad Federal y Municipio
del Estado Carabobo. Carácas
INE (Instituto Nacional de Estadística de la República Bolivariana de Venezuela) (2013). XIV
CENSO NACIONAL DE POBLACIÓN Y VIVIENDA: Resultados por Entidad Federal y Municipio
del Estado Distrito capital. Carácas
INE (Instituto Nacional de Estadística de la República Bolivariana de Venezuela) (2013). XIV
CENSO NACIONAL DE POBLACIÓN Y VIVIENDA: Resultados por Entidad Federal y Municipio
del Estado Aragua. Carácas










175