Aproximación por mínimos cuadrados (Grupo 30)

De MateWiki
Revisión del 20:37 12 nov 2019 de Guillermo Izquierdo (Discusión | contribuciones) (Cálculo del error cuadrático medio de la parábola)

Saltar a: navegación, buscar

Se instala una estación para medir la calidad del aire en el barrio de Moratalaz (Madrid), que registra la densidad de partículas por metro cúbico a cada hora. Dicha estación obtiene los siguientes datos a lo largo de 24 horas.

horas µ/m^3
0 23.4
1 22.0
2 16.6
3 17.5
4 20.3
5 21.3
6 26.6
7 No Data
8 No Data
9 No Data
10 No Data
11 35.2
12 28.4
13 25.5
14 24.0
15 28.1
16 31.3
17 33.9
18 35.3
19 41.5
20 39.7
21 38.5
22 37.5
23 30.6

Entre la hora 7 y 10 se produjo un error en el dispositivo por lo que no se dispone de los datos en ese periodo de tiempo.

1 Datos y gráfica del muestreo

Usando matlab, se nombran dos variables con el nombre H. para las horas, y con el nombre D, para la densidad de partículas. Después se representan en una sola gráfica para la fácil visualización de los datos. Nota: Se omiten las horas para las que el dispositivo falló para no crear datos falsos.

Calidad del aire en el barrio de Moratalaz
H=[0 1 2 3 4 5 6] %creación de la primera parte de la matriz Horas
H2=[11 12 13 14 15 16 17 18 19 20 21 22 23]  %creación de la segunda parte de la matriz Horas
D=[23.4 22.0 16.6 17.5 20.3 21.3 26.6]
D2=[35.2 28.4 25.5 24.0 28.1 31.3 33.9 35.3 41.5 39.7 38.5 37.5 30.6]  %creación de la segunda parte de matriz Densidad
plot(H.',D.','r') 
xlabel('Hora (h)')
ylabel('Densidad de partículas (µ/m^3)')
title('Calidad del aire en Moratalaz')
grid
hold on %Esto sirve para poder poner una gráfica sobre otra
plot(H2, D,'r') %para crear la segunda parte de la gráfica)
grid  %Con esto estaría dibujada la gráfica


2 Cálculo y representación de una recta por mínimos cuadrados

2.1 Cálculo de la recta

Para calcular la recta que más se aproxima a los valores se utilizan los siguientes comandos. Para realizar esta operación se presentan dos posibilidades con las que se llega al mismo resultado.

hora=[0 1 2 3 4 5 6 11 12 13 14 15 16 17 18 19 20 21 22 23] %Se establecen los valores para la variable hora
densidad=[23.4 22.0 16.6 17.5 20.3 21.3 26.6 35.2 28.4 25.5 24.0 28.1 31.3 33.9 35.3 41.5 39.7 38.5 37.5 30.6] %Se establecen los valores para la variable densidad
plot(hora,densidad,'or') %Se sitúan los puntos en una gráfica
C=polyfit(hora,densidad,1)  %Se crea un polinomio por mínimos cuadrados de grado 1 (una recta) que resulta.
xx=linspace(0,25,100) %Se asignan 100 puntos al polinomio recién creado para crear la recta, en x.
yy=polyval(C,xx) %Se asignan los valores de y a los puntos recién asignados.
hold on
plot(xx,yy,'r') %Se crea una gráfica sobre la anterior en la que se representa la recta.


Utilizando el método de mínimos cuadrados este proceso se podría realizar de la siguiente manera:

