Sunteți pe pagina 1din 175

Andrs Prez

2
da
Edicin

MATLAB
Orientado a
la matemtica aplicada


Universidad Centroccidental
Lisandro Alvarado
Decanato de Ciencias y Tecnologa
Licenciatura en Ciencias Matemticas
Barquisimeto. Estado Lara



MATLAB
Orientado a la matemtica aplicada
Segunda Edicin



Andrs E. Prez 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 matemtica aplicada

CONTENIDO
INTRODUCCIN ......................................................................................................................................... 11
OBJETIVO ........................................................................................................................................................... 11
JUSTIFICACIN ................................................................................................................................................... 11
COMO UTILIZAR ESTE TUTORIAL? ................................................................................................................... 11
CAPITULO 1. COMENZANDO A TRABAJAR CON MATLAB ............................................................................. 12
TPICOS ELEMENTALES ..................................................................................................................................... 12
Qu es MATLAB? ......................................................................................................................................... 12
Origen ............................................................................................................................................................ 12
Versiones e historia ....................................................................................................................................... 12
Qu versin 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
NMEROS, OPERADORES Y VARIABLES ............................................................................................................ 16
Operaciones bsicas ...................................................................................................................................... 16
Creacin de variables .................................................................................................................................... 16
Funciones matemticas elementales de MATLAB ........................................................................................ 18
Algunos nmeros 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 smbolo % ................................................................................................................................................... 31
4


Andrs Prez

El comando clc ............................................................................................................................................... 32
Algunas reglas bsicas de sintaxis ................................................................................................................. 32
EJERCICIOS 1 ...................................................................................................................................................... 33
CAPITULO 2. ALGORITMOS ......................................................................................................................... 35
COMANDO if ...................................................................................................................................................... 36
Comando if simple ......................................................................................................................................... 36
Comando if mltiple ...................................................................................................................................... 37
COMANDO for ................................................................................................................................................... 38
Comando for simple ...................................................................................................................................... 38
Comando for con especificacin 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 FUNCIN ..................................................................................................................................... 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 funcin? ................................................................................................... 54
EL COMANDO help ............................................................................................................................................ 54
COMPARATIVA ENTRE UN FICHERO SCRIPT Y UN FICHERO DE FUNCIN ........................................................ 55
EJERCICIOS 3 ...................................................................................................................................................... 57
CAPITULO 4. CLCULO SIMBLICO.............................................................................................................. 61
FUNCIONES ........................................................................................................................................................ 61
ECUACIONES ...................................................................................................................................................... 63
5


MATLAB Orientado a la matemtica aplicada

LMITES .............................................................................................................................................................. 66
DERIVADAS ........................................................................................................................................................ 67
INTEGRALES ....................................................................................................................................................... 68
EJERCICIOS 4 ...................................................................................................................................................... 71
CAPITULO 5. GRFICOS .............................................................................................................................. 75
GRFICOS EN 2D ................................................................................................................................................ 75
Graficando funciones del tipo y=f(x) ............................................................................................................. 75
Graficando curvas paramtricas en el plano ................................................................................................. 77
GRFICOS EN 3D ................................................................................................................................................ 79
Graficando funciones del tipo z=f(x,y) .......................................................................................................... 79
Graficando curvas paramtricas en el espacio .............................................................................................. 82
EJERCICIOS 5 ...................................................................................................................................................... 84
CAPITULO 6. ESTADSTICA .......................................................................................................................... 86
MEDIDAS DE LOCALIZACIN ............................................................................................................................. 86
Media aritmtica ........................................................................................................................................... 86
Media geomtrica ......................................................................................................................................... 87
Media armnica ............................................................................................................................................. 88
Media ajustada .............................................................................................................................................. 89
Mximo .......................................................................................................................................................... 89
Mnimo .......................................................................................................................................................... 90
Mediana ......................................................................................................................................................... 91
MEDIDAS DE DISPERSIN .................................................................................................................................. 91
Desviacin estndar ...................................................................................................................................... 91
Varianza ......................................................................................................................................................... 92
Rango ............................................................................................................................................................. 92
Rango intercuartil .......................................................................................................................................... 93
Percentil ......................................................................................................................................................... 93
Quantil ........................................................................................................................................................... 94
Oblicuidad ...................................................................................................................................................... 94
Curtosis .......................................................................................................................................................... 95
Tabla con las frecuencias absolutas y relativas ............................................................................................. 95
Desviacin absoluta ....................................................................................................................................... 96
6


Andrs Prez

Momentos centrales...................................................................................................................................... 97
GRUPOS DE DATOS ............................................................................................................................................ 97
Matriz de covarianza ..................................................................................................................................... 97
Matriz de correlacin lineal ........................................................................................................................... 98
Matriz de los coeficientes de correlacin ...................................................................................................... 98
Matriz con tabulacin-cruzada .................................................................................................................... 100
Resumen estadstico por grupo ................................................................................................................... 100
GRFICOS ESTADSTICOS ................................................................................................................................. 101
Grficos simples ........................................................................................................................................... 102
Lnea de ajuste de mnimos cuadrados ....................................................................................................... 103
Histograma .................................................................................................................................................. 104
Grfico de barras verticales ......................................................................................................................... 105
Grfico de barras horizontales .................................................................................................................... 106
Grfico de escaleras..................................................................................................................................... 107
Grfico de tallo ............................................................................................................................................ 108
Grfico de tarta ............................................................................................................................................ 109
Generacin de nmeros al azar ................................................................................................................... 110
Diagramas de distribuciones de probabilidad ............................................................................................. 111
EJERCICIOS 6 .................................................................................................................................................... 112
CAPTULO 7. OPTIMIZACIN ..................................................................................................................... 114
PROGRAMACIN LINEAL ................................................................................................................................. 114
Formato general de un programa lineal ...................................................................................................... 114
Minimizacin ............................................................................................................................................... 115
Maximizacin ............................................................................................................................................... 118
PROGRAMACIN CUADRTICA ....................................................................................................................... 121
EJERCICIOS 7 .................................................................................................................................................... 127
CAPTULO 8. MTODOS NUMRICOS ........................................................................................................ 130
RESOLUCIN DE ECUACIONES NO LINEALES ................................................................................................... 130
Mtodo de punto fijo .................................................................................................................................. 130
Mtodo de biseccin ................................................................................................................................... 132
Mtodo de Newton ..................................................................................................................................... 135
Mtodo de Euler .......................................................................................................................................... 137
7


MATLAB Orientado a la matemtica aplicada

Un mtodo hbrido: Newton-Biseccin ....................................................................................................... 139
Mtodo de la Falsa Posicin ........................................................................................................................ 142
Mtodo de la Secante .................................................................................................................................. 145
Comandos predefinidos en MATLAB ........................................................................................................... 147
INTERPOLACIN POLINOMIAL ........................................................................................................................ 149
Forma de Lagrange ...................................................................................................................................... 149
Forma modificada de Lagrange ................................................................................................................... 151
Forma baricntrica de Lagrange .................................................................................................................. 153
Forma baricntrica 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
CAPTULO 9. COMPONENTES DE MATLAB ................................................................................................. 165
EL SOFTWARE BSICO 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 APLICACIN EN MATEMTICA 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 ADQUISICIN DE DATOS .................................................................................... 167
8


Andrs Prez

Data Acquisition Toolbox ............................................................................................................................. 167
Instrument Control Toolbox ........................................................................................................................ 167
Curve Fitting Toolbox ................................................................................................................................... 167
TOOLBOXES DE MATLAB PARA PROCESADO DE SEALES .............................................................................. 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 IMGENES ........................................................................... 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
SIMULACIN 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 matemtica aplicada

Power System Blockset ................................................................................................................................ 171
Sym Mechanics Blockset.............................................................................................................................. 171
GENERACIN DE CDIGO DE SIMULINK ......................................................................................................... 171
Real-Time Workshop ................................................................................................................................... 171
Real-Time Workshop Embedded Coder ...................................................................................................... 171
Stateflow Coder ........................................................................................................................................... 172
IMPLEMENTACIN EN TARGETS ..................................................................................................................... 172
Developers Kit for Texas Instruments DSP ................................................................................................. 172
Motorola DSP Developers Kit. .................................................................................................................... 172
Xilinxs FPGA System Generator for Simulink .............................................................................................. 172
PROTOTIPAJE ................................................................................................................................................... 172
Real-Time Windows Target ......................................................................................................................... 172
xPC Target .................................................................................................................................................... 172
xPC Target Embedded Option ..................................................................................................................... 173
ANLISIS Y DISEO 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
BIBLIOGRAFA .......................................................................................................................................... 174




10


Andrs Prez

INTRODUCCIN
OBJETIVO
En el presente trabajo se pretende dar a conocer las aplicaciones bsicas de MATLAB en la matemtica
aplicada, y corresponde a un material de ayuda en un curso del software mencionado, orientado a los
estudiantes de Licenciatura en Ciencias Matemticas del el Decanato de Ciencias y Tecnologa 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.
JUSTIFICACIN
Durante el desarrollo de la carrera Licenciatura en Ciencias Matemticas, se destaca la gran importancia del
modelado, simulacin y optimizacin de fenmenos reales que son objeto de estudio en asignaturas como:
estadstica, investigacin de operaciones, anlisis numrico, programacin no lineal, etc. y muchas otras reas
no solo de la matemtica, sino de las ciencias aplicada en general, que requieren un soporte computacional
para su compresin.
Es por esta razn que se considera vital ensear a los estudiantes de matemtica como utilizar el mdulo
bsico de MATLAB, para as fomentar su motivacin a cursar asignaturas de la matemtica aplicada y con ello
logren expandir su intelecto acadmico.
COMO UTILIZAR ESTE TUTORIAL?
Esta obra est dividida en nueve captulos. Los primeros tres corresponden a temas bsicos sobre el manejo de
MATLAB: manipulacin de variables vectoriales y matriciales, programacin estructurada y definicin de
M-Ficheros respectivamente.
Los captulos cuarto y quinto corresponden a: clculo simblico y grficos respectivamente.
En los captulos subsiguientes (sexto, sptimo y octavo) se dan algunos ejemplos en que MATLAB facilita el
estudio de la matemtica aplicada: funciones y procesamiento de datos estadsticos, tcnicas de optimizacin
lineal y no lineal y finalmente implementacin de mtodos numricos.
El ltimo captulo trata sobre los componentes de MATLAB: toolboxes y blocksets. Este tema se coloc al final
para que el lector pueda ahondar ms acerca de las aplicaciones del software.
En cada captulo se da la explicacin terica y ejemplos ilustrativos sobre el tpico tratado, adems de una lista
de ejercicios para que lector internalice lo aprendido, sin que ello le obligue a resolverlos para avanzar en los
captulos restantes. Cabe destacar que algunos ejemplos y/o problemas planteados en cada captulo se
formulan de manera que el lector aplique las tcnicas ilustradas en el mismo (diseando un algoritmo), pese a
que dichos problemas pudiesen ser resueltos de manera ms practica (empleando un comando predefinido
en MATLAB). El objetivo que se persigue es que el lector se adiestre en disear nuevas formas de revolver
problemas con MATLAB, y no sea dependiente de las funciones ya predefinidas.
11


