Diferencia entre revisiones de «Prueba mat»

De MateWiki
Saltar a: navegación, buscar

Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/mat/public_html/w/includes/diff/DairikiDiff.php on line 434
(Página creada con «Conjunto de puntos y gráficas de funciones En este artículo vamos a aprender a dibujar un conjunto de puntos y la gráfica...»)
 
Línea 1: Línea 1:
[[Archivo:puntosyrecta.jpg|400px|thumb|right|Conjunto de puntos y gráficas de funciones]]
+
{{ Trabajo | Aproximación por mínimos cuadrados. Grupo 13 | [[:Categoría:Matemáticas I|Matemáticas I]]|[[:Categoría:MatI/19|Curso 2019-20]] | Leo Coronel, Alex Robles, Alejandro Lomas }}
  
En este artículo vamos a aprender a dibujar un conjunto de puntos y la gráfica de una función en la misma figura con MatLab. Una posible aplicación consiste en dibujar una serie de datos y su recta de regresión. También veremos cómo calcular el error cuadrático medio entre los puntos dados y las curva.
+
== 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 ==
  
Lo vamos a hacer con un ejemplo. Supongamos que queremos dibujar los puntos de coordenadas <math> (1,1), \; (2,-1), \; (-1,1),\; (3,0) </math> y la recta <math> y=-1/2+\frac{x}{4} </math> en la misma gráfica.
 
  
 
==  Dibujar los puntos  ==
 
==  Dibujar los puntos  ==

Revisión del 15:58 11 nov 2019


1 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 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 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 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 Dibujar los puntos

Seguieremos los siquientes pasos

  1. Generamos una matriz que contenga por columnas las coordenadas de los puntos
  2. Dibujamos los puntos con el comando plot.
  3. Ajustamos los ejes.
coor=[1 2 -1 3;1 -1 1 0];                         % coordenadas de los puntos
figure(1)                                         % abrimos una pantalla para dibujar
plot(coor(1,:),coor(2,:),'o','MarkerFaceColor','b')    % Dibuja los puntos
axis([-2,4,-2,2])                            % selecciona la region para dibujar [-2,4]x[-2,2]


6 Dibujar una recta

Ahora vamos a dibujar la recta. Los pasos son:

  1. Generamos un vector con una serie de valores equidistribuidos en un intervalo. En este caso [-2,4]
  2. Calculamos las imágenes por la función [math] y(x)=-1/2+\frac{x}{4} [/math]
  3. Dibujamos con plot.
% añadir al programa anterior
x=-2:0.01:4;                                      % coordenadas x de los puntos
y=-1/2+1/4*x;                                        % imágenes
figure(1)                                         % abrimos una pantalla para dibujar
hold on                                           % para que no borre lo ya dibujado
plot(x,y)                                     % Dibuja la gráfica


7 Dibujar una parábola

Si queremos añadir otra curva seguiríamos el mismo proceso. Por ejemplo, la función [math] y(x)=-1/2+\frac{x^2}{4} [/math]

% añadir al programa anterior
x=-2:0.01:4;                                      % coordenadas x de los puntos
y=-1/2+1/4*x.^2;                                  % imágenes
figure(1)                                         % abrimos una pantalla para dibujar
hold on                                           % para que no borre lo ya dibujado
plot(x,y)                                     % Dibuja la gráfica


8 Calcular el error cuadrático medio de la recta

Vamos ahora a calcular el error cuadrático medio entre los puntos y la primera recta. Si escribimos las coordenadas de los puntos como [math] \{ (x_i,y_i) \}_{i=1}^N [/math] (en nuestro caso tenemos sólo 4 puntos así que [math] N=4 [/math]) el error cuadrático medio es

[math] \frac1N \sum_{i=1}^N |y_i-y(x_i)|^2 [/math]

% añadir a los programas anteriores
yp=-1/2+1/4*coor(1,:).^2;                         % imágenes y(x_i)
error=1/4*sum((coor(2,:)-yp).^2)