Aproximación por mínimos cuadrados (Grupo 13)
De MateWiki
Contenido
- 1 Dibujar los datos en una gráfica tiempo/temperatura.
- 2 Ajustar los datos a una recta T=a+bt usando el método de mínimos cuadrados. Calcular el error cuadrático medio de la aproximación. ¿Qué valor predice para la temperatura a las 17:00?
- 3 Ajustar los datos a una parábola T=a+bt+ct^2. Responder a las mismas preguntas que en el apartado anterior.
- 4 Ajustar los datos a una función del tipo T=a+b*cos(2pi*1t/24)+c*sen(2pi*t/24). Responder a las mismas preguntas que en el apartado anterior
- 5 La gráfica tiempo/Temperatura con las distintas aproximaciones
1 Dibujar los datos en una gráfica tiempo/temperatura.
coor=[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 20 21 22 23; 11.6 11.7 10.3 11.6 11.8 12.1 11.7 13.8 14.7 16.9 17.5 19.1 19.0 20.1 21.4 20.1 17.9 15.1 14.5 13.5]
figure(1)
plot(coor(1,:),coor(2,:),'o','MarkerFaceColor','b')
axis([0,23,10,23])
xlabel('horas')
ylabel('temperatura')
2 Ajustar los datos a una recta T=a+bt usando el método de mínimos cuadrados. Calcular el error cuadrático medio de la aproximación. ¿Qué valor predice para la temperatura a las 17:00?
b=coor(2,:)'
B=[ones(20,1),coor(1,:)']
p=(B'*B)\(B'*b)
x=0:0.1:24;
y=p(1)+p(2)*x;
hold on
plot(x,y)
- Para las 17 horas la recta T=12.5070 + 0.2634x predice una temperatura de 16.98ºC
yp=p(1)+p(2)*coor(1,:);
error=1/20*sum((coor(2,:)-yp).^2)
- Error cuadrático medio= 8.2660
3 Ajustar los datos a una parábola T=a+bt+ct^2. Responder a las mismas preguntas que en el apartado anterior.
A=[ones(20,1),coor(1,:)', coor(1,:).^2' ]
j=(A'*A)\(A'*b)
w=0:0.1:24;
s=8.3170 + 1.4121*w -0.0494*w.^2;
hold on
plot(w,s)
- Para las 17 horas la parábola T=8.3170 + 1.4121w - 0.0494w^2 predice una temperatura de 18.05ºC
yj=j(1)+j(2)*coor(1,:)+j(3)*coor(1,:).^2;
error_p=1/20*sum((coor(2,:)-yj).^2)
- Error cuadrático medio= 3.0781
4 Ajustar los datos a una función del tipo T=a+b*cos(2pi*1t/24)+c*sen(2pi*t/24). Responder a las mismas preguntas que en el apartado anterior
D=[ones(20,1),cos(2*pi*coor(1,:)'/24),sin(2*pi*coor(1,:)'/24) ]
l=(D'*D)\(D'*b)
u=0:0.1:24;
o=15.9338 - 3.6796*cos(2*pi*u'/24) - 3.2747*sin(2*pi*u'/24);
plot(u,o)
- Para las 17 horas la función periodica T=15.9338 - 3.6796cos(2pi*u'/24) - 3.2747sin(2pi*u'/24) predice una temperatura de 20.05ºC
yl=l(1)+l(2)*cos(2*pi*coor(1,:)/24)+l(3)*sin(2*pi*coor(1,:)/24);
error_s=1/20*sum((coor(2,:)-yl).^2)
- Error cuadrático medio= 0.3109