MATLAB Orientado a la matemtica aplicada

CAPITULO 1. COMENZANDO A TRABAJAR CON
MATLAB

TPICOS ELEMENTALES
Qu es MATLAB?
MATLAB (abreviatura de MATrix LABoratory, laboratorio de matrices) es un software matemtico que ofrece
un entorno de desarrollo integrado (IDE) el cual permite el anlisis y la computacin matemticos interactivos
de forma sencilla con ms de 500 funciones matemticas, estadsticas y tcnicas implementadas, as como la
visualizacin de todo tipo de grficos de ingeniera y cientficos. Posee un lenguaje de programacin propio
(lenguaje M) y adems est disponible para las plataformas Unix, Windows y Mac OS X.
Entre sus prestaciones bsicas se hallan: la manipulacin de matrices, la representacin de datos y funciones, la
implementacin de algoritmos, la creacin de interfaces de usuario (GUI) y la comunicacin 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 simulacin multidominio) y
GUIDE (editor de interfaces de usuario - GUI). Adems, 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 fcil 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 versin, a finales de los aos 70, se escribi en FORTRAN, siendo la nica estructura de datos la
matriz. Posteriormente, en los aos 80, MATLAB fue rediseado en C. La versin 3 para MS-DOS desde
principios de los aos 90. En 1993 aparece la versin 4, para Windows 3.11, que ya incorpora la primera versin
del Simulink. Las versiones ms recientes se identifican con el nombre del ao, as: R2008a, R2008b, R2009a,
etc.

Hoy en da MATLAB es un estndar de facto en ingeniera y computacin cientfica. Se celebran congresos
monotemticos sobre sus aplicaciones y distintas empresas e instituciones venden sus toolboxes como third
parties o bien las publican en Internet con acceso libre.
Qu versin estamos utilizando en este tutorial?
A lo largo de esta obra, utilizaremos la versin MATLAB2007a.



12


Andrs Prez

ENTORNO DE TRABAJO DE MATLAB

La pantalla de entrada de MATLAB constituye el marco de trabajo general del programa. Los elementos ms
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 documentacin 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 matemtica 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 continuacin 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 relacin de las funciones utilizadas recientemente en la
ventana de comandos. Tambin muestra un indicador de comienzo de sesin.


14


Andrs Prez

La ventana de directorio actual

Su funcin es ver, abrir y hacer cambios en los ficheros del entorno de MATLAB. Esta ventana permite explorar
los directorios del ordenador en forma anloga 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, tamao, nombre, etc.

La ventana de ayuda

MATLAB dispone de un sistema de ayuda en lnea 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 hipervnculos para navegar por su contenido. La parte izquierda del
panel de navegacin de la ayuda presenta en su zona superior una barra con las opciones Content (ayuda por
15


MATLAB Orientado a la matemtica aplicada

contenido), Index (ayuda por ndice alfabtico), Search (buscar ayuda por tema) y Favorites (temas de ayuda
favoritos).
NMEROS, OPERADORES Y VARIABLES
Se puede trabajar con diferentes tipos de nmeros y expresiones numricas, que abarcan todo el campo de los
nmeros enteros, racionales, reales, complejos, y se utilizan en argumentos de funciones.
Operaciones bsicas
Una de las primeras aplicaciones de MATLAB es su uso para la realizacin de operaciones aritmticas como si
se tratara de una calculadora convencional, pero con una importante ventaja sobre ella: la precisin en el
clculo. Las operaciones son realizadas bien en forma exacta o bien especificando al programa el grado de
precisin que desee. Los operadores aritmticos tienen la siguiente sintaxis:
x+y Suma
x - y Resta
x*y Multiplicacin
x/y Divisin
x^y Potenciacin
Operadores aritmticos.
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.








Creacin de variables
MATLAB no requiere ningn tipo de comando para declarar variables, sencillamente crea la variable mediante
la asignacin directa de su valor.


EJEMPLO: para hacer el cmputo 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


Andrs Prez

































EJEMPLO: el clculo 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
anlogamente
>> 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
sesin de MATLAB, por ejemplo
>>z=10.2
z =
10.2

17


MATLAB Orientado a la matemtica 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 operacin realizada.












Funciones matemticas elementales de MATLAB
Un resumen de las funciones elementales del mdulo bsico de MATLAB se muestra en la siguiente tabla
SINTAXIS EXPLICACIN
sqrt(x) Raz cuadrada
exp(x) Exponencial
log(x) Logaritmo natural (neperiano)
abs(x) Valor absoluto
factorial(n) Factorial
rem(a,b) Resto de la divisin a/b
sin(x), sinh(x) Seno y seno hiperblico
cos(x), cosh(x) Coseno y coseno hiperblico
tan(x), tanh(x) Tangente y tangente hiperblico
cot(x), coth(x) Cotangente y cotangente hiperblico
sec(x), sech(x) Secante y secante hiperblico
csc(x), csch(x) Cosecante y cosecante hiperblico
EJEMPLO: la sentencia

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

hace que a la variable r se le asigne el valor de la raz cbica de dos, pero no se muestra la asignacin.
Verifiquemos que la MATLAB si hizo tal asignacin
>>r
r =
1.2599


18


Andrs Prez

asin(x), asinh(x) Arco seno y arco seno hiperblico
acos(x), acosh(x) Arco coseno y arco coseno hiperblico
atan(x), atanh(x) Arco tangente y arco tangente hiperblico
acot(x), acoth(x) Arco cotangente y arco cotangente
hiperblico
asec(x), asech(x) Arco secante y arco secante hiperblico
acsc(x), acsch(x) Arco cosecante y arco cosecante hiperblico
Funciones matemticas 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 matemtica aplicada

Algunos nmeros especiales
Existe un grupo importante de nmeros irracionales y reales en general que por su utilizacin merecen trato
especial. MATLAB incorpora los siguientes:
SINTAXIS EXPLICACIN
pi Nmero
exp(1) Nmero
i Unidad imaginaria
Inf Infinito. Se produce con operaciones como 1/0
NaN Indeterminacin. Se produce con operaciones como
0/0 o Inf/Inf
realmin Menor nmero real positivo utilizable
realmax Mayor nmero real positivo utilizable
Nmeros especiales.










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


Andrs Prez



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 prcticas de definir ciertos vectores, sin necesidad de escribir explcitamente todos sus elementos.
Se presentan en la tabla siguiente
SINTAXIS EXPLICACIN
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 matemtica 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
s
variable=logspace(a,b,n) Define el vector cuyos primero y ltimo
elementos son especificados y que tiene en
total n elementos en escala logartmica
uniformemente espaciados entre s
Formas de definir vectores.







En MATLAB tambin 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


Andrs Prez

Asimismo podemos seleccionar un elemento de un vector o un subconjunto de elementos. La tabla siguiente
nos lo explica
SINTAXIS EXPLICACIN
lenght(x) Devuelve la longitud del vector x
x(n) Devuelve el ensimo 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 matemtica 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 EXPLICACIN
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 cannica 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 estn colocadas en
orden inverso (de arrida hacia abajo) a las filas de A
fliplr(A) Devuelve la matriz cuyas columnas estn 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


Andrs Prez

columna
reshape(A,m,n) Devuelve la matriz de orden mn extrada de la
matriz A tomando elementos consecutivos de A por
columnas
size(A) Devuelve el orden (tamao) 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 mn con unos en la diagonal
principal y ceros en el resto
zeros(m,n) Crea la matriz nula de orden mn
ones(m,n) Crea la matriz de orden mn con todos sus elementos
iguales a 1
pascal(n) Crea una matriz nxn, la cual es una extraccin del
Tringulo de Pascal
magic(n) Crea una matriz mgica, 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 tomndolas 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 interseccin
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 matemtica 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 88
>>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


Andrs Prez


























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 matemtica aplicada















GUARDANDO, BORRANDO Y LEYENDO
En muchas ocasiones puede resultar necesario interrumpir el trabajo con MATLAB y poderlo recuperar ms
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
automticamente. A continuacin 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 sesin 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 sesin.

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


Andrs Prez


Esta es la forma bsica de los comandos save y load.

Ficheros .mat
Se pueden guardar tambin 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 sesin
basta tipiar
>> load nombre1
Si no se indica ninguna variable, se guardan todas las variables creadas en esa sesin.

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 continuacin:
SINTAXIS EXPLICACIN
clear Borra todas las variables del espacio de
trabajo
clear x y z Borra las variables numricas 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 extensin
save Guarda las variables del espacio de trabajo
en el fichero binario MATLAB.mat en el
29


MATLAB Orientado a la matemtica 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
tamaos 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


Andrs Prez

LTIMAS ACLARACIONES PARA TRABAJAR EN MATLAB
Tips
Para teclear un comando, el cursor debe estar situado despus del smbolo >>, tambin denominado
prompt.
Una vez que el comando se ha tecleado y se pulsa la tecla Enter, el comando es ejecutado. Sin
embargo, slo se ejecuta el ltimo comando. Todo lo ejecutado anteriormente permanece inalterado.
Se puede teclear ms de un comando en una sla lnea. Para ello slo 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 lnea anterior, realizar una correccin 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 ms de una lnea, este se puede distribuir en un segunda
lnea tecleando al final de la primera puntos suspensivos () y pulsando la tecla Enter. Seguidamente
se contina la escritura del comando en la lnea siguiente. Un comando de gran tamao se podra
distribuir en ms de una lnea hasta un lmite mximo 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 lnea, 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 smbolo %
Cuando se teclea el smbolo % (tanto por ciento) al principio de una lnea, MATLAB considerar dicha lnea
como un comentario. Esto significa que cuando se pulsa la tecla Enter la lnea no ser ejecutada. El carcter %
seguido de texto (comentario) puede ser utilizado tambin despus de un comando (en la misma lnea). El
comentario no tiene ningn efecto sobre la ejecucin del comando.
Habitualmente no es necesario poner comentarios en la ventana de comandos. stos se utilizan ms bien en
programas para aadir descripciones o para explicar partes del cdigo.
31


MATLAB Orientado a la matemtica 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 an
seguirn definidas, con sus valores asignados, y podrn seguir usndose 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 bsicas de sintaxis
MATLAB es sensible al uso de maysculas y minsculas, por ello se debe tener cuidado a la hora de tipiar una
variable, un comando, una funcin, 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 prpura mientras se teclean. Al finalizarlas correctamente (con la
comilla de cierre) se vuelven de color marrn.
2. La sintaxis de control de flujo aparece en color azul. Todas las lneas entre la apertura y el cierre de las
funciones de control de flujo aparecen correctamente sangradas.
3. Los parntesis, 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
matemticas.
4. Al introducir el smbolo % 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


Andrs Prez

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 nmeros del 1 al 13
o B = los nmeros del 20 al 4
o C = los nmeros pares del 2 al 26
o D = los nmeros pares del 30 al 8

Respecto a los vectores anteriores, defina las siguientes matrices

33


MATLAB Orientado a la matemtica 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


Andrs Prez

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 tambin se
pueden disear 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 EXPLICACIN
> Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que
== Igual que
~= Distinto de
Operadores relacionales.