x1=[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]' %Creación de la matriz columna para la variable 1
x2=[hora'] %Creación de la matriz columna para la variable 2
A=[x1,x2]
B=[densidad'] %solución del sistema para los valores de densidad
Z=(A'*A)\(A'*B) % aplicación de la fórmula de mínimos cuadrados
a=18.7545561807951
b=0.835160646215284
plot(hora,a+b*hora)


La recta recién creada tiene como fórmula = y=0.8352*x + 18.7546

2.2 Cálculo del error cuadrático medio de la recta

Para conocer el error cuadrático medio hay que ejecutar el siguiente comando basándose en el programa anterior.

% añadir al programa anterior
error=(sum((densidad-yy).^2))/20


El resultado del error cuadrático medio en este caso es= 15.9805

2.3 Valor en 10 horas según la aproximación por mínimos cuadrados

Hay que sustituir la x en la fórmula obtenida anteriormente por un 10. Lo que hace que el resultado quede como 15.9805 y=0.8352*10 + 18.7546=

y=0.8352*10 + 18.7546=27.1066


Calidad del aire en Moratalaz. Recta por mínimos cuadrados
















3 Cálculo y representación de una parábola por mínimos cuadrados

Es posible que una parábola tenga menor error que la aproximación lineal que hemos hecho anteriormente, para ello vamos a crear una aproximación por mínimos cuadrados de grado 2, es decir, una parábola.

3.1 Cálculo de la parábola

Una parábola se obtiene prácticamente igual que el apartado anterior. La única diferencia es que hay que cambiar el '1' por el '2' en el comando polyfit para que salga un polinomio de grado dos al ejecutar el comando. Igual que en el caso de la recta, también se presentan dos métodos para llegar al resultado.

hora=[0 1 2 3 4 5 6 11 12 13 14 15 16 17 18 19 20 21 22 23] %Se establecen los valores para la variable hora
densidad=[23.4 22.0 16.6 17.5 20.3 21.3 26.6 35.2 28.4 25.5 24.0 28.1 31.3 33.9 35.3 41.5 39.7 38.5 37.5 30.6] %Se establecen los valores para la variable densidad
plot(hora,densidad,'or') %Se sitúan los puntos en una gráfica
C=polyfit(hora,densidad,1)  %Se crea un polinomio por mínimos cuadrados de grado 2 (una parábola) que resulta.
xx=linspace(0,25,100) %Se asignan 100 puntos al polinomio recién creado para crear la parábola, en x.
yy=polyval(C,xx) %Se asignan los valores de y a los puntos recién asignados.
hold on
plot(xx,yy,'r') %Se crea una gráfica sobre la anterior en la que se representa la parábola.


Aplicando la fórmula de los mínimos cuadrados hay que utilizar los siguientes comandos:

%sumado al programa de mínimos cuadrados de la recta
x3=[hora.^2']
A1=[A,x3]
Z1=(A1'*A1)\(A1'*B)
c=19.0035116485221
d=0.756335637375577
e=0.00349790143540171
plot(hora,c+densidad*hora+e*(hora^2))


La ecuación de la parábola es: y= 0.0035x² + 0.7563x + 19.0035

3.2 Cálculo del error cuadrático medio de la parábola

Para conocer el error cuadrático medio que hemos conocido con esta aproximación se utiliza el mismo comando que se usó para la recta, pero aplicado para los datos de la parábola.

% añadir al programa anterior
error=(sum((densidad-yy).^2))/20


El error cuadrático medio en el caso de la parábola es= 15.9688 Podemos observar que el error cuadrático medio es ligeramente menor que en el caso de la recta.

3.3 Valor en 10 horas según la aproximación por mínimos cuadrados

Para conocer el valor aproximado que tendría la densidad de partículas en la hora número 10 tenemos que sustituir x por 10 en la fórmula de la parábola.

%añadir al programa anterior
y= 0.0035*10^2 + 0.7563*10 + 19.0035

y= 0.0035*10^2 + 0.7563*10 + 19.0035 = 26.9165


Calidad del aire en Moratalaz. Parábola por mínimos cuadrados
















4 Ajuste a una ecuación triogonométrica por mínimos cuadrados

4.1 Cálculo de los valores de los parámetros y representación de la gráfica

Se introducen los siguientes comandos en Matlab, al contrario que en las aproximaciones anteriores en este caso solo se puede hacer por un método:

%añadir al programa anterior
m=(2*pi/24) %Para mayor facilidad se nombran como m y n algunos valores para no tener que repetirlos a lo largo de la expresión.
n=(4*pi/24)
x4=[cos(hora*m)'] %Se divide la función en varios grupos para poder calcular los valores más fácilmente.
x5=[sin(hora*m)']
x6=[cos(hora*n)']
x7=[sin(hora*n)']
A2=[x1,x4,x5,x6,x7]  %Se forma una matriz con los elementos de la función que acabamos de calcular.
Z2=(A2'*A2)\(A2'*B) 
a=29.7322183227812   %se da valores a los parámetros que pide el ejercicio
b=-2.15180938775857
c=-4.90253913577529
d=-2.46861102870589
e=-7.79309311015295
plot(hora,a+b*cos(hora*m)+c*sin(hora*m)+d*cos(hora*n)+e*sin(hora*n))   %por último se representa la función en una gráfica


Con estos comandos automáticamente se genera la gráfica adjunta.


4.2 Cálculo del error cuadrático medio de la parábola

Queremos tener una referencia del error cometido por la aproximación, por lo que calculamos el error cuadrático medio de la siguiente forma

%añadir al programa anterior
errore=sum((densidad-(a+b*cos(hora*m)+c*sin(hora*m)+d*cos(hora*n)+e*sin(hora*n))).^2)/20


Esto da un error cuadrático medio de: 2.1387

4.3 Aproximación del valor en 10 horas

Para estimar a que valor se aproxima la densidad de partículas en la hora 10 se sustituye el 10 en la fórmula en las posiciones de 'hora'

%añadir al programa anterior
a+b*cos(10*m)+c*sin(10*m)+d*cos(10*n)+e*sin(10*n)=


Esto da un valor aproximado de: 34.6592


Calidad del aire en Moratalaz. Aproximación trigonométrica



















5 Aproximación más exacta

Analizando las gráficas se podría deducir cual es la más precisa con facilidad, pero para asegurarse y tener el rigor matemático necesario hay que calcular el error cuadrático medio en para todas las aproximaciones. La más precisa será la que tenga menor error cuadrático medio. Para la recta el error cuadrático medio es: 15.9805 Para la parábola el error cuadrático medio es de: 15.9688 Para la función trigonométrica dada el error cuadrático medio es de: 2.1387

Como podemos observar, el error cuadrático medio de la función trigonométrica es mucho menor que el de las otras dos funciones, por lo tanto es la más precisa de las tres. A continuación la más precisa sería la de la parábola y por último (es decir, la más inexacta es la de la recta).