Está en la página 1de 5

Departamento de Matematica Aplicada

ALCULO COMPUTACIONAL.
Licenciatura en Qumica (Curso 2009-10)
Analisis de Datos Practica 7
Escribe en la lnea de comandos las ordenes necesarias para resolver estas cuestiones. Guardalas en diferentes
cheros de nombres misajustes.m.
1. Mnimos Cuadrados.
El Metodo de ajuste por Mnimos Cuadrados sirve para encontrar una funci on y = f(x,
1
,
2
, . . . ,
m
), en la
que habr a que calcular los par ametros
1
,
2
, . . . ,
m
. Esta funci on debe ser la que se ajuste lo mejor posible a una
tabla de valores que relaciona las dos variables x e y obtenida experimentalmente:
x
i
x
1
x
2
. . . x
n
y
i
y
1
y
2
. . . y
n
Para calcular los par ametros se impone la condicion de que sea mnima la funci on
S(
1
,
2
, . . . ,
m
) =
n

i=1
[f(x
i
,
1
,
2
, . . . ,
m
) y
i
]
2
Como S(
1
,
2
, . . . ,
m
) es una funci on de m variables, una condici on necesaria para que tenga un valor extremo
en un punto es que sus derivadas parciales en ese punto sean todas nulas. De aqu obtenemos un sistema de m
ecuaciones, con m inc ognitas:
S

1
= 0,
S

2
= 0, . . . ,
S

m
= 0
cuyas soluciones, los par ametros
1
,
2
, . . . ,
m
nos indican c omo es la funci on que mejor se ajusta a los datos,
es decir, f(x,
1
,
2
, . . . ,
m
).
La funci on f(x,
1
,
2
, . . . ,
m
) puede ser de cualquier tipo, te oricamente, sin embargo, en la pr actica, con
programas como MATLAB (o Matlab) solo se pueden calcular (directamente) cuando la funci on es un polinomio.
En otros casos, que veremos en los ejercicios, habra que modicar ligeramente el problema para que se pueda tratar
con el ordenador.
Para realizar estos calculos MATLAB dispone del comando polyfit. Veamos en un ejemplo como se puede
ajustar una recta con Mnimos Cuadrados:
Ejemplo 1 Dada la tabla de valores,
x
i
1 2 3 4
y
i
2,1 4,3 6 7,8
Encontrar la funci on de la forma y = ax + b que mejor se ajuste a los datos.
Como se trata de una funci on polinomica se puede hacer directamente.
Introducimos primero la tabla de valores en dos variables:
>>xi=[1 2 3 4]
>>yi=[2.1 4.3 6 7.8]
El comando a utilizar es polyfit(xi,yi,k), donde k es el grado del polinomio que queremos obtener. Por lo
tanto para obtener una recta k = 1:
>>c=polyfit(xi,yi,1)
Que nos da como resultado los coecientes de la recta:
c =
1.8800 0.3500
Es decir, que la recta que hemos encontrado es,
y = 1,88x + 0,35
Para representar la informaci on obtenida gracamente:
Primero dibujamos la tabla de valores, por ejemplo:
>>plot(xi,yi,r*)
De esta forma conseguimos que dibuje s olo los puntos, con asteriscos o con cualquier otro formato.
Para dibujar la recta, lo hacemos como para dibujar cualquier funci on. Generamos una tabla, (que llamaremos
con un nombre diferente de xi para no borrar la tabla de los datos del problema):
>>xp=linspace(1,4,20);
Para para calcular los valores de xp en la recta y = 1,88x + 0,35 podemos utilizar el comando polyval que
eval ua el polinomio utilizando los coecientes, que tenamos en la variable c:
>>yp=polyval(c,xp);
>>hold on % para mantener el dibujo anterior
Y, por ultimo,
plot(xp,yp)
1 1.5 2 2.5 3 3.5 4
2
3
4
5
6
7
8
y=1.88x+0.35
Figura 4: Tabla y Recta y = 1,88x + 0,35
El error que se comete al aproximar la funci on emprica (tabla inicial) por la funci on teorica (recta) se puede
cuanticar de varias formas.
Una manera es precisamente calcular la suma de las desviaciones en cada punto de la tabla al cuadrado, es
decir, el valor de la funci on: S(
1
,
2
, . . . ,
m
):
Primero calculamos los valores de f(x
i
,
1
,
2
, . . . ,
m
):
>>fxi=polyval(c,xi)
fxi =
2.2300 4.1100 5.9900 7.8700
Y ahora sustituimos en la f ormula:
>>error=sum((fxi-yi).^2)
error =
0.0580
Otra forma consiste en calcular lo que se llama Error Cuadr atico Medio, que viene dado por la expresi on:
=

1
n
n

i=1
[f(x
i
,
1
,
2
, . . . ,
m
) y
i
]
2
Para calcularlo:
>>n=length(x) % calcula el numero de terminos
n =
4
>>errorcm=sqrt(sum((fxi-yi).^2)/n)
errorcm =
0.1204
Por ultimo, se pueden utilizar los c odigos que llevan incorporados los comandos polyfit y polyval para obtener
un intervalo de conanza al 95 % en el que se encuentra cada y
i
. Veamos en que consiste:
Primero volvemos a utilizar el comando polyfit, de una forma diferente:
>>[c,s]=polyfit(xi,yi,1)
c =
1.8800 0.3500
s =
R: [2x2 double]
df: 2
normr: 0.2408
s es la estructura con la que se va a calcular el error. Ahora volvemos a utilizar polyval, pero tambien modi-
cado:
>>[fxi,delta]=polyval(c,xi,s)
fxi =
2.2300 4.1100 5.9900 7.8700
delta =
0.2220 0.1942 0.1942 0.2220
Hemos obtenido, en cada x
i
, un intervalo de conanza al 95 %, [fxi-2*delta,fxi+2*delta], dentro del cual
se encuentra el valor y
i
, i. e.
P

