Sunteți pe pagina 1din 10

Pr actica 5: Interpolaci on y ajuste.

Tablas de diferencias.

La interpolaci on se usa para obtener datos intermedios a partir de una tabla de valores, construyendo un polinomio que pasa por el conjunto de datos conocidos, llamados nodos de interpolaci on; este polinomio suele expresarse en t erminos de la diferencias i f . Para introducir estas diferencias, consideramos la tabla formada por un conjunto de valores de una funci on f (x) en el conjunto de N puntos equiespaciados {x0 , x1 , ..., xN 1 } con xi = xi1 + h. Llamamos fk a f (xk ) y denimos: fk = fk+1 fk 2 fk = fk+1 fk = (fk+2 fk+1) (fk+1 fk ) y en general: i+i fk = i fk+1 i fk (2) En MATLAB existe el comando di(y,n) que calcula estas diferencias; en concreto: Sea y es un vector de p componentes (y1 , y2 , ..., yp ), di(y,1) es un vector con p 1 componentes que son las primeras diferencias y1 , y2 , ..., yp1. di(y,n) es un vector cuyas p n componentes son: n y1 , n y2 , ..., n ypn . Adem as de ser un paso intermedio en la interpolaci on, las diferencias n yk son u tiles a la hora de buscar la dependencia funcional de datos experimentales. En particular, si se tabulan los valores yk de un polinomio de grado m, en un conjunto de puntos {xk }, las diferencias de orden m + 1, m+1 yk , se anulan. Cuando la tabla contiene datos experimentales de una funci on polinomial de grado m, estas diferencias toman valores del orden del error de la medida y alternando signos positivos y negativos. Entonces, emplear un polinomio de orden mayor que m para interpolar estos valores conduce a peores aproximaciones. Como ejemplo, consideremos una reaccion qu mica 2A A Se han medido las siguientes concentraciones de A en funci on del tiempo: (3)

(1)

t, min 0 40 80 120 160 200 240

[A], mmol dm3 68.00 50.40 40.04 Tabla 1 33.20 28.40 24.70 21.98

Construyamos las diferencias di(y,k) con k=1, 2, 3 de los datos de esta tabla, para ello escribamos los datos en forma de vectores: x = [0 40 80 etc.]; y = [68.00 50.4 etc. ]; y calculemos: d1 = di(y, 1) d2 = di(y, 2) d3 = di(y, 3)

Comprobamos, construyendo la tabla de la seccion de resultados, que los datos de la tabla 1 no se aproximan adecuadamente con polinomios de orden m = 0, 1, 2. Repetimos el c alculo de diferencias para las funci ones 1/y y log y . Sabiendo que para reacciones de primer orden la concentraci on depende del tiempo en la forma: [A] = [A]0 exp(kt) , mientras que para reacciones de segundo orden se cumple: [A] = [A]0 1 + k [A]0 t (5) (4)

Decidir el orden de la reacci on considerada

2
2.1

Interpolaci on.
Interpolaci on de Gregory-Newton.

El polinomio de grado n que pasa por un conjunto de n + 1 puntos (xk , fk ) equiespaciados puede expresarse (f ormula de Gregory-Newton) como:
n i1

pn (x) = f0 +
i=1 j =0

(x xj )

i f0 i!hi

(6)

En la pr actica se dispone del programa gn.m(x, y, b, p) que proporciona valores interpolados mediante la f ormula (6), donde x: vector que contiene las abscisas de los datos. y: vector que contiene las ordenadas de los datos. b: punto en el que se desea evaluar el polinomio interpolante. p: grado del polinomio interpolante.

2.2

Interpolacion con funciones spline.

Para interpolar un conjunto grande de puntos suelen emplearse las funciones spline; estas funciones son polinomios, normalmente de tercer orden, que interpolan subconjuntos de puntos. En el caso concreto del spline c ubico, dados un conjunto de n + 1 datos, estos denen un conjunto de n intervalos y en cada uno de ellos se construye el polinomio: fi (x) = ai x3 + bi x2 + ci x + di (i = 1, 2, ..., n) (7)

