Departamento de Matem´tica Aplicada a ´ CALCULO COMPUTACIONAL. Licenciatura en Qu´ ımica (Curso 2005-06) M´ ınimos Cuadrados.

Pr´ctica 7 a

1.

Introducci´n o

El M´todo de ajuste por M´ e ınimos Cuadrados sirve para encontrar una funci´n y = f (x, α 1 , α2 , . . . , αm ), en la o que habr´ que calcular los par´metros α1 , α2 , . . . , αm . Esta funci´n debe ser la que se ajuste lo mejor posible a una a a o tabla de valores que relaciona las dos variables x e y obtenida experimentalmente: x x1 y y1 x2 y2 . . . xn . . . yn

Para calcular los par´metros se impone la condici´n de que sea m´ a o ınima la funci´n o
n

S(α1 , α2 , . . . , αm ) =
i=1

[f (xi , α1 , α2 , . . . , αm ) − yi ]

2

Como S(α1 , α2 , . . . , αm ) es una funci´n de m variables, una condici´n necesaria para que tenga un valor extremo o o 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´gnitas: o ∂S = 0, ∂α1 ∂S = 0, ∂α2 ..., ∂S =0 ∂αm

cuyas soluciones, los par´metros α1 , α2 , . . . , αm nos indican c´mo es la funci´n que mejor se ajusta a los datos, a o o es decir, f (x, α1 , α2 , . . . , αm ). La funci´n f (x, α1 , α2 , . . . , αm ) puede ser de cualquier tipo, te´ricamente, sin embargo, en la pr´ctica, con o o a programas como MATLAB (o DERIVE) s´lo se pueden calcular (directamente) cuando la funci´n es un polinomio. o o En otros casos, que veremos en los ejercicios, habr´ que modificar ligeramente el problema para que se pueda tratar a con el ordenador. Para realizar estos c´lculos MATLAB dispone del comando polyfit. Veamos en un ejemplo c´mo se puede a o ajustar una recta con M´ ınimos Cuadrados:

2.

Ejemplo
Dada la tabla de valores, x y 1 2 3 4 2,1 4,3 6 7,8

Encontrar la funci´n de la forma y = ax + b que mejor se ajuste a los datos. o Como se trata de una funci´n polin´mica se puede hacer directamente. o o Introducimos primero la tabla de valores en dos variables: >>x=[1 2 3 4] >>y=[2.1 4.3 6 7.8] El comando a utilizar es polyfit(x,y,n), donde n es el grado del polinomio que queremos obtener. Por lo tanto para obtener una recta n = 1: >>c=polyfit(x,y,1) Que nos da como resultado los coeficientes de la recta: c = 1.8800 0.3500

25

