Diferencia entre revisiones de «Aproximación por Mínimos Cuadrados (grupo 3)»
(→Cálculo y representación de una recta por mínimos cuadrados) |
|||
| (No se muestran 43 ediciones intermedias del mismo usuario) | |||
| Línea 82: | Línea 82: | ||
- 1º: "Dibujar los datos en una gráfica tiempo/concentración". | - 1º: "Dibujar los datos en una gráfica tiempo/concentración". | ||
| − | - | + | - 2º: "Ajustar los datos a una recta C = a + bt, donde C es la concentración, usando el |
método de mínimos cuadrados. Dibujar la recta y los puntos en la misma gráfica y | método de mínimos cuadrados. Dibujar la recta y los puntos en la misma gráfica y | ||
| − | calcular el error cuadrático medio de la aproximación. | + | calcular el error cuadrático medio de la aproximación. Predicción de la recta para el valor de la concentración a las 10:00. |
| − | + | ||
- 3º: "Ajustar los datos a una parábola C = a + bt + ct^2 usando el método de mínimos | - 3º: "Ajustar los datos a una parábola C = a + bt + ct^2 usando el método de mínimos | ||
| Línea 96: | Línea 95: | ||
Responder a las mismas preguntas que en el apartado anterior. | Responder a las mismas preguntas que en el apartado anterior. | ||
| − | - 5º: " | + | - 5º: "¿Cuál de las aproximaciones tiene un menor error cuadrático medio? ¿Qué predicción |
te parece la más fiable?". | te parece la más fiable?". | ||
== Creación de la tabla de valores == | == Creación de la tabla de valores == | ||
| − | Empleando Mathlab, se nombran dos variables con el nombre "t" para las horas, y con el nombre "d" para la densidad de partículas y se representan en una gráfica. Hay datos "d" ausentes debido a la falta de registro para esas horas ( | + | Empleando Mathlab, se nombran dos variables con el nombre "t" para las horas, y con el nombre "d" para la densidad de partículas y se representan en una gráfica. Hay datos "d" ausentes debido a la falta de registro para esas horas (pudiéndose omitir los valores de dos formas: saltando de los valores de la matriz esas posiciones, o escribiendo nan en lugar del número). |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| + | [[Archivo:Aprox 1ºaprox - copia.png|400px|thumb|right|Representación de puntos en la gráfica tiempo/concentración]] | ||
{{matlab|codigo= | {{matlab|codigo= | ||
figure (1) | figure (1) | ||
t=[0,1,2,3,4,5,6,11,12,13,14,15,16,17,18,19,20,21,22,23] %Para crear el eje X | t=[0,1,2,3,4,5,6,11,12,13,14,15,16,17,18,19,20,21,22,23] %Para crear el eje X | ||
| − | d=[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]%Para crear el eje Y | + | d=[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]%Para crear el eje Y | ||
plot(t,d,'r*') % Para ilustrar los valores | plot(t,d,'r*') % Para ilustrar los valores | ||
}} | }} | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| Línea 121: | Línea 128: | ||
=== Cálculo de la recta === | === Cálculo de la recta === | ||
Colocando a continuación de las líneas de código anteriores: | Colocando a continuación de las líneas de código anteriores: | ||
| + | [[Archivo:Aprox 1ºsin aprox - copia.png|400px|thumb|right|Ajuste lineal mediante mínimos cuadrados]] | ||
{{matlab|codigo= | {{matlab|codigo= | ||
| − | x1=[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]' | + | x1=[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]' % Primera columna de la matriz A correspondiente con la variable a |
| − | x2=[t'] | + | x2=[t'] % Segunda columna de la matriz A correspondiente con los posibles valores de b |
A=[x1,x2] | A=[x1,x2] | ||
| − | B=[d'] | + | B=[d'] % Solución del sistema formado por los valores de d |
| − | Z=(A'*A)\(A'*B) | + | Z=(A'*A)\(A'*B) % Fórmula de mínimos cuadrados |
| − | a=18.7545561807951 | + | a=18.7545561807951 % Se obtienen los valores de los parámetros |
b=0.835160646215284 | b=0.835160646215284 | ||
| − | plot(t,a+b*t) | + | plot(t,a+b*t) % Se grafica la función |
hold on % | hold on % | ||
}} | }} | ||
| + | Finalmente, obtenemos la recta que tiene como fórmula y=18.7546 + 0.8352*x | ||
| − | |||
| + | === Cálculo del error cuadrático medio === | ||
| + | Para conocer el error cuadrático medio hay que ejecutar el siguiente comando basándose en el programa anterior. | ||
| + | {{matlab|codigo= | ||
| + | % añadir al programa anterior | ||
| + | error=(sum((densidad-yy).^2))/20 | ||
| + | }} | ||
| + | El resultado del error cuadrático medio en este caso es= 15.9805. | ||
| + | === Valor en 10 horas según la aproximación por mínimos cuadrados === | ||
| + | |||
| + | Con esta aproximación, podemos predecir el valor de la concentración de partículas a las horas a las cuales se produjo el fallo técnico. De esta forma, se tiene que a las 10:00 se registró, aproximadamente, un valor de 27.11 µ/m3 partículas. | ||
| + | {{matlab|codigo= | ||
| + | y=0.8352*10 + 18.7546=27.1066 | ||
| + | }} | ||
== Cálculo y representación de una parábola por mínimos cuadrados == | == Cálculo y representación de una parábola por mínimos cuadrados == | ||
| − | + | Ahora queremos crear una parábola (ecuación de 2º grado) mediante mínimos cuadrados que mejor se ajuste a los datos obtenidos en la medición, pues de esta forma se cometerá menos error que con el ajuste lineal de 1º grado (recta). | |
=== Cálculo de la parábola === | === Cálculo de la parábola === | ||
Al igual que con la recta, colocando bajo las líneas de código del primer apartado. | Al igual que con la recta, colocando bajo las líneas de código del primer apartado. | ||
| + | [[Archivo:Aprox 3ºaprox - copia.png|400px|thumb|right|Ajuste cuadrático mediante mínimos cuadrados]] | ||
{{matlab|codigo= | {{matlab|codigo= | ||
| − | x3=[t.^2'] | + | x3=[t.^2'] % Se añade una tercera columna |
| − | A1=[A,x3] | + | A1=[A,x3] % Se crea la matriz con la columna recientemente creada |
| − | Z1=(A1'*A1)\(A1'*B) | + | Z1=(A1'*A1)\(A1'*B) % Expresión de los mínimos cuadrados |
| − | c=19.0035116485221 | + | c=19.0035116485221 % Se obtienen los valores de los parámetros |
d=0.756335637375577 | d=0.756335637375577 | ||
e=0.00349790143540171 | e=0.00349790143540171 | ||
| − | plot(t,c+d*t+e*(t.^2)) | + | plot(t,c+d*t+e*(t.^2)) % Se grafica la función |
hold on % | hold on % | ||
}} | }} | ||
| + | La ecuación de la parábola obtenida es: y=19.0035 + 0.7563x + 0.0035x² | ||
| − | |||
| + | === Cálculo del error cuadrático medio === | ||
| + | Para conocer el error cuadrático medio que hemos cometido con esta aproximación se utiliza el mismo comando que se usó para la recta, pero aplicado para los datos de la parábola. | ||
| + | {{matlab|codigo= | ||
| + | % añadir al programa anterior | ||
| + | error=(sum((densidad-yy).^2))/200 | ||
| + | }} | ||
| + | |||
| + | El error cuadrático medio en el caso de la parábola es= 15.9688 | ||
| + | |||
| + | === Valor en 10 horas según la aproximación por mínimos cuadrados === | ||
| + | Al igual que con el caso anterior, podemos predecir un valor de la cantidad de partículas registrada. A las 10:00 habrá, aproximadamente, 26.9 µ/m3 partículas. | ||
| + | {{matlab|codigo= | ||
| + | %añadir al programa anterior | ||
| + | y= 0.0035*10^2 + 0.7563*10 + 19.0035 =26.9165 | ||
| + | }} | ||
== Cálculo y representación de una función trigonométrica por mínimos cuadrados == | == Cálculo y representación de una función trigonométrica por mínimos cuadrados == | ||
| Línea 167: | Línea 204: | ||
=== Cálculo de la función === | === Cálculo de la función === | ||
Repitiendo el procaso anterior y colocando bajo las líneas de código del primer apartado. | Repitiendo el procaso anterior y colocando bajo las líneas de código del primer apartado. | ||
| + | [[Archivo:Aprox 4ºaprox - copia.png|400px|thumb|right|Ajuste de los datos a la función pedida]] | ||
{{matlab|codigo= | {{matlab|codigo= | ||
| − | m=(2*pi/24) | + | m=(2*pi/24) % Se nombran como m y n los periodos para no tener que repetirlos a lo largo de la expresión. |
n=(4*pi/24) | n=(4*pi/24) | ||
| − | x4=[cos(t*m)'] | + | x4=[cos(t*m)'] % Se divide la función en varios grupos para poder calcular los valores más fácilmente |
x5=[sin(t*m)'] | x5=[sin(t*m)'] | ||
x6=[cos(t*n)'] | x6=[cos(t*n)'] | ||
x7=[sin(t*n)'] | x7=[sin(t*n)'] | ||
| − | A2=[x1,x4,x5,x6,x7] | + | A2=[x1,x4,x5,x6,x7] % Se forma la matriz con los valores |
| − | Z2=(A2'*A2)\(A2'*B) | + | Z2=(A2'*A2)\(A2'*B) % Aplicamos la expresión de los mínimos cuadrados |
| − | a=29.7322183227812 | + | a=29.7322183227812 % Se obtienen los valores de los parámetros |
b=-2.15180938775857 | b=-2.15180938775857 | ||
c=-4.90253913577529 | c=-4.90253913577529 | ||
d=-2.46861102870589 | d=-2.46861102870589 | ||
e=-7.79309311015295 | e=-7.79309311015295 | ||
| − | plot(a,b+g*cos(t*m)+c*sin(t*m)+d*cos(t*n)+e*sin(t*n)) | + | plot(a,b+g*cos(t*m)+c*sin(t*m)+d*cos(t*n)+e*sin(t*n)) % Se grafica la función |
}} | }} | ||
| + | === Cálculo del error cuadrático medio === | ||
| + | Procedemos de la misma manera. Se obtiene un error cuadrático medio de 2.1387. | ||
| + | === Valor en 10 horas según la aproximación por mínimos cuadrados === | ||
| + | Procedemos de la misma manera que en los apartados anteriores. A las 10:00 habrá, aproximadamente, 34.7 µ/m3 partículas. | ||
| + | {{matlab|codigo= | ||
| + | %añadir al programa anterior | ||
| + | y= 29.732218-2.151809*cos(2π*10/24)-4.902539*sin(2π*10/24)-2.468611*cos(4π*10/24)-7.793093*sin(4π*10/24)= 34.6592 | ||
| + | }} | ||
| − | [[Archivo:Aprox | + | == Aproximación más adecuada == |
| − | + | [[Archivo:Aprox 5ºaprox - copia.png|400px|thumb|right|Superposición de los resultados]] | |
| − | + | Dados los resultados se deduce que la función con el menor valor de error cuadrático medio y por consecuente la más apropiada es la trigonométrica, como se puede apreciar en la superposición de las funciones. | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
[[Categoría:Matemáticas I]] | [[Categoría:Matemáticas I]] | ||
[[Categoría:MatI/19]] | [[Categoría:MatI/19]] | ||
Revisión actual del 23:18 12 nov 2019
"La estación que mide la calidad del aire en Moratalaz registra cada hora la densidad de partículas por metro cúbico en un fichero de datos. Por un error, el dispositivo ha fallado de 7:00 a 10:00, de manera que faltan los datos asociados a esas 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 | N.D |
| 8 | N.D |
| 9 | N.D |
| 10 | N.D |
| 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 |
Se pide:
- 1º: "Dibujar los datos en una gráfica tiempo/concentración".
- 2º: "Ajustar los datos a una recta C = a + bt, donde C es la concentración, usando el método de mínimos cuadrados. Dibujar la recta y los puntos en la misma gráfica y calcular el error cuadrático medio de la aproximación. Predicción de la recta para el valor de la concentración a las 10:00.
- 3º: "Ajustar los datos a una parábola C = a + bt + ct^2 usando el método de mínimos cuadrados. Responder a las mismas preguntas que en el apartado anterior."
- 4º: "Dado que uno espera una cierta periodicidad diaria y cada 12 horas (como consecuencia de las horas punta por la mañana y al mediodía), vamos a ajustar los datos a una función que contenga ambos periodos. Ajustar los datos a una función del tipo:
C = a + b cos(2πt/24) + c sin(2πt/24) + d cos(4πt/24) + e sin(4πt/24)
donde a, b, c, d, e ∈ R son desconocidos, usando el método de mínimos cuadrados. Responder a las mismas preguntas que en el apartado anterior.
- 5º: "¿Cuál de las aproximaciones tiene un menor error cuadrático medio? ¿Qué predicción te parece la más fiable?".
Contenido
1 Creación de la tabla de valores
Empleando Mathlab, se nombran dos variables con el nombre "t" para las horas, y con el nombre "d" para la densidad de partículas y se representan en una gráfica. Hay datos "d" ausentes debido a la falta de registro para esas horas (pudiéndose omitir los valores de dos formas: saltando de los valores de la matriz esas posiciones, o escribiendo nan en lugar del número).
figure (1)
t=[0,1,2,3,4,5,6,11,12,13,14,15,16,17,18,19,20,21,22,23] %Para crear el eje X
d=[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]%Para crear el eje Y
plot(t,d,'r*') % Para ilustrar los valores
2 Cálculo y representación de una recta por mínimos cuadrados
Se quiere aproximar los valores a una recta que "pase lo más cerca posible de todos los valores".
2.1 Cálculo de la recta
Colocando a continuación de las líneas de código anteriores:
x1=[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]' % Primera columna de la matriz A correspondiente con la variable a
x2=[t'] % Segunda columna de la matriz A correspondiente con los posibles valores de b
A=[x1,x2]
B=[d'] % Solución del sistema formado por los valores de d
Z=(A'*A)\(A'*B) % Fórmula de mínimos cuadrados
a=18.7545561807951 % Se obtienen los valores de los parámetros
b=0.835160646215284
plot(t,a+b*t) % Se grafica la función
hold on %
Finalmente, obtenemos la recta que tiene como fórmula y=18.7546 + 0.8352*x
2.2 Cálculo del error cuadrático medio
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
Con esta aproximación, podemos predecir el valor de la concentración de partículas a las horas a las cuales se produjo el fallo técnico. De esta forma, se tiene que a las 10:00 se registró, aproximadamente, un valor de 27.11 µ/m3 partículas.
y=0.8352*10 + 18.7546=27.1066
3 Cálculo y representación de una parábola por mínimos cuadrados
Ahora queremos crear una parábola (ecuación de 2º grado) mediante mínimos cuadrados que mejor se ajuste a los datos obtenidos en la medición, pues de esta forma se cometerá menos error que con el ajuste lineal de 1º grado (recta).
3.1 Cálculo de la parábola
Al igual que con la recta, colocando bajo las líneas de código del primer apartado.
x3=[t.^2'] % Se añade una tercera columna
A1=[A,x3] % Se crea la matriz con la columna recientemente creada
Z1=(A1'*A1)\(A1'*B) % Expresión de los mínimos cuadrados
c=19.0035116485221 % Se obtienen los valores de los parámetros
d=0.756335637375577
e=0.00349790143540171
plot(t,c+d*t+e*(t.^2)) % Se grafica la función
hold on %
La ecuación de la parábola obtenida es: y=19.0035 + 0.7563x + 0.0035x²
3.2 Cálculo del error cuadrático medio
Para conocer el error cuadrático medio que hemos cometido 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))/200
El error cuadrático medio en el caso de la parábola es= 15.9688
3.3 Valor en 10 horas según la aproximación por mínimos cuadrados
Al igual que con el caso anterior, podemos predecir un valor de la cantidad de partículas registrada. A las 10:00 habrá, aproximadamente, 26.9 µ/m3 partículas.
%añadir al programa anterior
y= 0.0035*10^2 + 0.7563*10 + 19.0035 =26.9165
4 Cálculo y representación de una función trigonométrica por mínimos cuadrados
Una vez más, para tratar de reducir el error en lugar de una recta o una parábola, se basa en la suposición de la existencia de un periodo para la obtención de los valores.
Recordatorio: C = a + b cos(2πt/24) + c sin(2πt/24) + d cos(4πt/24) + e sin(4πt/24)
4.1 Cálculo de la función
Repitiendo el procaso anterior y colocando bajo las líneas de código del primer apartado.
m=(2*pi/24) % Se nombran como m y n los periodos para no tener que repetirlos a lo largo de la expresión.
n=(4*pi/24)
x4=[cos(t*m)'] % Se divide la función en varios grupos para poder calcular los valores más fácilmente
x5=[sin(t*m)']
x6=[cos(t*n)']
x7=[sin(t*n)']
A2=[x1,x4,x5,x6,x7] % Se forma la matriz con los valores
Z2=(A2'*A2)\(A2'*B) % Aplicamos la expresión de los mínimos cuadrados
a=29.7322183227812 % Se obtienen los valores de los parámetros
b=-2.15180938775857
c=-4.90253913577529
d=-2.46861102870589
e=-7.79309311015295
plot(a,b+g*cos(t*m)+c*sin(t*m)+d*cos(t*n)+e*sin(t*n)) % Se grafica la función
4.2 Cálculo del error cuadrático medio
Procedemos de la misma manera. Se obtiene un error cuadrático medio de 2.1387.
4.3 Valor en 10 horas según la aproximación por mínimos cuadrados
Procedemos de la misma manera que en los apartados anteriores. A las 10:00 habrá, aproximadamente, 34.7 µ/m3 partículas.
%añadir al programa anterior
y= 29.732218-2.151809*cos(2π*10/24)-4.902539*sin(2π*10/24)-2.468611*cos(4π*10/24)-7.793093*sin(4π*10/24)= 34.6592
5 Aproximación más adecuada
Dados los resultados se deduce que la función con el menor valor de error cuadrático medio y por consecuente la más apropiada es la trigonométrica, como se puede apreciar en la superposición de las funciones.