Necesitamos por tanto 4n condiciones para determinar las constantes ai , bi , ci y di; estas son: 1. La primera y la u ltima funci on deben pasar por los puntos extremo (2 condiciones). 2. Las funciones deben igualarse en los nodos internos: fi (xi ) = fi+1 (xi ) = yi (2n -2 condiciones). 3. Las primeras derivadas son iguales en los puntos interiores (n-1 condiciones) 4. Las segundas derivadas son iguales en los puntos interiores (n-1 condiciones). 5. Las segundas derivadas en los puntos extremos se anulan (2 condiciones).

MATLAB dispone de una subrutina para efectuar interpolaci on con splines cubicos. spline (x, y, xi), que proporciona el valor interpolado en el punto xi mediante un spline que pasa por los puntos cuyas abscisas vienen dadas por el vector x y ordenadas por el vector y. Veamos un ejemplo de interpolaci on: Un reactor est a t ermicamente estraticado con los valores de la siguiente tabla: Profundidad,m 0 0.5 1.0 o Temperatura, C 70 68 55 1.5 2.0 2.5 22 13 11 3.0 10 Tabla 2 Comparamos los resultados de interpolar estos valores con un polinomio de orden 6 y empleando spline: Prof = [0: 0.5 :3]; Temp = [70, 68, 55, 22, 13, 11, 10]; T1 = [0 : 0.1 : 3]; Pr1= gn(Prof, Temp, T1, 6); Pr2= spline(Prof, Temp, T1); plot(Prof, Temp, T1, Pr1); plot(Prof, Temp, T1, Pr2);

Ajustes. Regresi on por el m etodo de m nimos cuadrados.

Dado un conjunto de datos (xi , yi) se pretende encontrar una funci on f (x) que aproxime estos puntos, minimizando las distancias de estos puntos a la l nea y = f (x). En el m etodo de m nimos cuadrados se parte de una forma funcional que depende de una serie de par ametros {c1 , c2 , ..., cn }. Para determinar estos par ametros, se dene el vector residuo, r, cuyas componentes son: ri = yi f (xi ) y cuya norma eucl dea es: r =
i

(8)

r2 i =
i

[yi f (xi )]2

(9)

Los par ametros ci se determinan imponiendo que r sea m nima. Por ejemplo, si la funci on f (x) es un polinomio de grado m: f (x) = c0 + c1 x + c2 x2 + ... + cm xm , 4 (10)

la condici on de m nima norma conduce a un sistema de ecuaciones lineales cuyas soluciones son los coecientes ci . En MATLAB disponemos de los siguientes comandos: p=polyt (x,y, n): ajusta un polinomio p de grado n a los datos xi , yi, que son, respectivamente, las componentes de los vectores x, y. yy=polyval (p,xx): eval ua el polinomio p en el punto xx. norm (v): calcula la norma del vector v. Como ejemplo de aplicaci on, consideremos los siguientes datos de presi on de vapor del benceno en funci on de la temperatura:

T, K P, mm Hg 236.4 1 253.5 5 261.6 10 270.4 20 Tabla 3 280.7 40 288.5 60 299.2 100 315.3 200 333.7 400 353.2 760 Primero ajustamos estos datos a un polinomio de cuarto grado: T=[236.4 253.5 261.6...] ; Pv=[1 5 10...]; pol4=polyt(T, Pv, 4 ); Evaluamos el polinomio y representamos gr acamente los datos y el ajuste: Paj=polyval(pol4,T); plot(T, Paj, or , T, Pv, b) Title (ajuste polinomio, n=4) xlabel (T, K) ylabel (Presion de vapor, mm Hg) Otra alternativa es ajustar los datos a la ecuaci on (Clapeyron): P v = A exp 5 B T (11)