35 Para representar la informaci´n obtenida gr´ficamente: o a Primero dibujamos la tabla de valores. .4. . que la recta que hemos encontrado es.0580 26 . α2 . es decir. (que llamaremos o con un nombre diferente de x para no borrar la tabla de los datos del problema): >>xp=linspace(1. .xp). lo hacemos como para dibujar cualquier funci´n.Es decir.35 El error que se comete al aproximar la funci´n emp´ o ırica (tabla inicial) por la funci´n te´rica (recta) se puede o o cuantificar de varias formas.y.2300 4.9900 7. Generamos una tabla.35 podemos utilizar el comando polyval que eval´a el polinomio utilizando los coeficientes. . o Para dibujar la recta. .1100 5. y = 1. por ultimo.’*’) De esta forma conseguimos que dibuje s´lo los puntos. α2 . . >>hold on % para mantener el dibujo anterior Y.^2) error = 0. αm ): o Primero calculamos los valores de f (xi . Para para calcular los valores de xp en la recta y = 1. por ejemplo: >>plot(x. α1 . el valor de la funci´n: S(α1 . ´ plot(xp. . Una manera es precisamente calcular la suma de las desviaciones en cada punto de la tabla al cuadrado. que ten´ u ıamos en la variable c: >>yp=polyval(c. .8700 Y ahora sustituimos en la f´rmula: o >>error=sum((fxi-y).yp) Y nos aparece el dibujo de la figura 2.5 3 3.88x+0. αm ): >>fxi=polyval(c.5 4 Figura 2: Tabla y Recta y = 1.x) fxi = 2.35 4 3 2 1 1.88x + 0.20). 8 7 6 5 y=1.88x + 0.88x + 0.5 2 2. con asteriscos o con cualquier otro formato.

delta]=polyval(c. Ejercicios f (x) = ax2 + bx + c para los valores de x e y dados por la siguiente tabla x y 7 8 9 10 11 12 13 7.’r:’) 3.s]=polyfit(x. dentro de la cual se encuentren los puntos de la tabla a a un nivel del 95 %. en cada xi . [fxi-2*delta. El error. αm ) − yi ] i=1 2 7. 27 . pero tambi´n e modificado: >>[fxi.1 9.^2)/n) errorcm = 0. .2300 4. .x.9900 delta = 0.8800 0. de una forma diferente: >>[c.fxi+2*delta].1) c = 1.5 9.’r:’. dentro del cual se encuentra el valor yi . Si representamos la gr´fica siguiente se entender´n de manera gr´fica los c´lculos que a a a a acabamos de realizar. >>plot(x. se pueden utilizar los c´digos que llevan incorporados los comandos polyfit y polyval para obtener ´ o un intervalo de confianza al 95 % en el que se encuentra cada yi .x. α2 . α1 .y.’*’.1942 1 n n [f (xi .8700 0.y.5 9.2408 s es la estructura con la que se va a calcular el error. que viene dado por la expresi´n: a o ε= Para calcularlo: >>n=length(x) % calcula el n’umero de t’erminos n = 4 >>errorcm=sqrt(sum((fxi-y).x. un intervalo de confianza al 95 %. Veamos en qu´ consiste: e Primero volvemos a utilizar el comando polyfit.1100 5.fxi+2*delta.’g-’.1204 Por ultimo.4 9.4 Ejercicio 1 Mediante el M´todo de M´nimos Cuadrados. elegir una funci´n cuadr´tica del tipo e ı o a Calcular la funci´n f (x). .2220 Hemos obtenido.4 9.fxi-2*delta.2220 0. el error cuadr´tico medio y representar la funci´n obtenida junto a los datos o a o de la tabla con una banda alrededor de la gr´fica de f (x).Otra forma consiste en calcular lo que se llama Error Cuadr´tico Medio. Ahora volvemos a utilizar polyval. .x.4 8.s) fxi = 2.fxi.3500 s = R: [2x2 double] df: 2 normr: 0.1942 0.

54 0.8 62.4323 0.222 0.48 17. Habr´ que hacer una nueva tabla de valores con las nuevas variables. Y = 1 .Ejercicio 2 De ciertas medidas realizadas se han obtenido los siguientes valores: x y 0 0. Pero la podemos transformar en.5 4 4.5 5 1 0. o o o 28 . v.6 a) Representar la tabla de valores gr´ficamente.5 3 3. o d) Calcular el error y el error cuadr´tico medio.286 0.833 0. Representarla despu´s con los valores. a Ejercicio 3 La tabla siguiente contiene la presi´n p en kp/cm2 de un vapor saturado. e Seg´n esta funci´n ¿Cu´l ser´a la presi´n aproximada que corresponder´a a un volumen de 3m 3 /kp? u o a ı o ı Ejercicio 4 Hallar por el M´todo de M´nimos Cuadrados una funci´n del tipo S = At q para los datos de la e ı o siguiente tabla.5 1 1. en funci´n del volumen o o espec´fico.334 1. medido en m3 /kp: ı v p 3.027 4. Representarla junto a los datos de la tabla: t S 1 2 3 4 5 7.4 0.182 0.333 0.25 0.1 110 161 (Indicaci´n: Tomar logaritmos neperianos en la funci´n para transformarla en una funci´n de tipo lineal). Nos queda la expresi´n o y Y = aX + b Calcular esta funci´n.1699 0.667 0.2 0.1 27.164 11.2 0.247 7.482 1.167 1 . a Elegir una funci´n p = f (v) que sea adecuada a la tabla de valores y calcularla con el M´todo de M´nimos o e ı Cuadrados.1146 0.63 0. b) Se puede observar que se trata aproximadamente de una funci´n del tipo y = o 1 = ax + b y Ahora. haciendo X = x.8657 0. o a c) Deshacer el cambio de variable y obtener la funci´n original y representarla con los valores del apartado a).034 2.2646 0.5 2 2. Esta funci´n no la o ax + b podemos obtener directamente con el comando polyfit.

Sign up to vote on this title
UsefulNot useful