Mientras que para las operaciones lgicas tenemos

SINTAXIS EXPLICACIN
~A Negacin lgica de A
A&B Conjuncin lgica de A y B
A|B Disyuncin lgica de A y B
xor(A,B) Disyuncin lgica exclusiva de A y B
Operadores lgicos.

Los operadores lgicos ofrecen un camino para combinar o negar expresiones relacionales.
35


MATLAB Orientado a la matemtica aplicada

COMANDO if
Las bifurcaciones permiten la ejecucin de una o ms sentencias, dependiendo del
cumplimiento de una condicin. A continuacin presentamos dos tipos.
Comando if simple
Ejecuta una o ms sentencias dependiendo del cumplimiento de una condicin. La sintaxis es
if condicin
sentencias
end
Tngase en cuenta que la condicin debe ser una expresin lgica, la cual generalmente es un
combinacin de operadores relacionales y lgicos.















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
ejecutarn siempre que la condicin sea verdadera

EJEMPLO: crearemos una matriz 33 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


Andrs Prez

Comando if mltiple
A diferencia del anterior, este comando clasifica las sentencias en varios bloques, adjudicando
a cada bloque una condicin, de modo que se ejecutar un solo bloque si la condicin
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 slo
se ejecutar un bloque de sentencias (1, 2, 3 o 4 disyuncin exclusiva).













Aqu se teclea el bloque N1 de sentencias, las cuales
se ejecutarn siempre que la condicin1 sea cierta

Aqu se teclea el bloque N2 de sentencias, las cuales
se ejecutarn siempre que la condicin2 sea cierta

Aqu se teclea el bloque N3 de sentencias, las cuales
se ejecutarn siempre que la condicin3 sea cierta

Aqu se teclea el bloque N4 de sentencias, las cuales se
ejecutarn siempre que las condiciones 1, 2, 3 sean falsas

EJEMPLO: crearemos un matriz 33. 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 matemtica aplicada

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

COMANDO for
Los bucles permiten la ejecucin de una o ms sentencias, en forma repetida. A continuacin
presentamos dos tipos.
Comando for simple
El comando for repite un conjunto de sentencias un nmero predeterminado de veces. La
sintaxis es
for i=a:b
entradas
end
La expresin i=a:b significa que las entradas se ejecutarn tantas veces la variable i recorra de
uno en uno los valores desde a (valor inicial) hasta b (valor final).
Una sintaxis muy tpica es la siguiente
for i=1:n
entradas
end
en este caso las sentencias se ejecutarn tantas veces la variable i recorre de uno en uno los
valores de 1 hasta n, es decir, se ejecutarn n-veces.












Este algoritmo calcula la suma. Ntese 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


Andrs Prez

Comando for con especificacin de incremento
Esta es una forma ms general de la sentencia for. La sintaxis ms comn es
for i=1:c:n
sentencias
end
aqu las sentencias se ejecutarn 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 ms comn es
for i=1:m
for j=1:n
sentencias
end
end
en este caso, las sentencias se ejecutn mn veces.

EJEMPLO: calcularemos la suma de los primeros 50 nmeros 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 matemtica aplicada


















Advertimos al lector que el uso del comando for no siempre es la mejor opcin. Por ejemplo, si
queremos sumar dos matrices de 50x50 podramos definir una matriz de orden 50x50 y luego
emplear dos comando for anidados para suma elemento por elemento. No obstante la
operacin ser ms rpida 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 ms sentencias en forma repetida. La diferencia es que en el
comando while no se indica la cantidad de iteraciones a hacer, ms bien se indica repetir
mientras se cumpla cierta condicin. La sintaxis es
while condicin
sentencias
end
EJEMPLO: a continuacin 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


Andrs Prez
















Cabe destacar que en el anterior algoritmo, en principio, no se conoca 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 nmero
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 matemtica 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 nmeros del 1 al 1000.

3. Calcule la suma de los nmeros impares del 1 al 100.

4. Considere la siguiente sucesin infinita {

} , donde

= (1)

,

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

5. Defina la matriz = (

)
44
, 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 cul de los siguientes nmeros es el mximo y cul es el mnimo
5/3 1 6/9 77/4 3/5 7/2 9 5/6 7/6 9/8 33/2 5 4 3/2
Disee un algoritmo para resolver este problema.

7. Se desea saber cules de los siguiente nmeros 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


Andrs Prez

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 =
(

)
24

donde

=
1


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


10. Considere la matriz = (

)
44
, 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 continuacin damos una lista de funciones no acotadas y un nmero positivo
a) () =
2
, = 52
b) () = 1 , = 365
c) () = , = 27
d) () = (), = 100
e) () = (), = 432
Para cada funcin halle un entero positivo tal que |()| > .
12. Cada uno de los siguientes polinomios tiene una nica raz 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 raz entera positiva de cada polinomio.

43


MATLAB Orientado a la matemtica aplicada

CAPITULO 3. M-Ficheros

Hay problemas en los cuales se necesita tipiar una enorme lista de sentencias (o lneas de
cdigo) 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


Andrs Prez

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 funcin. En el presente captulo
plantaremos dos problemas, los cuales resolveremos definiendo un fichero script y un fichero
de funcin respectivamente.









El cdigo (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 matemtica aplicada

O sea, para estudiar cada matriz necesitamos escribir 11 lneas de cdigo. Luego en total, para
obtener el informe de las 6 matrices tendramos que escribir nada ms y nada menos que 6x11
= 66 lneas de cdigo.
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 continuacin definiremos un
fichero script para resolver el problema 1. Ms adelante plantearemos otro problema para
resolverlo mediante un fichero de funcin.
FICHEROS SCRIPT
Los ficheros script son el tipo de M-Ficheros ms fciles de definir. Un fichero script (o script)
no tiene explcitamente 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 clculos
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


Andrs Prez

Paso 2: estructurar el fichero
A continuacin 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
opcin Save as del men File, seleccionando el lugar donde se guardar y proporcionando el
nombre del fichero en cuestin.
A nuestro fichero script le llamamos infomatriz, y qued de esta forma


Lneas de comentarios: estas lneas
describen para que sirve el
subprograma. Aunque son opcionales,
resultan muy tiles para proporcionar
informacin sobre el mismo en cuestin
Cuerpo: esta es la parte que contiene el cdigo
del subprograma que realiza las operaciones
especificadas. Dicho cdigo puede contener
cualquier comando de MATLAB
47


MATLAB Orientado a la matemtica 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 (continuacin): 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


Andrs Prez






















As, ya no es necesario escribir 66 lneas de cdigo en la ventana de comandos para estudiar las
6 matrices, hemos optimizado nuestro trabajo utilizando slo 2x6 +13= 25 lneas de cdigo (el
cdigo de la ventana de comandos mas el cdigo del fichero). Adems, este fichero script lo
podemos utilizar posteriormente.
Cabe resaltar la siguiente observacin: 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 utilizacin de la ventana de comandos se restringe generalmente a
la ejecucin de un nmero pequeo de sentencias. En caso contrario, cuando el nmero 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 matemtica aplicada

sentencias es demasiado elevado (como el algoritmo para resolver el problema 1), esta
metodologa no es apropiada.
El problema proviene, bsicamente, de que la ventana de comandos no es suficientemente
interactiva, los comando no pueden ser guardados y ejecutados de nuevo a peticin del
usuario. Esto implica que cada vez que se pulsa la tecla Enter slo se ejecuta el ltimo
comando, y todo lo anterior permanece inalterable. Si se necesita realizar alguna correccin 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
lneas de cdigo 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. Adems, si fueran
necesarias correcciones o cambios posteriores, slo habra que editar el fichero y ejecutarlo de
nuevo.
A continuacin 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


Andrs Prez

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).
Podramos modificar el scritp infomatriz de manera que pueda hacer el estudio de cualquier
matriz (cuadrada, no cuadrada y unidimensional), bastara cambiar los ndices de los bucles a
m (nmero de filas) y n (nmero 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 implcitamente a m,n, y A como
argumentos de entrada, lo cual hace ms complejo su uso. Es por ello que MATLAB ofrece otro
tipo de M-Fichero: fichero de funcin.

FICHEROS DE FUNCIN
Un fichero de funcin es prcticamente un fichero script pero ms sofisticado. Su diferencia
principal con el script es que si tiene explcitamente argumentos de entrada y salida. Lo
ficheros de funcin, al igual que los script, estn formado por comandos de MATLAB que se
ejecutan en una forma preestablecida. Los pasos para resolver el problema 2 con un fichero de
funcin son similares al caso script:
Paso 1: acceder al editor
Recurdese que en el men File, se selecciona New y luego M-File. Seguidamente se mostrar
el editor.

Paso 2: estructurar el fichero
A continuacin escribimos en el editor

51


MATLAB Orientado a la matemtica 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 lnea de definicin es

function[argumentos_de_salida]=nombre_funcion(argumentos_de_entrada)









El nombre puede estar formado por letras, dgitos y el carcter subrayado. Las reglas para el
nombre de este tipo de M-Fichero son las mismas que para la construccin de nombres de
La palabra
function debe
ser la primera
palabra
tecleada en
minscula
Lista de
argumentos
de salida
encerrados
entre
corchetes
Nombre
de la
funcin
Lista de
argumentos
de entrada
encerrados
entre
parntesis
Lnea de definicin: esta lnea indica el nombre del
fichero y los argumentos de entrada y salida
Lnea H1: esta lnea de comentario contiene el
nombre y una descripcin corta del fichero
Lneas de texto de ayuda: estas nos ofrecen
informacin sobre cules son los argumentos de
entrada y salida del fichero
Cuerpo: esta es la parte que contiene el cdigo que
realiza las operaciones especificadas
52


Andrs Prez

variables. Se recomienda evitar usar para este propsito 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 funcin le
llamamos estudiomatriz, y qued de esta forma


Paso 4: ejecutar el fichero










PROBLEMA 2 (continuacin): 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 matemtica aplicada











Realmente que es un fichero de funcin?
Sabemos que una funcin matemtica y=f(x) asocial un nmero f(x) (variable dependiente) a
cada nmero x (variable independiente). Cuando se introduce un valor x (entrada) en la
expresin de la funcin, se obtiene un valor y (salida).
Existen muchas funciones que estn 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 estn 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 funcin. Tal M-
Fichero recibe el nombre de fichero de funcin. En forma esquemtica, este tipo de fichero se
comporta de la siguiente forma



donde la entrada y la salida pueden estar compuestas por una o ms variables (escalares,
vectoriales o matriciales).
EL COMANDO help
Antes de utilizar un fichero scirpt o un fichero de funcin, 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 funcin 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


Andrs Prez




















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

COMPARATIVA ENTRE UN FICHERO SCRIPT Y UN
FICHERO DE FUNCIN
Algunas similitudes y diferencias son las siguientes:
Ambos son archivos con extensin .m (por tal razn 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 funcin si es necesario, y precisamente se hace en la lnea de
definicin.
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 matemtica 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 funcin, 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 funcin solamente las variables definidas como argumentos de salida,
permanecern en el espacio de trabajo.
Si se quiere resolver un problema complejo, definir un script puede ser muy largo y el
cdigo se torna engorroso. En cambio puede ser til descomponer el cdigo del script
en una o mas funciones (definiendo ficheros de funcin) que sean llamadas desde un
script compuesto justamente de ocas lneas de cdigo.
Los ficheros script son ms fciles de definir que los ficheros de funcin.
Al momento de usar un fichero de funcin hay libertad de nombrar los argumentos de
entrada y de salida (ntese 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 sern usados en el
script (por cierto que estos aspectos son implcitos).

















56


Andrs Prez

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 = (

)
33
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 cannica de Jordan
Para ello defina un fichero scritp.
3. El siguiente cdigo de fichero de funcin calcula el mximo comn divisor de dos
enteros no simultneamente 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 matemtica 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 mximo comn divisor de los siguientes nmeros
a) 43 y 65
b) 115 y 20
c) 40 y 90
d) 76 y 140

