Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Para incorporar el contenido del archivo datos.txt a una variable de Matlab, se puede seguir uno de estos
pasos:
load datos.txt crea una matriz datos cuyas filas y columnas coinciden con
las del archivo datos.txt.
a = load(’datos.txt’) crea una matriz a cuyas filas y columnas coinciden con las
del archivo datos.txt.
Si el directorio de trabajo de Matlab no coincide con aquel en el que se encuentra el archivo, hay que indicar
la ruta completa. Por ejemplo
>> a = load(’c:\temp\datos.txt’)
1.1. Ejercicio
Utiliza un editor de texto Ascii para crear un archivo de texto con los datos del censo de EE.UU. del
Ejercicio 7.3 de la Práctica 1. Guarda el archivo con el nombre censo1.txt y después lee sus datos con
Matlab e incorpóralos a:
1
El código Ascii (American Standard Code for Information Interchange) sirve para representar caracteres. Este código asigna
a cada carácter un número de 7 bits que puede ser almacenado por la memoria del ordenador. Debido al tamaño de ese número
(7 bits) ese código consta únicamente de 128(=27 ) caracteres que incluye las letras, números y algunos caracteres habituales.
1
2
una matriz m.
1.2. Ejercicio
Utiliza un editor de texto Ascii para crear un archivo de texto con los datos del censo de la población2
española publicados por el Instituto Nacional de Estadística (www.ine.es) desde 1900 hasta 1991: Guarda
el archivo con el nombre censo2.txt y después lee sus datos con Matlab e incorpóralos a
una matriz m.
Representa los datos del censo usando la orden plot. Añade al gráfico anterior los datos de población
siguientes:
1.3. Ejercicio
Utiliza un editor de texto Ascii para crear un archivo de texto con los datos del censo. Después, lee esos
datos con Matlab y guárdalos en una matriz.
Representa los datos con la orden plot.
2
La población de derecho está formada por los residentes habituales (presentes o ausentes). La población de hecho la componen
los residentes presentes y los transeúntes.
2
Práctica 2: Representación de datos y ajuste de curvas 3
Si en el periodo de tiempo observado admitimos que la población crece de acuerdo con la ley de Malthus
N (t) = N0 er t , t ≥ 0,
utiliza los dos primeros datos del censo para determinar N0 y r. A continuación, representa gráficamente la
curva N (·) sobre la misma gráfica en la que están los datos.
Calcula una nueva función u(·) usando los dos últimos datos del censo. Incorpora esta nueva función a la
gráfica anterior.
Analiza los resultados.
1.4. Ejercicio
Dada una colección de puntos del plano (t1 , N1 ), (t2 , N2 ), . . . , (tn , Nn ), y una recta N (t) = a + b t, es posible
calcular el error puntual
ei = N (ti ) − Ni ,
que expresa la diferencia entre el valor de la recta en ti y el valor de la ordenada Ni . Así, la suma de los
cuadrados de los errores
n n
2 1 X 2 1 X
S (a, b) = ei = (a + b ti − Ni )2
n n
i=1 i=1
sirve como medida de lo bien —o lo mal— que la recta N (t) = a + b t aproxima a la colección de puntos:
valores grandes de S 2 (a, b) indican que el modelo de ajuste mediante una recta —ajuste lineal— es
poco adecuado;
valores pequeños de S 2 (a, b) indican que el modelo de ajuste lineal puede ser adecuado.
El inconveniente del coeficiente S 2 (a, b) es que depende de las unidades de medida, y por tanto es sensible a
los cambios de escala. Se puede utilizar como medida del ajuste el valor de
n
1 X
(a + b ti − Ni )2
S 2 (a, b) n
i=1
= n ,
S 2 (N̄ , 0) 1 X
(N̄ − Ni )2
n
i=1
2.2. Ejercicio
Dada una colección de puntos del plano (t1 , N1 ), (t2 , N2 ), . . . , (tn , Nn ), los valores de a y de b de la recta
N (t) = a + b t que mejor se ajusta a esos datos en el sentido de los mínimos cuadrados, es decir, para la cual
n n
2 1 X 2 1 X
S (a, b) = ei = (a + b ti − Ni )2
n n
i=1 i=1
∂S 2
(a, b) = 0,
∂b
de donde se deduce n
X
n
X
n ti a Ni
i=1 i=1
=
n
X Xn n
X
2
ti ti N i ti
b
i=1 i=1 i=1
Así, basta resolver este sistema para encontrar los valores de a y de b. Una vez calculados, conviene determinar
el valor del cociente
S 2 (a, b)
;
S 2 (N̄ , 0)
4
Práctica 2: Representación de datos y ajuste de curvas 5
Valores de R2 cercanos a 1 indican un buen ajuste del modelo lineal, mientras que valores cercanos a 0 indican
un mal ajuste del modelo lineal. En la práctica, podemos convenir en aceptar el modelo lineal N (t) = a + b t
si para a y b el coeficiente de correlación R2 es mayor que 0,9.
2.4. Ejercicio
Determina la recta que mejor se ajusta, en el sentido de los mínimos cuadrados, a los datos del Ejercicio 2.2.
Analiza la bondad del ajuste.
Representa gráficamente los datos y la recta de mejor ajuste mínimo-cuadrático.
2.5. Ejercicio
Determina la recta de mejor ajuste en el sentido de los mínimos cuadrados para los datos del censo de Estados
Unidos de 1790 1890. Analiza la bondad del ajuste.
Representa gráficamente los datos y la recta de mejor ajuste mínimo-cuadrático.
2.6. Ajuste mínimo cuadrático mediante curvas del tipo N (t) = N0 er (t−t0 )
∂S 2
(N0 , r) = 0,
∂N0
∂S 2
(N0 , r) = 0,
∂r
pero resolver estas ecuaciones es muy complicado, porque no se trata de un sistema lineal.
Una forma de abordar el problema consiste en aplicar la transformación
t ←→ T = t − t0 , N ←→ N̂ = ln N
tanto a los datos como a la función de ajuste, esto es, considerar que los datos no son
sino
(T1 , N̂1 ), (T2 , N̂2 ), . . . , (Tn , N̂n ), con Ti = ti − t0 y N̂i = ln Ni
N0 = eA , r = B.
para analizar la bondad del ajuste (también se puede analizar la bondad del ajuste lineal de los datos
transformados).
2.7. Ejercicio
Ajusta mediante una exponencial los datos del censo del ratón de campo (Microtus arvalis) del Ejercicio 1.3.
Analiza la bondad del ajuste.
Representa gráficamente los datos y la exponencial de ajuste mínimo-cuadrático.
2.8. Ejercicio
Determina la exponencial de mejor ajuste en el sentido de los mínimos cuadrados para los datos del censo
de Estados Unidos. Analiza la bondad del ajuste.
Representa gráficamente los datos y la exponencial de ajuste mínimo-cuadrático.
es la sigmoide
N0 K
N (t) = .
N0 + (K − N0 ) e−r (t−t0 )
Por tanto, el ajuste mínimo cuadrático de una colección de datos
6
Práctica 2: Representación de datos y ajuste de curvas 7
∂S 2
(N0 , K, r) = 0,
∂N0
∂S 2
(N0 , K, r) = 0,
∂K
∂S 2
(N0 , K, r) = 0,
∂r
obtendríamos un sistema de ecuaciones que es muy complicado de resolver, porque no se trata de un sistema
lineal.
Se puede intentar una transformación adecuada de los datos y de la curva de ajuste, pero las transformaciones
útiles dependen de que se conozca previamente la población límite K.
Se puede recurrir a métodos numéricos para intentar obtener una solución aproximada del problema. Con
Matlab3 , se puede utilizar la orden fminsearch, que sirve para calcular mínimos locales de funciones:
La función f puede definirse de varias formas: por ejemplo, puede estar construida mediante un M-archivo
de función. El único argumento de entrada de S puede ser un escalar o un vector; el argumento de salida
debe ser un escalar. Es decir
S : RN → R
Ejemplo
Consideremos los datos del Ejercicio 1.1 referidos al censo de Estados Unidos. Para determinar la curva
N0 K
N (t) =
N0 + (K − N0 ) e−r (t−t0 )
de mejor ajuste, basta escribir un archivo de función S.m como el que aparece a continuación (obsérvese que
se ha considerado como instante inicial t0 el primer valor del vector t de los tiempos):
S.m
function y = S(v)
%
t = [1790 1800 1810 1820 1830 1840 1850 1860 1870 1880 1890 1900 1910 1920 1930];
N = [3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76.0 92.0 106.5 123.2];
%
% Calcula el valor de la curva logistica en cada "t" y lo guarda en "NN"
NN = v(1) * v(2) ./ (v(1) + (v(2) - v(1)) * exp( -v(3)*(t-t(1)) ));
%
% Calcula la suma de los cuadrados de las desviaciones y lo guarda en "y"
y = sum((NN - N).^2);
3
Si se ha instalado la Toolbox de Optimización, también se puede utilizar la orden lsqcurvefit, que está especialmente
diseñada para resolver problemas de mínimos cuadrados.
120
100
80
60
40
20
0
1800 1850 1900
Figura 2: Ajuste mínimo cuadrático de los datos del censo de EE.UU mediante una sigmoide
2.10. Ejercicio
Determina la sigmoide que mejor se ajusta, en el sentido de los mínimos cuadrados, a los datos de población
española del Ejercicio 1.2.
2.11. Ejercicio
2.12. Ejercicio
Repite el Ejercicio 2.8 utilizando en este caso la orden fminsearch. Compara los resultados obtenidos en
cada caso.