Tomando logaritmos: log P v = C + con C = log A. El procedimiento en MATLAB es: lP=log(Pv); iT=1./T; lr=polyt(iT,lP,1); PCl=polyval(lr,iT); PvCl= exp(PCl); plot(T, PvCl, or , T, Pv, b) Title (ajuste ecuacion Clapeyron) xlabel (T, K) ylabel (Presion de vapor, mm Hg)

B T

(12)

Para discutir qu e ajuste es m as adecuado, calculamos los residuos y las normas de los vectores residuo en cada caso: r1= Pv-Paj; r2= Pv-PvCl; n1=norm(r1) n2=norm(r2)

Resultados.
1. Completar las siguientes tablas (datos de la secci on 1):

x 0 40 80 120 160 200 240 x 0 40 80 120 160 200 240

y 68.00 50.40 40.04 33.20 28.40 24.70 21.98 y 68.00 50.40 40.04 33.20 28.40 24.70 21.98

2 y

3 y

(log y )

2(log y )

3(log y )

x 0 40 80 120 160 200 240

y 68.00 50.40 40.04 33.20 28.40 24.70 21.98

(1/y )

2(1/y )

3(1/y )

2. Determinar el orden de la reacci on.

3. Decidir si es m as adecuado emplear la interpolaci on de Gregory- Newton o el spline c ubico para interpolar los datos de temperatura del reactor de la secci on 2

4. Imprimir las gr acas de los ajustes de la secci on 3. Copiar las expresiones obtenidas,

5. Representar gr acamente los residuos y comparar las normas calculadas en la secci on 3. Qu e ajuste es m as apropiado? Qu e expresi on emplear as para estimar la presi on de vapor a T=700K?

6. Explicar brevemente c omo ajustar as un conjunto de datos experimentales (xk , yk ) 2 a la expresi on A exp[(x x0 ) ], donde A, y x0 son par ametros.

Complemento: Empleo de Excel para ajuste.

El programa Excel puede utilizarse para ajustar curvas, empleando la opci on linea de tendencia del men u graco. Consideremos un ejemplo sencillo: Se dispone de los siguientes datos (en unidades arbitrarias) de la resistencia a la tensi on de un pl astico: Tiempo Resistencia 10 15 20 25 40 7 18 20 28 38 50 55 60 75 49 58 60 78

Para ajustar estos datos a una l nea recta, abrimos el programa Excel y escribimos los valores de tiempo y resistencia en las columnas A y B respectivamente. A continuaci on seleccionamos estas dos columnas con el rat on y elegimos la opci on Insertar Gr aco. A la pregunta tipo de gr aco que aparecer a, respondemos eligiendo el tipo XY dispersi on. Completamos el gr aco respondiendo Siguiente y Finalizar en los paneles sucesivos. Una vez construido el gr aco, se emplea la opci on Agregar l nea de tendencia del men u Gr aco; entonces aparecer a un panel que nos permite seleccionar el tipo de ajuste deseado. En este caso concreto, elegiremos el ajuste lineal; adem as, el panel opciones nos permite incluir en el gr aco la funci on obtenida y el coeciente de correlaci on. Como primer ejercicio, obtengamos una regresi on polinomial de cuarto orden para los siguientes datos de concentraci on de ox geno disuelto en agua al nivel del mar frente a la temperatura: T, 0 C C,mg/l 0 8 16 24 32 40 48 14.622 11.845 9.870 8.419 7.305 6.413 8.820

Obtener el polinomio correspondiente y el coeciente de correlaci on del ajuste. Como segundo ejercicio, consideremos los siguientes valores de corriente en un alambre en funcin del voltaje aplicado: V, V I, A 2 3 4 5 5.2 7.8 10.7 13 7 10 20 25 19.3 27.5 75.1 90.2

Obtener la resistencia del conductor, mediante un ajuste lineal de estos datos, pero dar un peso 8 veces mayor a los puntos con V < 15V donde las desviaciones de la ley de Ohm son menores

10

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