4. El siguiente cdigo calcula el elemento mnimo 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 mnimo 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 funcin para calcular el elemento mximo de los vectores del
ejercicio 4.
58


Andrs Prez


6. El siguiente cdigo calcula la posicin mnima en un vector que ocupa el elemento
mnimo 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 posicin mnima que
ocupa el mnimo. 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 cdigo 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 matemtica 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 funcin para ordenar en forma decreciente los vectores del
ejercicio 4.
















60


Andrs Prez

EJEMPLO: dada la funcin
() =
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. CLCULO SIMBLICO

Cuando hablamos de clculo simblico, nos referimos a cmputos como solucin de
ecuaciones; clculos de lmites, derivadas, integrales, y ese tipo de operaciones en los cuales se
involucran variables. MATLAB dispone de una gran variedad de comandos que facilitan estos
clculos, pero antes de utilizarlos, se debe colocar la entrada
>>syms x y z
con lo cual se indica que x, y, z son variables simblicas.
FUNCIONES
Simblicamente se pueden crear funciones de una o ms variables y evaluarlas en cualquier
expresin.

















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 matemtica aplicada

Tambin se pueden hacer sustituciones mltiples en el caso de funciones simblicas 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 simblicas dentro de otras expresiones simblicas.
EJEMPLO: dada la funcin
(, ) =

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


Andrs Prez


















Tambin es posible evaluar una funcin f en un vector v. La sintaxis sera
>>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 ecuacin y x la variable.
EJEMPLO: verificar que y son las races 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 matemtica aplicada













Tambin se pueden resolver ecuaciones cuadrticas.









En algunas expresiones simblicas 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 simblicas.
EJEMPLO: vamos a resolver la ecuacin
2 +1 = 9
tecleamos
>> syms x
>> solve('2*x+1=9',x)
ans =
4
lo cual nos indica que la solucin es = 4.

EJEMPLO: para hallar las races 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 races del polinomio.

64


Andrs Prez

EJEMPLO: si queremos una mejor visualizacin 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











Ntese que aunque sabemos que en la ecuacin 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 clculo simblico 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 matemtica aplicada

LMITES
El comando afn es
>>limit(f,x,a)
donde f es la expresin, x es la variable, y a es el parmetro.










Tambin se pueden calcular lmites 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 lmite 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


Andrs Prez

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








Tambin podemos calcular derivadas parciales de funciones de varias variables















EJEMPLO: derivar la siguiente funcin
() =

( 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 funcin
(, ) =

(
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 matemtica aplicada

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










MATLAB tambin 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


Andrs Prez

A continuacin damos un compendio de comandos afines al clculo simblico
COMANDO UTILIDAD
subs(f,x,a) Sustituye x por a en la funcin f
subs(f,{x,y,z,},{a,b,c,}) Sustituye x, y, z, por a, b,
c,respectivamente en la funcin f
solve(e,x) Resuelve una ecuacin e en la variable x
solve(e1,e2,...,en) Resuelve varias ecuaciones de varias
variables
limit(f,x,a) Calcula el lmite de la funcin f cuando x
tiende a a
lim


limit(x,a,left) Calcula el lmite de la funcin f cuando x
tiende a a por la izquierda

lim


limit(x,a,right) Calcula el lmite de la funcin f cuando x
tiende a a por la derecha

lim

+

diff(f,x) Deriva la funcin f en la variable x
()
Notar que f puede ser una funcin 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 funcin f en la
variable x

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


MATLAB Orientado a la matemtica aplicada

int(f,x) Calcula la integra indefinida de la
funcin f respecto a la variable x
()
int(f,x,a,b) Calcula la integra definida de la funcin
f respecto a la variable x, de a hasta b
()


Comandos para el clculo simblico.


















70


Andrs Prez

EJERCICIOS 4

1. Defina la siguiente funcin
() =

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 races del primero y gurdelas en una variable de nombre PRIM
b) Calcule las races del segundo y gurdelas en una variable de nombre SEG
c) Calcule las races del tercero y gurdelas en una variable de nombre TERC
d) Calcule las races del cuarto y gurdelas en una variable de nombre CUAR
e) Verifique que las races del segundo son un caso particular del primero (haga
= 0 en PRIM y compare con SEG)
f) Verifique que las races del tercero son un caso particular del primero (haga
= 0 en PRIM y compare con TERC)
g) Verifique que las races 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 matemtica 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

) 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
||

) lim
4
+
4
| 4|

72


MATLAB Orientado a la matemtica 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)

3


8. Calcule
a) 3
2
5
b)

2
+2

3
+3
2
+1

c)

(+1)
2

d)
411
2
2
+74

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 matemtica 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 funcin () 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 funcin, calcule el polinomio de Maclaurin de grado de las
siguientes funciones:

() =

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








74


Andrs Prez

CAPITULO 5. GRFICOS

Los grficos son herramientas muy utilizadas para presentar todo tipo de informacin;
informacin que puede proceder de cualquier campo del conocimiento, pero especialmente
de las disciplinas relacionadas con las ciencias y la ingeniara, donde MATLAB es ampliamente
utilizado.
A continuacin estudiaremos como crear grficos en el plano y en el espacio.
GRFICOS EN 2D
Graficando funciones del tipo y=f(x)
Para representar una funcin del tipoy=f(x) se utiliza el comando
>>plot(x,y)
Habiendo creado previamente un vector con los valores x del dominio de la funcin f,
seguidamente de un vector y para los valores de y=f(x) (esto es, expresando simblicamente la
funcin).
Una vez creados ambos vectores se utiliza el comando plot(x,y) para la creacin del grfico de
la funcin.














EJEMPLO: graficar la funcin
() = 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 funcin f
Calculamos el valor de y en
cada punto del vector [-2,2]
Finalmente creamos el grfico
75


MATLAB Orientado a la matemtica aplicada





Es importante sealar que para graficar funciones cuya expresin simblica involucra una
potenciacin (o divisin), debe colocarse un punto antes del operador potencia (o divisin).












EJEMPLO: graficar la funcin
=
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


Andrs Prez





Graficando curvas paramtricas en el plano
Consideremos la funcin paramtrica
() = (), ()
Donde t es el parmetro 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 grfico de la curva paramtrica 2D que
induce este tipo de funcin se tienen los siguientes pasos:
1. Crear un vector con los valores del parmetro t del dominio de la funcin r, por
ejemplo
>>t=-a:i:b
donde i representa el incremento (para mayor informacin consulte la tabla)
Con esto se define el intervalo [a,b] , el cual corresponde al dominio de la funcin r.

2. Calcular el valor de x, y en cada punto del vector anterior (esto es, representar
simblicamente las funciones componentes de t). En este caso, como en el
bidimensional, si la expresin simblica de las funciones f, g involucra una
potenciacin (o divisin), debe colocarse un punto antes del operador potencia (o
divisin).

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


MATLAB Orientado a la matemtica aplicada

EJEMPLO: visualizar el grfico de la circunferencia unitaria centrada en el
origen, sabiendo que una parametrizacin 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
funcin r

Definimos las funciones
componente de r

Finalmente representamos el
grfico de la circunferencia

78


Andrs Prez


GRFICOS EN 3D
Los grficos tridimensionales proporcionan una manera muy prctica de representar datos de
ms de dos variables. La sintaxis para estos grficos es anloga 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 grficos de malla y superficie en
3D. Los grficos de malla y superficie se generan siguiendo tres pasos:
1. Crear una rejilla en el plano XY que cubre el dominio de la funcin. 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 regin [a,b][c,d] del plano XY, la cual corresponde al dominio
de la funcin f.

2. Calcular el valor de z en cada punto de la rejilla (esto es, representar simblicamente la
funcin). En este caso, como en el bidimensional, si la expresin simblica de la
funcin involucra una potenciacin (o divisin), debe colocarse un punto antes del
operador potencia (o divisin).

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

para crear un grfico de malla:
>>mesh(x,y)

para crear un grfico de superficie:
>>surf(x,y)
A continuacin mostraremos los distintos modelos de grficos de malla y de superficie, para
representar la funcin
(, ) =
cos ((
2
+
2
) 4 )

2
+
2
+3

en el rectngulo [-5,5][-5,5]
79


MATLAB Orientado a la matemtica aplicada

EJEMPLO: visualizar el grfico de malla de la funcin 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 grfico de malla son:
meshz(x,y,z) (grfico de malla con cortina)
meshc(x,y,z) (grfico de malla con contorno)

Ahora vamos con la otra modalidad.
80


Andrs Prez

EJEMPLO: visualizar el grfico de superficie de la funcin 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 grfico de malla tambin ofrece otras configuraciones:
surfc(x,y,z) (grfico de superficie con contorno)
surfl(x,y,z) (grfico de superficie con alumbrado)

81


MATLAB Orientado a la matemtica aplicada

Graficando curvas paramtricas en el espacio
Consideremos la funcin paramtrica
() = (), (), ()
Donde t es la variable independiente (o parmetro) 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
grfico de la curva paramtrica 3D que induce este tipo de funcin se tienen los siguientes
pasos:
1. Crear un vector con los valores del parmetro t del dominio de la funcin 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
funcin r.

2. Calcular el valor de x, y, z en cada punto del vector anterior (esto es, representar
simblicamente las funciones componentes de t). En este caso, como en el
bidimensional, si la expresin simblica de las funciones f, g, h involucra una
potenciacin (o divisin), debe colocarse un punto antes del operador potencia (o
divisin).

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











EJEMPLO: graficar la curva paramtrica en 3D que define la siguiente funcin
() = (), (),
en el dominio [0,7]
t=0:0.1:7*pi;
x=cos(t);
y=sin(t);
z=t;
plot3(x,y,z)




82


Andrs Prez































83


MATLAB Orientado a la matemtica aplicada

EJERCICIOS 5

1. Grafique la siguiente funcin
() =
3

en el intervalo [2,2]

2. Grafique la siguiente funcin
() =

+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 grfica de las anteriores funciones en los intervalos indicados.

4. Visualice el grfico de la circunferencia de radio 2 centrada en el origen Sugerencia:
utilice la parametrizacin
() = 2(), 2(), 0 2

5. Visualice la grfica de la hiprbola
2

