Sunteți pe pagina 1din 9

Matlab Capitulo 10

Curve Fitting
Eduardo Quiroz Muoz 1674462
Cesar Alejandro Cancino Junco 1835035
Martes M1-M2-M3
Introduccin
El ajuste de curvas consiste en encontrar una
curva que contenga una serie de puntos y que
posiblemente cumpla una serie de restricciones
adicionales.

Dando entender que la funcion de un ajuste de


curvas es predecir un comportamiento a futuro.

El resultado del ajuste de un


conjunto de datos a una funcin
cuadrtica.
El caso ms simple que podemos imaginar es un conjunto de datos
que se describe mejor mediante una funcin lineal. Es decir, si
nuestros datos son de la forma y = f (x) estamos considerando el
caso en que f(x) es tal que:
y = mx + b

Para encontrar los valores de my b, podemos aplicar una funcin


MATLAB llamada polyfit (x, y, n) donde n es el grado del polinomio
que queremos que MATLAB encuentre.
Ejemplo:
Entre un conjunto de jugadores de golf, se observa En general, polyfit generar los coeficientes para el
una relacin entre handicap y puntaje promedio de polinomio de la siguiente manera:
la siguiente manera:

En nuestro caso, polyfit devuelve coeficientes para


una ecuacin de la forma p (1) * x + p (2). Por lo
Encuentre una curva que se ajuste a los datos y tanto, podemos extraer los coeficientes de esta
proporcione una estimacin de ajuste. manera:
> m = p(1) m= 0.0392
>> handicap = [6:2:24]
>> b = p(2) b= 3.6267
handicap = 6 81012141618202224
Generemos una funcin para dibujar la lnea y = mx + b.
>> Ave = [3.94, 3.8, 4.1, 3.87, 4.45, 4.33, 4.12, 4.43,
4.6, 4.5]; >>x = [6:0.1:24];
>> p = polyfit(handicap,Ave,1); >> y=m*x+b;
Los datos reales los podemos mostrar como puntos Para predecir su comportamiento mediante el ajuste
individuales usando los siguientes comandos: de curva lo hacemos de la siguiente manera:
>> subplot(2,1,2); >> w = m*handicap + b
>>plot(handicap,Ave,'o',x,y),xlabel('Handicap') >>w= 3.8616 3.9399 4.0182 4.0965 4.1748 4.2532
,ylabel('Average') 4.3315 4.4098 4.4881 4.5664

Los puntos que se ven en la grafica son bastantes


alejados por lo cual no podemos trazar una linea:
Que tan buena es esta aproximacion de ajuste?
El primer elemento que podemos usar para ver qu Teniendo el valor de S, calculamos A que se obtiene
tan bueno es el ajuste son los residuos. El valor mediante nuestros datos relevantes que tenemos en
cuadrado de los residuos es: w:
>> A=sum((wAve).^2)
A= 0.2274
Por lo cual, si el valor cuadrado de los residuos es Teniendo los valores de S y A procedemos a calcular el
igual a 1 o entre mas cerca este de este, quiere valor cudrado de los residuos:
decir que el ajuste sera mejor.
>> r2 =1 A/S
Ejemplo:
r2 = 0.6899
Necesitaremos obtener la medie de nuestro
promedio mediante:
>> mean(Ave) Teniendo el valor de r2 nos damos cuenta que la
aproximacin de ajuste no es tan buena, mas sin
ans = 4.2140 embargo es mas cercana a 1 que a 0.
Entonces calculamos S:
>> S=sum((AveMEAN).^2)
S=0.7332
Ejemplo: Usamos polyfit para generar los coeficientes de un
polinomio de tercer orden:
Un bloque de metal se calienta a una temperatura >> p = polyfit(time,temp,3);
de 300 Fo y se deja enfriar durante un perodo de 7
horas: Como el polinomio es de tercer orden nos quedara:
Calcule la linea de ajuste
y qu tan bueno es. Extraemos los coeficientes:
>> a=p(1);b=p(2);c=p(3);d=p(4);

Generemos una funcin para dibujar la lnea y = mx + b.


>>x = [0:1:7];
>> y=m*x+b
Creamos los ejes:
Ingresamos nuestros datos a MATLAB: >> t=linspace(0,7);
>> time = [0,0.5,1.0,1.5,2,2.5,3,3.5,4,5,6,6.1,7]; >> y=a*t.^3+b*t^2 +c*t +d;
>>temp =
[300,281,261,244,228,214,202,191,181,164,151,149,1
41];
Necesitaremos una serie de datos evaluados en los Por ultimo calculamos el valor cuadrado de los
momentos exactos donde se recopilaron los datos de residuos:
temperatura:
>> w = a*time.^3 + b*time.^2 + c*time + d;
Tracemos la curva de ajuste:
>> M1 = mean(temp)
>> plot(time,temp,'o',t,y),xlabel('time(h)'),ylabel
('temp(F)'),title('Third Order fit for cooling metal block') M1 = 208.2308
>> S = sum((temp M1).^2)
S= 3.2542e+004
>> A = sum((wtemp).^2)
A= 2.79327677455582
Teniendo los valores de S y A, procedemos a que: Ajuste a una funcin exponencial
>> r2 = 1 A/S Tambin son posibles otros tipos de ajustes adems
de ajustarse a un polinomio, mencionamos
>> r2 = 1.0000
brevemente uno.
En algunos casos, puede ser necesario ajustar los
Por lo cual nos damos cuenta que la aproximacin datos a una funcin exponencial.
de ajuste es perfecta.
El ajuste en este caso es:
Donde x es la variable independiente y la y es la
variable dependiente.
Se definen:

Y el ajuste de datos de la linea sera:


Donde los coeficientes p1 y p2 son generados por
polyfit:
>>p=polyfit(x, log10(y),1)
Podemos encontrar m y b usando:

S-ar putea să vă placă și