aproximacion discreta

5
 APROXIMACIÓN DE FUNCIONES DISCRETAS (Ajuste de Funciones) FUNCIÓN DE INTERPOLACIÓN Será una función que pasará exactamente por los puntos que optendremos como datos, tal y como se representa en la siguiente gráfica: P(x) P2 P4 P1 P3 a b Este tipo de funciones se utilizan en temas relacionados con el control, debido a que minimizo el error en un punto concreto (error mínimo puntual). INTERPOLACIÓN DE LAGRANGE Queremos optener una función P(x) que pase por los puntos que tenemos. Pn(xi) = yi En un principio , nos centraremos en allar una función de primer grado: P1(x) P1(x) = a0 +a1x y0 = a0 +a1x0 y1 = a0 + a1x1 ! a0 = ( y1a0) / x1 a1 = ( y1y0) / (x1x0) P1(x) = (xx1)y0/(x0x1) (xx0)y1/(x1x0) ! P1(x) = L0y0 + L1y1 Polinomio de 1º de Lagrange Generalizando dicha función para un grado `n' obtendríamos lo siguiente: n Pn(x) = Li(x) yi i=0 1

Upload: skar-javier-rojgar

Post on 06-Jul-2015

86 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Aproximacion Discreta

7/8/2019 Aproximacion Discreta

http://slidepdf.com/reader/full/aproximacion-discreta 1/5

APROXIMACIÓN DE FUNCIONES DISCRETAS (Ajuste de Funciones)

FUNCIÓN DE INTERPOLACIÓN

Será una función que pasará exactamente por los puntos que optendremos como datos, tal y como serepresenta en la siguiente gráfica:

P(x)

P2

P4

P1

P3

a b

Este tipo de funciones se utilizan en temas relacionados con el control, debido a que minimizo el error en unpunto concreto (error mínimo puntual).

INTERPOLACIÓN DE LAGRANGE

Queremos optener una función P(x) que pase por los puntos que tenemos.

Pn(xi) = yi

En un principio , nos centraremos en allar una función de primer grado: P1(x)

P1(x) = a0 +a1x

y0 = a0 +a1x0

y1 = a0 + a1x1 ! a0 = ( y1− a0) / x1

a1 = ( y1−y0) / (x1−x0)

P1(x) = (x−x1)y0/(x0−x1) − (x−x0)y1/(x1−x0) !

P1(x) = L0y0 + L1y1 Polinomio de 1º de Lagrange

Generalizando dicha función para un grado `n' obtendríamos lo siguiente:

n

Pn(x) = Li(x) yi

i=0

1

Page 2: Aproximacion Discreta

7/8/2019 Aproximacion Discreta

http://slidepdf.com/reader/full/aproximacion-discreta 2/5

n

Li(x) = (x−xj) / (xi−xj)

 j=0

 j"i

!

POLINOMIO DE LAGRANGE

Para el cálculo de dicho polinomio utilizaremos el siguiente programa:

program int_lagrange;

type

lista=array [1..10] of real;

var

lista1,lista2,lista3:lista;

punto,i:integer;

valor:real;

procedure introducir_datos (var lista1,lista2:lista;punto:integer);

var

punto1,punto2:real;

i:integer;

begin

for i:=1 to punto do

begin

writeln ('Introduce el valor de X',i−1,':');

readln (punto1);

lista1 [i]:=punto1;

writeln ('Introduce el valor de Y',i−1,':');

readln (punto2);

2

Page 3: Aproximacion Discreta

7/8/2019 Aproximacion Discreta

http://slidepdf.com/reader/full/aproximacion-discreta 3/5

lista2 [i]:=punto2;

end;

end;

procedure calcular (var lista3:lista;lista1,lista2:lista;punto:integer;valor:real);

var

i,j:integer;

cal,cal1,resultado:real;

begin

for i:=1 to punto do

begin

cal:=1;

cal1:=1;

for j:=1 to punto do

if (j<>i) then

begin

cal:=cal*(valor−(lista1 [j]));

cal1:=cal1*(lista1 [i]−lista1 [j]);

end;

lista3 [i]:=cal/cal1;

end;

resultado:=0.0;

for i:=1 to punto do

resultado:=resultado+(lista3 [i]*lista2 [i]);

writeln ('EL RESULTADO ES: ',resultado);

end;

begin

3

Page 4: Aproximacion Discreta

7/8/2019 Aproximacion Discreta

http://slidepdf.com/reader/full/aproximacion-discreta 4/5

writeln ('Introduce la cantidad de puntos:');

readln (punto);

writeln ('Introduce el valor donde quieres realizar el calculo:');

readln (valor);

introducir_datos (lista1,lista2,punto);

calcular (lista3,lista1,lista2,punto,valor);

end.

Para probar el funcionamiento del programa introduciremos los siguientes ejemplos logrando resultadossatisfactorios:

EJEMPLO 1:

i 0 1 2xi 2 2.5 3

F(xi) = yi 0.69315 0.91629 1.09861

Realizando el cálculo para: X = 2.3

RESULTADO = 0.8319324

EJEMPLO 2:

i 0 1 2 3

xi 0 0.1 0.3 0.6

F(xi) = yi 1.00000 1.10517 1.34986 1.82212

Realizando el cálculo para: X = 0.14

RESULTADO = 1.15025136

El intervalo [a,b] contiene todos los ordenados Xi ,además, la f(x) y todas sus derivadas hasta (n+1) son suscontinuas. El error cometido al reemplazar f(x) por P(x) de grado n para cualquier valor X en [a,b].

|f(x) − Pn(x)| " (x−x0)(x−x1)... (x−xn)f(n+1)()/(n+1)!Tomando como el caso más desfavorable. ( " [a,b] )

Siguiendo con el EJEMPLO 1 ,el calculo del error se realizaría del siguiente modo:

|lnx − P2(x)| = (x−2)(x−2.5)(x−3) f '''() / 3!

X = 2.3 ! |lnx − P2(x)| = (2.3−2)(2.3−2.5)(2.3−3) 2 / 3! =

= 0.00175

4

Page 5: Aproximacion Discreta

7/8/2019 Aproximacion Discreta

http://slidepdf.com/reader/full/aproximacion-discreta 5/5

Teniendo en cuenta que el peor caso es : x0= 2 ( x " [a,b] )

5