2
= 1. Sugerencia: utilize la parametrizacin
() = (), (),

6. Considere las siguientes funciones paramtricas

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


Andrs Prez

Visualice la grfica de las curvas paramtricas asociadas.

7. Grafique la funcin
(, ) =

3


En el rectngulo [2,2] [2,2]

8. Grafique la function
(, ) =
3

2
+
2
+1

2

2

En el rectngulo [3,3] [3,3]

9. Obtenga el grfico de las siguientes funciones en los rectngulos 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 funcin
() = cos() , (),
Se llama hlice. Bosqueje su grfico para 2 60.

11. Visualice el grfico de la recta que pasa por el punto (3,1, 2) y cuyo vector director
es (2,3,1). Sugerencia: utilize la parametrizacin
() = 3 +2, 1 +2, 2 , 7 6

12. Las siguientes funciones definen curvas paramtricas

a) () = ,
2
,
3

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

Obtenga la grfica de dichas curvas para 3 3.


85


MATLAB Orientado a la matemtica aplicada

CAPITULO 6. ESTADSTICA

El paquete estadstico de MATLAB ha sido desarrollado para proveer ayuda a cualquier tipo de
rea, desde las finanzas hasta la ingeniera, con herramientas interactivas capaces de
establecer anlisis de datos, adems viene acompaado de una completa serie de funciones
para desarrollar desde las ms bsicas aplicaciones estadsticas hasta un completo diseo y
proceso de cualquier anlisis estadstico.
MEDIDAS DE LOCALIZACIN
Media aritmtica
Para calcular la media aritmtica o promedio se emplea la funcin
>>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


Andrs Prez

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 geomtrica
Para este clculo estn 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 matemtica aplicada









Media armnica
La funcin 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


Andrs Prez

Media ajustada

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













Mximo
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 matemtica aplicada

Si dim es 1 se calcular el mximo de cada columna
Si dim es 2 se calcular la mximo de cada fila














Mnimo
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


Andrs Prez

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







MEDIDAS DE DISPERSIN
Desviacin estndar
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 desviacin estndar corregida. Si vale 1 devuelve la
desviacin estndar 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 matemtica 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


Andrs Prez

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 matemtica 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


Andrs Prez











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 slo 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 matemtica aplicada












Desviacin 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 desviacin absoluta media. Si vale 1 se calcula la
desviacin 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


Andrs Prez

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 observacin 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 matemtica aplicada










Matriz de correlacin lineal
Comando
>>corr(a)
donde a debe ser una matriz










Matriz de los coeficientes de correlacin
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


Andrs Prez

Mientras que los argumentos de salida son
R: matriz con los coeficientes de correlacin
P: matriz con los valores p usados en las pruebas de hiptesis
RLO y RUP son los lmites 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 matemtica aplicada

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


















Resumen estadstico por grupo
Comando
>>grpstats(a,group)
donde
a es una matriz
group es el vector que define como se agruparn 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


Andrs Prez





















GRFICOS ESTADSTICOS
MATLAB proporciona grandes facilidades en lo relacionado con grficas, situacin 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 parmetros que afectan el
resultado de la misma.
Las grficas 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 grficas

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 matemtica aplicada

Grficos simples
Comando
>>plot(x,y)
donde x, y son vectores de igual longitud
Cuando se ejecuta el comando plot, el grfico se crea en la Ventana de Grficos. Si no se ha
abierto previamente, esta ventana se abrir automticamente el a jecutar el comando. La
representacin del grfico que se mostrar se corresponde con una curva donde los valores de
x sern 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 estn
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


Andrs Prez

Lnea de ajuste de mnimos cuadrados
El comando que genera esta lnea 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 matemtica aplicada

Histograma
El comando es hist. Para generar el grfico 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 nmero de barras que se desean en el grfico




















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


104


Andrs Prez

Grfico 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 matemtica aplicada

Grfico 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


Andrs Prez

Grfico 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 matemtica aplicada

Grfico 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


Andrs Prez

Grfico de tarta
Comando
>>pie(x)
donde x es un vector
























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


109


MATLAB Orientado a la matemtica aplicada

Generacin de nmeros al azar
Comando
>>randtool
Esta funcin permite generar de forma interactiva nmeros al azar mostrando los resultados
grficos por medio de un histograma. Instala un interfaz grfico que permite indagar los
efectos al realizar cambios en los parmetros que afectan la funcin que se desee graficar




















Adems, la interfaz que se abre con la funcin, permite fijar valores de parmetro para la
distribucin y para cambiar sus lmites superiores e inferiores en la generacin de datos
aleatorios.
EJEMPLO:
>>randtool


110


Andrs Prez

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


























Al igual que la funcin presentada con anterioridad permite realizar modificaciones a los
parmetros relacionados con las caractersticas de la misma interfaz generada.

EJEMPLO:
>> disttool


111


MATLAB Orientado a la matemtica aplicada

EJERCICIOS 6

1. Segn el INE, la poblacin venezolana ha evolucionado (de acuerdo a los censos 1873-
2011) de la siguiente manera
Censos Poblacin
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 poblacin venezolana entre los aos 1873 y
2011.

2. Segn el INE, la poblacin 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 Poblacin
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 geomtrica, armnica y ajustada de la poblacin del estado Lara.

3. A continuacin mostramos las cifras dadas por el INE (de acuerdo a los censos 1873-
2011) respecto a la evolucin de la poblacin en 5 estados venezolanos


112


Andrs Prez

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 desviacin estndar corregida y sin corregir
b) La varianza corregida y sin corregir

4. Considerando los datos del ejercicio 3 calcule por ao
a) La desviacin estndar 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 correlacin lineal
c) La matriz de los coeficientes de correlacin

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







113


MATLAB Orientado a la matemtica aplicada

CAPTULO 7. OPTIMIZACIN

MATLAB proporciona comandos para resolver problemas de optimizacin tales como:
programacin lineal y cuadrtica, minimizacin no lineal con restricciones, minimizacin no
lineal restringida, logro de objetivos minimizacin semi-infinita, entre otros. En este captulo
slo nos enfocaremos en la programacin lineal y la programacin cuadrtica.
PROGRAMACIN 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

21

1
+
22

2
++
2

1
+
2

2
++

11

1
+
12

2
++
1

21

1
+
22

2
++
2

1
+
2

2
++

1

1

1

2

2

2





Si hacemos
Restricciones
de desigualdad
Restricciones
de igualdad
Funcin
objetivo
Acotacin de
las variables
114


Andrs Prez

= (

1

2

) , =

12

12

21

21


1

1

2

, =

12

12

21

21


1

1

2

, =

, =


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

=


Minimizacin
La sintaxis en para resolver un PL de minimizacin 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 funcin objetivo
o A: la matriz dada en la restriccin de desigualdad
o B: es el vector columna dado en la restriccin de desigualdad
o Aeq: es la matriz dada en la restriccin de igualdad
o Beq: es el vector columna dado en la restriccin de igualdad
o L y U son los vectores columna dados en la acotacin de las variables de decisin

Mientras que los argumentos de salida son
o X: vector columna con la solucin ptima del PL
o z: valor mximo de la funcin objetivo



115


MATLAB Orientado a la matemtica 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 mnimo valor de la funcin objetivo es = 4.5 y ocure en la solucin
ptima
1
= 1.5 ,
2
= 1.7756e 013 y
3
= 3.4227e 012.




116


Andrs Prez


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
























EJEMPLO: en Granjas Modelo se usa diariamente un mnimo de 800 libras (lb) de
un alimento especial, que es una mezcla de maz y soya, con las composiciones
siguientes
lb por lb de alimento
Alimento Protenas Fibras Costo ($/lb)
Maz 0.09 0.02 0.30
Soya 0.60 0.06 0.90

Las necesidades dietticas del alimento especial son un mnimo de 30% de
protenas y un mximo de 5% de fibras. Granjas Modelo desea determinar las
proporciones de alimento que produzcan un costo diario mnimo.

Como la mezcla de alimentos consiste en maz y soya, las variables de decisin del
modelo se definen como

1
= lb de maz en la mezcla diaria

2
= lb de soya en la mezcla diaria
La funcin 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 restriccin, obtenemos
un PL equivalente al anterior


117


MATLAB Orientado a la matemtica aplicada























Maximizacin
Resolver un PL de maximizacin
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 mnimo correspondiente, de la mezcla de alimentos, es
= $437.6471 diarios.

118


Andrs Prez


es equivalente a resolver un Pl de minimizacin

Minimizar =
Sujeto a

=

Ntese que la diferencia entre estos dos PL es que la funcin objetivo del segundo es el
opuesto aditivo del la del primero. En este caso la solucin ptima del problema de
minimizacin es la misma del problema de maximizacin, y el el valor mximo de Z es el valor
mnimo de z.

























EJEMPLO: la compaa Reddy Mikks produce pinturas para interiores y
exteriores, M1 y M2. La tabla siguiente proporciona los datos bsicos 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 ms que la de pintura para
exteriores. Tambin, que la demanda mxima 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 matemtica 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 solucin de PL original es
1
=3.0000 y
2
= 1.5000. Y al utilidad
mxima diaria es de = = (21.0000) = 21.0000 dlares.

120


Andrs Prez

PROGRAMACIN CUADRTICA
Un problema general de este tipo puede definirse como sigue
Minimizar =
1
2


Sujeto a

=

donde D es una matriz cuadrada, simtrica y tal que

0
Aqu

denota la traspuesta de y

la traspuesta de . La sintaxis para resolver el modelo


de programacin cuadrtica es
>>[X,z] = quadprog(D,C,A,B,Aeq,Beq,L,U)
Ntese que la diferencia entre un PL y un problema de programacin cuadrtica es la forma de
la funcin objetivo.














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

=
2
2
3
, =

2

solucionar el problema
Minimizar =
1
2


Sujeto a

0
Vemos que la matriz es simtrica, adems

=
1
2
2
1

2
+2
2
2
0
entonces nuestro programa es cuadrtico

121


MATLAB Orientado a la matemtica aplicada



















Para resolver un programa cuadrtico de maximizacin
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


Andrs Prez

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 cuadrtico, 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 matemtica aplicada












Un programa cuadrtico tambin se puede plantear sin especificar las matrices y , en lugar
de ello se muestra la funcin 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 fcil. Para ello veamos el siguiente ejemplo.










>> In quadprog at 264
Optimization terminated.
X =
0.3333
0.8333
z =
-4.1667
Luego, el valor mximo 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 simtrica de orden 2x2 tal que
1
2

= 2
1
2
4
1

2
+4
2
2



124


Andrs Prez




























>> 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 matemtica aplicada












En el ejemplo anterior utilizamos el comando simblico expand, el cual permite expresar un
objeto simblico de forma ms amplia.















Lo cual nos muestra que solucin ptima de nuestro programa cuadrtico es

1
= 12 ,
2
= 9
As, el mnimo valor de
= 270

Lo cual nos muestra que solucin ptima de nuestro programa cuadrtico es

1
=
2
= 0
Sin el mnimo valor de
= 0
126