|f(x
i
) y
i
| 2
i

= 0,95
donde P denota la probabilidad.
Si representamos la gr aca siguiente se entenderan de manera gr aca los c alculos que acabamos de realizar.
>>hold on
>>plot(xi,yi,r*)
>>plot(xi,fxi,b-)
>>plot(xi,fxi+2*delta,g:)
>>plot(xi,fxi-2*delta,g:)
>>hold off
Ejercicio 1 Mediante el Metodo de Mnimos Cuadrados, elegir una funci on cuadr atica del tipo
f(x) = ax
2
+ bx + c
para los valores de x e y dados por la siguiente tabla
x
i
7 8 9 10 11 12 13
y
i
7,4 8,4 9,1 9,4 9,5 9,5 9,4
Calcular la funci on f(x). El error, el error cuadr atico medio y representar la funci on obtenida junto a los datos
de la tabla con una banda alrededor de la gr aca de f(x), dentro de la cual se encuentren los puntos de la tabla a
un nivel del 95 %.
Ejercicio 2 De ciertas medidas realizadas se han obtenido los siguientes valores:
x
i
0 0,2 0,5 1 1,5 2 2,5 3 3,5 4 4,5 5
y
i
1 0,833 0,667 0,54 0,4 0,333 0,286 0,25 0,222 0,2 0,182 0,167
a) Representar la tabla de valores gr acamente.
b) Se puede observar que se trata aproximadamente de una funci on del tipo y =
1
ax + b
. Esta funci on no la
podemos obtener directamente con el comando polyfit. Pero la podemos transformar en,
1
y
= ax + b
Ahora, haciendo X = x; Y =
1
y
. Nos queda la expresi on
Y = aX + b
Calcular esta funci on. Habr a que hacer una nueva tabla de valores con las nuevas variables.
c) Deshacer el cambio de variable y obtener la funci on original y representarla con los valores del apartado a).
d) Calcular el error y el error cuadr atico medio.
Ejercicio 3 Hallar por el Metodo de Mnimos Cuadrados una funci on del tipo S = At
q
para los datos de la
siguiente tabla. Representarla junto a los datos de la tabla:
t
i
1 2 3 4 5
S
i
7,1 27,8 62,1 110 161
(Indicaci on: Tomar logaritmos neperianos en la funci on para transformarla en una funci on de tipo lineal).
Ejercicio 4 La tabla siguiente contiene la presi on p en kp/cm
2
de un vapor saturado, en funci on del volumen
especco, v, medido en m
3
/kp:
v
i
3,334 1,63 0,8657 0,4323 0,2646 0,1699 0,1146
p
i
0,482 1,034 2,027 4,247 7,164 11,48 17,6
Elegir una funci on p = f(v) que sea adecuada a la tabla de valores y calcularla con el Metodo de Mnimos
Cuadrados. Representarla despues con los valores.
Seg un esta funci on Cu al sera la presi on aproximada que correspondera a un volumen de 3m
3
/kp?
2. Analisis Multivariante. Regresi on
Se utiliza cuando y es una funci on de m as de una variable independiente, las ecuaciones matriciales que expresan
las relaciones entre las variables se deben ajustar a esos datos. Esto se conoce como regresion m ultiple.
Supongamos que medimos una cantidad y para varios valores de x
1
y x
2
.
>> xi1 = [.2 .5 .6 .8 1.0 1.1];
>> xi2 = [.1 .3 .4 .9 1.1 1.4];
>> yi = [.17 .26 .28 .23 .27 .24];
Un modelo lineal de regresion calcula los coecientes ,
y = a
0
+ a
1
x
1
+ a
2
x
2
,
por el metodo de los mnimos cuadrados. Construye y resuelve el sistema de ecuaciones formando una matrix
X y calcula los par ametros con el operador \ del siguiente modo
>> X = [ones(size(xi1)) xi1 xi2];
>> a = X\yi
>> a =
0.1018
0.4844
-0.2847
i.e. el modelo de ajuste por mnimos cuadrados es
y = 0,1018 + 0,4844x
1
0,2847x
2
.
Para validar el modelo, calcula el m aximo del valor absoluto de las desviaciones de los datos a partir del modelo
>> Y = X*a;
>> MaxErr = max(abs(Y - yi))
>> MaxErr =
0.0038
el error relativo est a entre los lmites aceptables.
Observaci on: Se ha desarrollado este metodo con el comando \ de matlab.
Ejercicio 5 Repite el ejemplo anterior utilizando el comando pinv. Cu ales son las semejanzas y diferencias entre
ambos metodos?. Recuerda lo comentado en la pr actica 2.
Ejercicio 6 Ajustar los datos siguientes
x
i
1 2 3 4
y
i
0 1 2 3
z
i
2,1 1,3 4,2 5,6
a una funci on lineal del tipo z = ax + by + c.