Beruflich Dokumente
Kultur Dokumente
Programa Doctorado:
Economía
Enseñanzas de postgrado:
Máster universitario en Economía
Módulo teórico:
Economía financiera cuantitativa y actuarial
Ampliación de informática
Índice
Capítulo 4: Algoritmos
4.1 Estructuras de programación: bucles y bifurcaciones
4.1.1 El bucle for
4.1.2 El bucle while
4.1.3 La bifurcación condicional if
Segunda parte: Aplicación a Economía y Finanzas
Capítulo 1: El entorno MATLAB
1.1 Introducción
Acceso al programa
Para acceder al programa bastará pulsar dos veces en el icono de acceso que
aparece en el escritorio. A continuación, veremos las características básicas del entorno
MATLAB donde desarrollaremos nuestro trabajo.
2
Capítulo 1: El entorno MATLAB
3
Ampliación de informática
Las estructuras básicas que utiliza MATLAB para manejar la información son las
matrices2. Una matriz es una disposición rectangular de elementos ordenados, en filas
y columnas, y encerrados entre corchetes, que podemos representar como sigue:
columna j-ésima
�a11 �
�a21 �
� �
A=�a31 �
� �
�M �
�
am1 �
� �
mx1
A =�
a11
� a12 a13 K a1n �
1xn .
�
2
De hecho, el término MATLAB proviene de MATrix LABoratory.
4
Capítulo 1: El entorno MATLAB
Como caso particular trabajaremos con escalares que son matrices de orden 1 x1,
es decir,
A =�
a11 �
� �
1x1
= a.
MATLAB considera una matriz definida sin ningún elemento entre corchetes como
una matriz de dimensión cero, es decir, vacía, aunque aparecerá declarada y
almacenada en el espacio de trabajo. De esta forma nos aseguraremos su declaración
vacía sin más que introducir
» A=[]
�-3 1 1 �
� �
Una matriz A = �1 -3 1 �puede ser introducida en MATLAB de cualquiera de
�1 1 -3 �
� �
las formas alternativas siguientes:
» A=[3 1 1; 1 -3 1; 1 1 -3]
o bien
» A=[-3, 1, 1; 1, -3, 1; 1, 1, -3];
5
Ampliación de informática
2
expresión: �
�
�
2 5
1 + ep �
�
20
(1.
� - 3 + 23 �
e )
Existen dos alternativas válidas para realizar estas operaciones elementales:
» a=(1+exp(2)/pi)^2/5-(20/3+sqrt(23))*1/exp(1)
o bien
» a=((1+(exp(2)/pi))^(2/5))-((20/3)+sqrt(23))*(1/exp(1))
6
Capítulo 1: El entorno MATLAB
7
Ampliación de informática
8
Capítulo 1: El entorno MATLAB
» diag(v, k)
es la matriz cuadrada de orden n+abs(k) donde los elementos del vector v de n
componentes que se sitúan en la k-ésima diagonal, siendo k un número entero.
» tril(A)
matriz triangular inferior que proporciona los elementos debajo de la diagonal inferior
de A.
» tril(A, k)
matriz triangular inferior que proporciona los elementos por encima de la k-ésima
diagonal inferior de A.
Estas dos últimas instrucciones admiten una versión relativa a los elementos de la
diagonal superior que son
» triu(A)
» triu(A, k)
�2 1 1 �
� �
Ejemplo: Calcular los autovalores y autovectores de la matriz A = �2 3 4 �
�-1 -1 -2 �
� �
» eig(A)
ans =
-1.0000
3.0000
1.0000
son los autovalores de A, para obtener los autovectores guardando las salidas de
eig(A) en dos nuevas matrices V y D procedemos de la forma:
» [V, D]=eig(A)
V=
-0.8018 -0.1543 0.5774
0.2673 0.7715 0.5774
0.5345 -0.6172 0.5774
D=
-4.0000 0 0
0 -4.0000 0
9
Ampliación de informática
0 0 -1.0000
Ejercicio. Calcular las matrices que se especifican a continuación a partir de las
�3 1 � �2 -1 �
� � � 2 -2 � � �
matrices: A= �0 2 �, B= � �, C= �-1 3 �y D= ( 2 1) .
� �1 3 � �0 1 �
�2 -1 �
� � �
a) DB 2 .
b) BC t .
c) (CB)D t .
d) det(AC t ) .
e) (A t C) -1 .
Ejercicio. Dadas las matrices A y B calcular las matrices que se especifican en los
diferentes apartados
�1 3 2� �3 1 1�
� � � �
A=�
0 1 4 �, B = �1 -2 0 �
�1 -2 0 � �2 1 1�
� � � �
a) A + B t , A tB, det(A 2 + B -1 ) .
b) 2A + (A + B)2
c) A -1 + 3I3 + B -1
d) Autovalores de A + B .
e) Autovectores de B .
f) Matriz cuyos elementos se obtienen multiplicando los de A y B , elemento a
( ) (
elemento, es decir, cij = aij )
bij .
( ) (
elemento, es decir, cij = aij )
/ bij .
( ) (
es decir cij = aij
2
)
bij2 .
10
Capítulo 1: El entorno MATLAB
Ejercicio.
11
Ampliación de informática
» A1=1:20
números enteros entre 1 y 20, en fila. Hemos utilizado el operador dos puntos (:) que
nos permite establecer un rango, en nuestro caso, de valores enteros entre el 1 y el 20
con incrementos, por defecto, de una unidad.
» A2=(1:2:200)’
números enteros entre 1 y 200, en columna. En este caso, de valores enteros entre el
1 y el 20 con incrementos de dos unidades.
» A3=(1:0.1:5)
números reales entre 1 y 5 tomados en incrementos de 0.1 unidades, en fila.
» A4=(1:-0.1:0)
números reales entre 1 y 0 tomados en decrementos de 0.1 unidades, en fila.
» A5=randn(3,4)
matriz 3x4 de números reales aleatorios con distribución gaussiana.
» A6=rand(2,10)
matriz 2x10 de números reales aleatorios con distribución uniforme.
» A7=eye(4)
matriz identidad 4x4.
» A8=zeros(3)
matriz de ceros 3x3.
» A9=zeros(3,4)
matriz de ceros de orden 3x4.
» A10=ones(4)
matriz de unos de orden 4x4.
» A11=ones(4,2)
matriz de unos de orden 4x2.
12
Capítulo 1: El entorno MATLAB
�2 1 1 �
� �
Igualmente, recuperando la matriz A = �2 3 4 �, MATLAB es capaz de
�-1 -1 -2 �
� �
generar otras matrices del tamaño de la matriz A en cualquiera de las siguientes
formas:
» A12=randn(size(A))
matriz de números reales aleatorios gaussianos de las mismas dimensiones que A.
» A13=rand(size(A))
matriz de números reales aleatorios distribuidos uniformemente de las mismas
dimensiones que A.
» A14=eye(size(A))
matriz identidad de las mismas dimensiones que A.
» A15=ones(size(A))
matriz de unos de las mismas dimensiones que A.
» A16=zeros(size(A))
matriz de ceros de las mismas dimensiones que A.
Ejercicio. Construir una sucesión de 1000 números reales en los intervalos que se
citan a continuación.
a) Números reales aleatorios uniformes entre –2 y 2.
b) Números reales aleatorios uniformes 0 y 5.
c) Números reales aleatorios gaussianos con media 2 y varianza 3.
d) Números reales aleatorios gaussianos con media 1 y varianza 0.1.
e) Hallar sus correspondientes histogramas mediante la instrucción:
» hist(x, k)
Histograma donde los elementos del vector x están distribuidos en k barras
equiespaciadas que corresponden a otros tantos intervalos de clase.
13
Ampliación de informática
A = (aij )i=1,2,...,m
Dada una determinada matriz es posible obtener de forma
j=1,2,...,n
�2 1 1 �
� �
A = �2 3 4 �
�-1 -1 -2 �
� �
» A(1, 3)=0.5
indica que el elemento a13 de la matriz tomará el valor 0.5.
14
Capítulo 1: El entorno MATLAB
Existen unos operadores con los que MATLAB permite establecer relaciones entre
matrices del mismo orden, son los denominados operadores relacionales. Estos
operadores generan matrices del mismo orden que las iniciales asignando respuestas
binarias, 0/1 (falso/verdadero), al resultado de la comparación elemento a elemento.
Estos operadores también son válidos para comparar elementos de una matriz con
escalares. A modo de ejemplo, sea
» x=randn(1,10);
La instrucción
» y=x<1
proporciona un vector 1x10 cuyos elementos binarios se corresponden con un cero si
x(i) es mayor o igual que uno y, con un uno si x(i) es menor que uno, es decir, donde
la relación evaluada, elemento a elemento, es verdadera.
15
Ampliación de informática
a) A>=B, A<B.
b) Cambiar la primera fila de A por un vector de números reales aleatorios
uniformes y la segunda fila de B por un vector de números reales
aleatorios gaussianos.
c) Cambiar la tercera columna de A por el doble de la tercera columna de
B, y efectuar las evaluaciones relacionales: A==2*B, (A-0.5597)==B,
A<=(B+0.5).
3
El carácter ASCII ~ se logra con la combinación de teclas Alt+126, en el teclado numérico.
16
Capítulo 1: El entorno MATLAB
A -1 .
2.1 Empleando la matriz inversa de A, si existe: x = b �
a) x+3y=1, 2x-y=3.
b) 3x+2y-z=10, -x+3y+2z=5, x-y-z=-1.
c) x+y+z+t=4, 2x-y+t=2, x-2y-z-t=2, x-2y-3z+t=-3.
d) x-2y+z+t=3, x+z=t, 2y-z=t, x+4y+2z-t=1.
17