Andrs Prez

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
produccin de Alfa. En el proceso de produccin 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 fbrica trabaja
un turno de 8 horas, 5 das por semana. En la tabla siguiente se muestran los
tiempos necesarios y las utilidades unitarias para las dos prendas



127


MATLAB Orientado a la matemtica 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 produccin 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 slo estudia y no juega,
su personalidad ser gris. Desea repartir su tiempo disponible, aproximadamente
de 10 horas por da, entre juego y estudio. Estima que el juego es doblemente
divertido que el estudio. Tambin 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 ms de 4 horas diarias. Cmo 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


Andrs Prez


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 matemtica aplicada

CAPTULO 8. MTODOS NUMRICOS

Los mtodos numricos se utilizan habitualmente para resolver problemas matemticos
formulados en diferentes campos cientficos y tcnicos, donde es difcil o incluso imposible
obtener soluciones exactas a un problema dado.
MATLAB posee distintas libreras de funciones pensadas para la resolucin numrica de una
gran variedad de problemas matemticos. Sin embargo, el objetivo principal de este captulo
no es presentar estas funciones predefinidas en MATLAB sino ms bien, ensear al lector como
poder implementar mtodos numricos mediante ficheros de funcin.
Este captulo est compuesto por dos secciones: resolucin de ecuaciones no lineales e
interpolacin polinomial. Al final de cada una se mostrar los comandos ya predefinidos en
MATLAB afines a los mtodos numricos planteados.
RESOLUCIN DE ECUACIONES NO LINEALES
En general, no es posible determinar el cero de una funcin, es decir, el valor

tal que
(

) = 0, en un nmero finito de pasos. Esto hace necesario utilizar mtodos numricos. Los
mtodos son usualmente iterativos (es decir, emplean una sucesin {

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


Calcular las aproximaciones sucesivas
1
,
2
, del cero segn el esquema iterativo
dado por el mtodo
Elegir

como aproximacin de

cuando se cumpla un criterio de parada dado


Un criterio de parada es la forma de indicar cundo terminar la iteracin del bucle. Algunos
criterios de parada son:
a) |


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

)| < ( es llamado cota)


c) Un nmero mximo de iteraciones
Mtodo de punto fijo
En muchos casos una ecuacin no lineal aparece en la forma de problema de punto fijo:
Encuentre tal que () =
Un nmero =

que satisface esta ecuacin se llama punto fijo de .


El esquema iterativo del mtodo de punto fijo consiste en emplear la sucesin {

} dada por

0
(punto inicial)

+1
= (

) , = 0, 1, 2,

130


Andrs Prez









El cdigo del fichero de funcin 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 N1: indices
%columna N2: terminos x_k
%columna N3: 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 solucin de la ecuacin

3
4 1 = 0
lo cual es equivalente a hallar el punto fijo de la funcin
() =

3
1
4

Punto inicial: 0.5
Criterio de parada: 5 iteraciones

131


MATLAB Orientado a la matemtica aplicada

end

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



















Mtodo de biseccin
Este es uno de los mtodos ms sencillos y de fcil intuicin, para resolver ecuaciones de una
variable. Si una funcin 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 mtodo consiste en lo siguiente: supongamos que en el intervalo [, ] hay un cero de .
Calculamos el punto medio = ( +)/2 del intervalo [, ]. A continuacin calculamos
(). Verificamos si () tiene signo opuesto al de (). Se redefine el intervalo [, ] como
[, ] o [, ] segn se haya determinado en cul de estos intervalos ocurre un cambio de
signo. A este nuevo intervalo se le aplica el mismo procedimiento y as, sucesivamente, iremos
encerrando la solucin en un intervalo cada vez ms pequeo, hasta alcanzar la precisin
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 sucesin {

} es la aproximacin del cero

.
EJEMPLO (continuacin): 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


Andrs Prez










CDIGO:
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 N1: cantidad de iteraciones
%columna N2: terminos a_k
%colmuna N3: terminos b_k
%columna N4: terminos m_k
%colmuna N5: terminos de la sucecion de diametros d_k=(b-a)/2^k
%columna N6: 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 funcin
() =
2
cos() 1
tiene un cambio de signo en el intervalo [1,2]. Aproximaremos

mediante el
mtodo de biseccin
Extremo izquierdo inicial:
1
= 1
Extremo derecho inicial:
1
= 2
Criterio de parada: cota = 0.00454

133


MATLAB Orientado a la matemtica 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


Andrs Prez













Mtodo de Newton
El mtodo de Newton es uno de los mtodos que muestra mejor velocidad de convergencia
llegando (bajo ciertas condiciones) a duplicar, en cada iteracin, los decimales exactos.
El mtodo consiste as: partiendo de una aproximacin
0
de un cero

de , entonces
1
es
la interseccin de la recta tangente a en
0
, con el eje . Cuando se ha calculado una
aproximacin

, la siguiente aproximacin
+1
se obtiene hallando la interseccin con el
eje de la recte tangente en el punto (

, (

)).
ESQUEMA ITERATIVO: emplear la sucesin {

} dada por

0
(punto inicial)

+1
=

)
, = 0,1,2,






EJEMPLO (continuacin):
>> [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 solucin

de la ecuacin

2
= () +1
estando

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


135


MATLAB Orientado a la matemtica aplicada

CDIGO:
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 N1: cantidad de iteraciones
%columna N2: terminos x_k
%columna N3: 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


Andrs Prez









Mtodo de Euler
El mtodo de Newton puede obtenerse con un polinomio de Taylor de orden 1. Si
aumentamos el orden del polinomio de Taylor, se puede obtener un mtodo de orden
superios. Tal es el mtodo de Euler, el cual es de orden cbico.
ESQUEMA ITERATIVO: emplear la sucecin {

}dada por

0
(punto inicial)

+1
=

)
2
1 +1 2(

)

donde
() =
()

()
() = ()

()

()







CDIGO:
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 (continuacin):
>> [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 funcin
() =
2
2cos() +1
Punto inicial:
0
= 0.5
Criterio de parada: 6 iteraciones
137


MATLAB Orientado a la matemtica 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 N1: cantidad de iteraciones
%columna N2: terminos x_k
%columna N3: 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


Andrs Prez












Un mtodo hbrido: Newton-Biseccin
Si el mtodo de Newton falla (en algn sentido) en una iteracin, podemos usar biseccin para
dar un pequeo salto y regresar al mtodo de Newton lo ms pronto posible.
El mtodo es como sigue: supongamos que ()() < 0. Sea
0
= o
0
= . En cada
iteracin una nueva aproximacin

es calculada y y son actualizados como sigue


Si

=
0
(
0
)

(
0
) cae en [, ] lo aceptamos, sino usamos biseccinm, es
decir

= ( +) 2
Actualizar:

= o

= ,

, de tal manera que (

)(

) < 0










EJEMPLO (continuacin):
>> [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 funcin
() = 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 matemtica aplicada

CDIGO:
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 N1: cantidad de iteraciones
%columna N2: terminos x_k
%columna N3: error absluto estimado como | x_{n} - x_{n-1} |
%columna N4: 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


Andrs Prez

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 matemtica aplicada

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









Mtodo de la Falsa Posicin
La idea de este mtodo es similar al de biseccin: iniciar en un intervalo [, ] donde cambia
de signo, y obtener una sucesin de intervalos encajados [

] (donde cambie de signo),


juntamente con una sucesin de trminos {

} (dentro de los intervalos anteriores), siendo


esta ltima sucesin la que aproxima el cero de .
La diferencia con el mtodo de biseccin, es que el trmino

no es punto medio del intervalo


[
1
,
1
], sino el punto de intersecin 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 (continuacin):
>> [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


Andrs Prez








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]
%MTODO:
% 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 N1: indices
%columna N2: terminos a_k
%columna N3: terminos b_k
%columna N4: 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 aproximacin de la raz

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 matemtica 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 (continuacin):
>> [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


Andrs Prez

Mtodo de la Secante
Este mtodo es prcticamente el de la falsa posicin, la diferencia radica es que en cada
iteracin no se estudia si la funcin cambia de signo en el intervalo respectivo.
ESQUEMA ITERATIVO: emplear la sucesin {

} dada por

0
(primer punto inicial)

1
(segundo punto inicial)

+1
=

1
(

(
1
)
(

) (
1
)
, = 1,2,








CDIGO:
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]
%MTODO:
% 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 N1: indices
%columna N2: terminos x_{k+1}
%columna N3: 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 raz

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 matemtica 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


Andrs Prez







Comandos predefinidos en MATLAB
Para hallar el cero de una funcin, MATLAB habilita el comando fzero, el cual es un M-Fichero
cuyo algoritmo usa una combinacin de los mtodos de biseccin, secante e interpolacin
cuadrtica inversa. La sintaxis para este comando es
>>[x,fval,exitflag,output]=fzero( f ,x0)
donde los argumentos de entrada son
o f: funcin 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 mtodo iterativo a emplear. Si es un vector de dos elementos, digamos
x0=[a,b], MATLAB lo considera como el intervalo inicial del mtodo iterativo (y debe
cumplirse que f(a)f(b)<0).
Mientras que los argumentos de salida son
o x: aproximacin del cero de f
o fval: valor de la funcin f en x
o exitflag: condicin de salida del comando fzero. Los posibles valores son
1 si la funcin converge a la solucin x
-1 si el algoritmo fue por la funcin de salida
-3 NaN o Inf si la funcin toma estos valores en el algoritmo
-4 si la funcin toma valores complejos en el algoritmo
-5 si el comando fzero converge a un punto singular
o output: contiene informacin acerca de la optimizacin. Los posibles valores son
output.algorithm algoritmo usado
output.funcCount N de evaluaciones de la funcin
EJMPLO (continuacin):
>> [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 matemtica aplicada

output.intervaliterations N de iteraciones hechas para hallar un intervalo
output.iterations N de iteraciones en la bsque del cero de f
output.message mensaje de salida


















EJEMPLO: iniciando en el punto
0
= 0.7854 hallar el cero de la funcin
() = () ()
>> [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


Andrs Prez

INTERPOLACIN POLINOMIAL
Dada una funcin , si conocemos +1 puntos de si grfico, la interpolacin polinomial
consiste en hallar un polinomio

() que pase por los +1 dados, de modo que podamos


aproximar el valor de la funcin en un un nmero (para el que no se conoce ()).
Formalmente, un problema de interpolacin polinomial se especifica como sigue: dados +1
pares (
0
,
0
), (
1
,
1
), , (

), siendo todos los

distintos entre si, y

= (

) para
alguna funcin ; encontrar un polinomio

() de grado tal que

) =

, = 0,1,2, ,
A

() se le llama polinomio interpolante, a cada

le decimos nodo de interpolacin 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 continuacin, 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

() expresado de esta forma se le conoce como forma de Lagrange del polinomio


interpolante.
CDIGO:
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 matemtica 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 funcin , conocemos la informacin 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


Andrs Prez

Forma modificada de Lagrange
La forma de Lagrange del polinomio interpolante es atractiva para propsitos tericos. Sin
embargo se puede escribir en una forma que se vuelva eficiente para el clculo computacional,
adems de ser numricamente ms estable. De all surgn la forma modificada y la forma
barcntrica de Lagrange.
Primeramente, definimos el polinomio auxiliar
() = (

=0

Definimos los pesos baricntricos como

=
1

=0

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

() = ()

=0



CDIGOS:

Para el clculo de los pesos baricntricos

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 matemtica aplicada

end

W(k)=fac;

end

Para la interpolacin (aqu se utiliza la funcin 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


Andrs Prez
























Forma baricntrica de Lagrange
La forma baricntrica del polinomio de Lagrange es

() =

, =

=0

=0
,


CDIGO:

Aqu se utiliza la funcin 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 funcin
de la temperatura
() 100 150 320 400 500 600
(

) -160 -35 -4.2 9.0 16.9 21.3



Cul 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 matemtica 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 interpolacin polinomial para encontrar la entropa para un volumen
especfico 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


Andrs Prez

Forma baricntrica con nodos igualmente espaciados
La forma baricntrica toma una forma especialmente simple cuando los nodos son igualmente
espaciados

() =

, =


(1)

=0
(1)

=0
,



CDIGO:

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 matemtica aplicada
























Forma de Newton
La representacin

() =
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 presentacin 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 clculo de las diferencias divididas, se utiliza la frmula recursiva

,0
=

, = 0, 1 ,2, ,

,
=

,1

1,1

, = 1, 2, , , = , ,


CDIGOS:

Para la matriz de diferencias divididas
EJEMPLO: de una funcin 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 estn 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


Andrs Prez

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 interpolacin (aqu se utiliza la funcin 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 matemtica 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 nmero combinatorio extendido, dado por


EJEMPLO: la siguiente tabla muestra los pesos normales (en libras) de bebs
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 bebs 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


Andrs Prez

0
= 1 ,

1
= ,

2
=
( 1)
2
,

=
( 1)( 2) ( ( 1))
!

CDIGOS:
Para el nmero 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 interpolacin (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 matemtica 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 funcin , 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


Andrs Prez

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 obtenindose 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 matemtica aplicada





















>> polyval(p,16)
ans =
1.4269
A continuacin, visualizamos el grfico del polinomio interpolante
>> t=[0:0.1:20];
>> u=polyval(p,t);
>> plot(t,u)



162


Andrs Prez

EJERCICIOS 8

1. Resuelva las siguientes ecuaciones con el mtodo indicado
a) cos() = 0, punto fijo,
0
= 0.8, = 0.0023
b)
2
1 = 0, biseccin,
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-biseccin,
0
= 1.5, = 1, = 2,
= 0.012
f) () cosh() 1 = 0, falsa posicin, = 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 ecuacin

2
2cos() +1 = 0
Aplicando Newton y Euler simultneamente,
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 iteracin
La segunda columna muestre los trminos

del mtodo de Newton


La tercera columna muestre los trminos

del mtodo de Euler



3. Resuelva la ecuacin

2
cos() 1 = 0
Aplicando biseccin y falsa posicin simultneamente,
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 iteracin
La segunda columna muestre los trminos

del mtodo de biseccin


La tercera columna muestre los trminos

del mtodo de la falsa


posicin

4. De una funcin 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 matemtica 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. Segn el INE, la poblacin venezolana ha evolucionado (de acuerdo a los censos
1873-2011) de la siguiente manera
Censos Poblacin
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 poblacin venezolana en el ao 1936 mediante la forma
baricentrica de Lagrange.

7. A continuacin mostramos las cifras dadas por el INE (de acuerdo a los censos 1873-
2011) respecto a la evolucin de la poblacin en el estado Lara
Censo Poblacin
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 poblacin venezolana en el ao 1961 mediante la forma de
Newton.
164


Andrs Prez

CAPTULO 9. COMPONENTES DE MATLAB

EL SOFTWARE BSICO MATLAB Y SUS
HERRAMIENTAS ADICIONALES
MATLAB, en su contenido bsico, es un entorno integrado de trabajo que permite el anlisis y
la computacin matemticos interactivos de forma sencilla con ms de 500 funciones
matemticas, estadsticas y tcnicas implementadas, as como la visualizacin a travs de todo
tipo de grficos de ingeniera y cientficos.

Tambin es posible con el mdulo bsico de MATLAB el desarrollo de algoritmos a travs de un
lenguaje propio de programacin que resulta ser abierto (integrable con C, Excel y Bases de
Datos), extensible (a travs de las funcionalidades que aportan las libreras especializadas
complementarias) y de sintaxis similar al C (pero sin las dificultades tcnicas de programacin
que presenta C).

Asimismo, MATLAB integra un conjunto importante de herramientas bsicas adicionales muy
tiles, entre las que destacan las siguientes:

MATLAB Report Generador
Permite la creacin de informes estndar 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 automtica, los ficheros de MATLAB que contienen los algoritmos
que hemos desarrollado (en lenguaje de MATLAB) a cdigo C y C++, bien para poder distribuir
aplicaciones independientes o para mejorar el rendimiento del algoritmo. Se trata por tanto de
un generador de cdigo C a partir de los programas de MATLAB.

MATLAB Runtime Server
Permite distribuir cualquier aplicacin desarrollada con MATLAB de forma sencilla mediante
un runtime.

MATLAB Web Server
Permite incorporar funciones de MATLAB (matemticas y grficas) a nuestras aplicaciones
web.
Matriz VB
Librera para poder utilizar desde Visual Basic las funciones matemticas y grficas que
incorpora MATLAB.
165


MATLAB Orientado a la matemtica 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 APLICACIN EN
MATEMTICA GENERAL
Una faceta muy importante de MATLAB son los toolboxes aadidos, que consisten en
paquetes de ampliacin al software bsico y que son aplicables a determinados campos de la
ciencia. A continuacin se relacionan los toolboxes ms interesantes de MATLAB.

Symbolic Math
Permite integrar la expresin y el clculo simblicos (clculo, transformadas, lgebra lineal,
ecuaciones) al entorno de clculo y visualizacin de MATLAB.

Extended Symbolic Math
Incluye todas las caractersticas de Symbolic Math, proporciona soporte completo para la
programacin en Maple y permite el acceso completo a las libreras matemticas de Maple.

Database Toolbox
Permite directamente desde MATLAB consultar e intercambiar datos con las bases de datos
ODBC/JDBC ms populares (Oracle, Sybase SQL Server, Sybase SQL Anywhere, Microsoft SQL
Server, Microsoft Access, Informix and Ingres) de forma dinmica, preservndolos durante el
intercambio y simultneamente con ms 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 funcin de MATLAB desde una frmula de Excel o
utilizando Excel desde MATLAB como editor de vectores.

Statistics Toolbox
Funciones y herramientas interactivas para el anlisis de datos histricos, el modelado y
simulacin de sistemas y para el desarrollo de algoritmos estadsticos. Soporta 20
distribuciones de probabilidad, incorpora el control estadstico de procesos, el diseo de
experimentos, estadstica descriptiva, anlisis clster, etc.

Optimization Toolbox
Proporciona diversos algoritmos y tcnicas para solucionar problemas de optimizacin no
lineales, tanto generales como a gran escala.
Spline Toolbox
Mediante un interface grfico proporciona potentes funciones para el ajuste de datos,
visualizacin, interpolacin y extrapolacin mediante tcnicas spline.
166


Andrs Prez


Partial Differential Equation Toolbox
De aplicacin en la solucin de problemas en muchos campos de la fsica y la ingeniera:
transferencia de calor, flujo en medios porosos, medios conductores, clculo de esfuerzos y
fatigas en estructuras, campos magnticos, etc. Usa el mtodo FEM (Mtodo de los Elementos
Finitos que incorpora el algoritmo de triangulacin de Delaunay) para solucionar ecuaciones
diferenciales parciales.

Neural Network Toolbox
Proporciona las versiones ms comunes de paradigmas y algoritmos para el diseo y
simulacin de redes neuronales. Incluye bloques de Simulink para poder usar esta toolbox en
aplicaciones de control y simulacin de sistemas. Incluye ejemplos de control predictivo y
control adaptativo. Entre las aplicaciones ms comunes de las redes neuronales tenemos las
tcnicas de clasificacin, prediccin, filtrado, optimizacin, reconocimiento de patrones,
aproximacin a funciones, interpretacin y clasificacin de imgenes.

TOOLBOXES DE MATLAB DE ADQUISICIN DE
DATOS
Dentro de los toolboxes de MATLAB tienen un papel importante los relativos a la adquisicin
de datos de otras aplicaciones. En esta categora destacan los siguientes:

Data Acquisition Toolbox
Permite el control y la comunicacin con una gran variedad de dispositivos de adquisicin de
datos estndares en la industria (National Instruments, Agilent, Computer Boards, etc.).
Incluye kit de adaptacin para el desarrollo de interfaces para nuevos dispositivos.

Instrument Control Toolbox
Permite la comunicacin con instrumentos (analizadores de espectro, osciloscopios,
generadores de funciones) y dispositivos externos. Soporta los protocolos de comunicacin
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 grfico podemos realizar ajustes de curvas, visualizando y
preprocesando los datos y usando una amplia gama de modelos y mtodos de ajuste.

TOOLBOXES DE MATLAB PARA PROCESADO DE
SEALES
Otra campo importante en el que MATLAB presenta herramientas es el procesado de seales.
Destacan los siguientes toolboxes:

167


MATLAB Orientado a la matemtica aplicada

Signal Processing Toolbox
Conjunto de funciones para analizar, manipular y visualizar seales y sistemas lineales.
Incorpora un interface para disear y analizar de forma interactiva filtros digitales (FIR and IIR).

Filter Desgin Toolbox
Complementa la Signal Processing Toolbox aadiendo tcnicas avanzadas de filtros digitales
para aplicaciones complejas de DSP en tiempo real. Tambin proporciona funciones para
simplificar el diseo de filtros de punto fijo y para el anlisis de los efectos de quantization.

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

Wavelet Toolbox
Funciones basadas en el anlisis wavelet para analizar y procesar seales, imgenes (seal
bidimensional) y series temporales; son adecuadas para el estudio de seales con
caractersticas no estacionarias o transitorias en las que el anlisis del tiempo en que dichas
seales experimentan los cambios es primordial (para el estudio de este tipo de seales no es
adecuado el anlisis de Fourier). Estas aplicaciones son muy convenientes para eliminacin de
ruidos y ecos, compresin de imgenes y vdeo.

System Identification Toolbox
Proporciona herramientas para crear modelos matemticos de sistemas dinmicos, de los
cuales desconocemos su comportamiento, a partir de los datos de entrada observados y de los
de salida. De aplicacin en una gran variedad de campos.

TOOLBOXES DE MATLAB PARA PROCESADO DE
IMGENES
Tambin en el rea del procesado de imgenes MATLAB presenta los siguientes toolboxes:

Image Processing Toolbox
Entorno interactivo que proporciona un conjunto de herramientas para el anlisis y procesado
de imgenes con un amplio abanico de aplicaciones. Algunas de estas herramientas son:
operaciones geomtricas, anlisis de imagen, eliminacin 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 anlisis y visualizacin de informacin
grfica de tipo geogrfico.

168


Andrs Prez

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

Financial Toolbox
Proporciona las herramientas bsicas para finanzas cuantitativas y prototipaje analtico
aplicables a optimizacin de portfolios y anlisis de riesgos, clculos de precios y sensibilidades
segn diversos modelos, anlisis de volatilidad (ARCH/GARCH), anlisis bsico de series
temporales, etc.

Financial Time Series Toolbox
Conjunto de herramientas para el anlisis de series temporales en mercados financieros:
anlisis y transformacin de datos, anlisis tcnico (osciladores, ndices, estocsticos,
indicadores), visualizacin.

Financial Derivatives Toolbox
Permite la creacin y gestin de portafolios con diversos instrumentos financieros, as como
calcular sus precios y sensibilidades. Proporciona anlisis hedging.

Garch Toolbox
Proporciona un entorno de clculo integrado para trabajar con el modelo
GARCH de volatilidad. Usa un modelo compuesto ARMAX/GARCH para
simulaciones, previsiones, estimacin de parmetros 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 anlisis en MATLAB.

SIMULACIN DE SISTEMAS CON SIMULINK Y SUS
HERRAMIENTAS ADICIONALES
Otro de los campos tratados especialmente por MATLAB, y de gran aplicacin en la ingeniera,
es la automatizacin del diseo mediante simulacin de sistemas dinmicos. Los productos
ms importantes en el rea de simulacin de sistemas son:

Simulink
Es un entorno grfico interactivo para el modelado, anlisis y simulacin de una gran variedad
de sistemas dinmicos (discreto, analgico e hbrido) mediante la utilizacin de diagramas de
bloques. Permite la incorporacin de los algoritmos y controles que se hayan desarrollado en C
previamente a la utilizacin de Simulink. Trabaja totalmente integrado con MATLAB.

169


MATLAB Orientado a la matemtica aplicada

Stateflow
Es un entorno grfico interactivo para el modelado de la lgica de sistemas dinmicos basados
en eventos (temporales o de estado). Se basa en la teora de mquinas de estado finito y utiliza
diagramas de transicin de estado para expresar la lgica del sistema y diagramas de control
de flujo. Trabaja perfectamente integrado con Simulink.

Simulink Report Generator
Permite la documentacin automtica mediante la creacin 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 diseo 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 creacin de escenas e imgenes 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 tambin presenta aplicaciones adicionales con
extensiones de simulacin de sistemas denominadas blocksets. A continuacin se relacionan
los ms interesantes:

DSP Blockset
Proporciona un conjunto de bloques para Simulink que son el fundamento para el diseo de
muchas aplicaciones de procesado de seales digitales (DSP) como procesado bsico de seal,
estimacin espectral, diseo de filtros. Todos los bloques soportan simulacin por muestreo y
por frames.
Communications Blockset
Conjunto de ms de 150 bloques para Simulink para disear de forma completa y simular
sistemas de comunicaciones.

170


Andrs Prez

CDMA Reference Blockset
Conjunto de bloques de Simulink para crear y simular modelos de sistema de comunicaciones
inalmbricos bajo el estndar IS-95A.

Fixed-Point Blockset
Permite emular la aritmtica de punto fijo cuando diseamos y simulamos sistemas dinmicos
o filtros digitales que al final sern implementados en targets digitales de punto fijo.

Dials & Gauges Blockset
Monitoriza seales y parmetros de simulacin mediante elementos grficos (instrumentos de
aspecto real). Nos permite aadir a los modelos de Simulink estos elementos grficos y as
visualizar el entorno que estamos modelando.

Nonlinear Control Design Blockset
Proporciona una aproximacin al diseo de sistemas de control basada en una optimizacin
que ajusta los parmetros 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 elctricos de potencia (generacin,
transmisin, distribucin) 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
mecnico, ver y animar su movimiento, estudiar su cinemtica y dinmica (directa e inversa),
etc.

GENERACIN DE CDIGO DE SIMULINK
La generacin de cdigo en el campo de la simulacin es otra de las facetas tratadas por
MATLAB. Entre los generadores de cdigo tenemos:

Real-Time Workshop
Genera cdigo C en tiempo real a partir de los modelos realizados en Simulink, lo que nos
permite realizar prototipaje rpido, acelerar las simulaciones o realizar simulaciones en tiempo
real.

Real-Time Workshop Embedded Coder
Genera cdigo C en tiempo real optimizado en velocidad de ejecucin y con unos mnimos
requerimientos de memoria para usarlo en sistemas embedded de tiempo real. Este cdigo
puede ser descargado directamente al procesador target. El cdigo generado es comparable al
cdigo optimizado escrito a mano.

171


MATLAB Orientado a la matemtica aplicada

Stateflow Coder
Genera cdigo C en tiempo real a partir de los diagramas de transicin realizados en Stateflow.

IMPLEMENTACIN 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 implementacin
en targets ha originado mdulos como los siguientes:

Developers Kit for Texas Instruments DSP
Este software facilita el diseo, anlisis e implementacin 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 Developers Kit.
Este software integra MATLAB y Simulink con el software de Motorola
(Motorolas Suite 56) para el desarrollo de aplicaciones basadas en DSPs de
Motorola (familias 56300 y 56600).

Xilinxs 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 cdigo 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 ejecucin podemos comunicarnos con una amplia variedad de tarjetas I/O (ms 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 aadir bloques I/O a Simulink, generar cdigo con Real-Time Workshop y descargar
este cdigo en un segundo PC que ejecuta el kernel de xPC Target. Es ideal para prototipaje
rpido. Permite la ejecucin de modelos en tiempo real en un segundo PC (como target) sin
necesidad de Windows. Con esta solucin, el PC que acta como host y el que acta como
target se mantienen comunicados durante la ejecucin en tiempo real.

172


Andrs Prez

xPC Target Embedded Option
Esta opcin nos permite que el modelo desarrollado se ejecute en el PC que acta como target
sin necesidad de que est conectado al PC host. Esta opcin es la adecuada cuando nuestro
modelo est finalizado y lo entregamos para su funcionamiento en produccin.

ANLISIS Y DISEO DE SISTEMAS DE CONTROL
El anlisis y diseo de los sistemas de control es otro de los campos de la ingeniera que cubre
MATLAB con diversos toolboxes. Entre los ms importantes tenemos los siguientes:

Control System Toolbox
Proporciona un entorno interactivo y grfico para el modelado, anlisis y diseo de sistemas
de control, utilizando tanto los mtodos clsicos como los modernos: root locus, loop shaping,
pole placement y LQR/LQG regulation. Soporta sistemas LTI, SISO, MIMO y diversos mtodos
de conversin.

Fuzzy Logic Toolbox
Herramienta interactiva para el desarrollo de algoritmos de lgica difusa aplicable a
reconocimiento e identificacin de imgenes con patrones difusos, procesado de seales y
desarrollo de procesos inteligentes y adaptativos.

Robust Control Toolbox
Herramientas para el diseo y modelado de sistemas de control multivariable mediante
tcnicas H donde la robustez del sistema es un factor crtico.

-Analysis and Synthesis Toolbox
Algoritmos para aplicables al anlisis de rendimiento y de robustez en sistemas con
incertidumbres en el modelado y parametrizacin.

LMI Control Toolbox
Algoritmos de optimizacin para la resolucin 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 calibracin de sistemas motrices complejos. Cubre las tres
fases de la calibracin: planificacin de la prueba fsica en el dinammetro, utilizacin 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 matemtica aplicada

BIBLIOGRAFA
C. Prez. (2002). Matlab y sus Aplicaciones en las Ciencias y la Ingeniera. Madrid.
A. Gilat. (2005). Matlab: Una introduccin con ejemplos practicos. Ohio.
H. Moore. (2007). MATLAB para ingenieros. Mxico.
G. Borrell i Nogueras. (2008). Introducin informal a Matlab y Octave. Calella.
J. Garca. (2005). Aprenda Matlab 7.0 como si estuviara en primero. Madrid.
R. Fernndez. (2012). MATLAB: Fundamentos y/o aplicaciones. Barcelona.
B. Hunt. (2001). A Guide to MATLAB for Beginners and Experienced Users. Cambridge.
J. Benitez. (2007). Introduccin a MATLAB. Valencia.
J. Schmidt. (2011). GNU Octave. Birmingham.
C. Gil; M. Franco. (2005). ANLISIS ESTADSTICO EN MATLAB. Bogot.
J. Saenz. (2005). CALCULO DIFERENCIAL. Barquisimeto
J. Saenz. (2009). CALCULO INTEGRAL. Barquisimeto.
J. Saenz. (2013). CALCULO VECTORIAL. Barquisimeto.
J. Stewart. (2006). Clculo. Sao Paulo.
J. Rodrguez ; M. Rodrguez; I. Huerta. Espacios con producto interno. Barquisimeto.
D. Malik. (2007). Introduction to Abstract Algebra. Creighton.
H. Taha. (2004). INVESTIGACIN DE OPERACIONES . Mxico
F. Hillier; G. Lieberman. (1997). INTRODUCCIN A LA INVESTIGACIN DE OPERACIONES.
Mxico.
R. Thierauf; R. Grosse. (1981). Toma de decisiones por medio de INVESTIGACIN DE
OPERACIONES. Mico.
L. Rodrguez. (2007). PROBABILIDAD Y ESTADSTICA BSICA PARA INGENIEROS. Guayaquil.
D. Wackerly; W. Mendehall; R. Scheaffer. (2002). ESTADSTICA MATEMTICA CON
APLICACIONES. Mxico.
A. Quarteroni; F. Saleri. (2006). CLCULO CIENTFICO con MATLAB y Octave. Milano.
INE (Instituto Nacional de Estadstica de la Repblica Bolivariana de Venezuela)(2011). XIV
CENSO NACIONAL DE POBLACIN Y VIVIENDA: Resultados Bsicos. Carcas.
174


Andrs Prez

INE (Instituto Nacional de Estadstica de la Repblica Bolivariana de Venezuela) (2013). XIV
CENSO NACIONAL DE POBLACIN Y VIVIENDA: Resultados por Entidad Federal y Municipio
del Estado Lara. Carcas.
INE (Instituto Nacional de Estadstica de la Repblica Bolivariana de Venezuela) (2013). XIV
CENSO NACIONAL DE POBLACIN Y VIVIENDA: Resultados por Entidad Federal y Municipio
del Estado Miranda. Carcas
INE (Instituto Nacional de Estadstica de la Repblica Bolivariana de Venezuela) (2013). XIV
CENSO NACIONAL DE POBLACIN Y VIVIENDA: Resultados por Entidad Federal y Municipio
del Estado Carabobo. Carcas
INE (Instituto Nacional de Estadstica de la Repblica Bolivariana de Venezuela) (2013). XIV
CENSO NACIONAL DE POBLACIN Y VIVIENDA: Resultados por Entidad Federal y Municipio
del Estado Distrito capital. Carcas
INE (Instituto Nacional de Estadstica de la Repblica Bolivariana de Venezuela) (2013). XIV
CENSO NACIONAL DE POBLACIN Y VIVIENDA: Resultados por Entidad Federal y Municipio
del Estado Aragua. Carcas










175

S-ar putea să vă placă și