You are on page 1of 5

Laboratorio de Mtodos Numricos

Interpolacin y Regresin
Victor Snchez Urrutia

1.

Objetivos
Explorar el uso de los polinomios de interpolacin.
Crear programas para aplicar procedimientos de regresin lineal y
polinomial.
Aprender a usar Scilab para programar, graficar y realizar exploraciones numricas.

2.

Uso de sta gua


Esta gua de laboratorio contiene:

1. Parte de la teora requerida para poder realizar y entender el experimento numrico propuesto, recomendamos que lea bien sta
gua antes del principio de la sesin de laboratorio.
2. Una serie de pasos o acciones que deben ejecutar en el laboratorio.
Para que sea ms fcil de localizar estos pasos dentro del documento, stos sern resaltados de la siguiente manera:

Paso 0
Este es un ejemplo de como aparecern los pasos a acciones a
realizar. Fijes que est enumerado.

3. Adems de las acciones a tomar se les harn preguntas o se les


pedir que realice trabajo extra. Estas preguntas o trabajos extras
son los que deben entregarse como su informe de laboratorio. Para
que sea fcil localizarlas y no se le olvide, las resaltaremos de la
siguiente manera:

0
Ejemplo: Modificar el programa xxx para que calcule otra cosa. Entregue el programa en su informe. Piensa usted que la
nueva versin es ms rpida?
4. En algunas situaciones haremos comentarios importantes que indicaremos de la siguiente manera:

Divisin entre cero


Al calcular el error aproximado, se puede dar el caso que el
nuevo o mejor valor sea cero y por consiguiente el error
aproximado sea infinito...
Los informes de laboratorio deben ser entregados antes del laboratorio siguiente. El informe debe estar contenido en una archivo Word u
OpenOffice con todas sus grficas y tablas incluida en el mismo documento. Debe tratar de que su escritura sea coherente y todas las preguntas que se le hicieron en la gua estn contempladas. Si se le pide que
haga o modifique programas estos deben ser entregados en archivos
aparte, tambin cualquier archivo de datos utilizados.
Estos archivos sern entregados segn instruccin del profesor o profesor de laboratorio utilizando la plataforma Moodle.

3.

Procedimiento
Paso 1
Escriba la siguiente funcin en un archivo llamado lagran.sci.

function [ f i ] = lagran ( x , f , x i )

2
3

// funcion lagran ( x , f , x i ) i n t e r p o l a datos


2

4
5
6
7
8
9

//
//
//
//
//
//

usando i n t e r p o l a c i n de Lagrange .
x es un vector de abscisas , f es un vector de ordenadas ,
x i es un vector de absisas para l a s cuales queremos e l valor
de l a i n t e r p o l a c i n
Programa del t e x t o .
Copyright S . Nakamura, 1995

10
11
12
13
14
15
16
17
18
19
20
21
22

f i = zeros ( x i ) ;
np1 = max( size ( f ) ) ;
for i = 1 :np1
z = ones ( x i ) ;
for j = 1 :np1
i f i ~= j then
z = z . * ( x i x ( j ) ) / ( x ( i )x ( j ) ) ;
end
end ;
f i = f i +z * f ( i ) ;
end ;
endfunction

Paso 2
Introduzca ahora el siguiente guin y corralo. Analice el programa
y las grficas resultantes. Ntese como el error de interpolacin es
mayor en los extremos.
1
2
3
4
5

//
//
//
//
//

U t i l i z a lagran . s c i para buscar l a i n t e r p o l a c i o n de lagrange .


y comparar con l a funcion r e a l .
Calculamos e l polinomio de lagrange con l o s s i g u i e n t e s
puntos :

6
7
8

x = 0:0.4:2;
y = x . * cos ( x ) ;

9
10
11
12

// Para graficar necesitamos usar mas puntos .


// y i r es un vector con l o s puntos r e a l e s
// y i i n t con l o s puntos interpolados .

13

14
15
16

xi = 0:0.05:2;
y i r = x i . * cos ( x i ) ;
y i i n t = lagran ( x , y , x i ) ;

17
18
19
20
21
22
23

// Graficamos l a i n t e r p o l a c i o n y valor r e a l .
scf ( 1 )
clf (1)
plot ( xi , y ir , r , xi , y i i n t , g )
x t i t l e ( " Interpolacion y valores r e a l e s r e a l " )
legend ( " Real " , " Interpolada " )

24
25
26
27
28
29

// Graficamos e l error
scf ( 2 )
clf (2)
plot ( xi , y ir y i i n t ) ;
x t i t l e ( " Error " ) ;

30
31
32
33

// Ahora vamos a graficar cada uno


// de l o s polinomios ( Vi ) que conforman
// e l polinomio de lagrange .

34
35

t i p o s l i n = [ " k : " , "mo" , " cx " , " r+ " , " g" , " b * " ] ;

36
37
38

scf ( 3 )
clf (3)

39
40
41

np1 = max( size ( x ) ) ;


for i = 1 :np1

42
43
44
45
46
47
48

z = ones ( x i ) ;
for j = 1 :np1
i f i ~= j then z = ( z . * ( xix ( j ) ) ) / ( x ( i )x ( j ) ) ; end ;
end ;
plot ( xi , z , t i p o s l i n ( i ) )
end ;

49
50

legend ( Poly 1 , Poly 2 , Poly 3 , Poly 4 , Poly 5 , Poly 6 , Originales )

51

52
53
54

// Graficamos l o s puntos o r i g i n a l e s para comparar


plot ( x , y , " ks " )
x t i t l e ( " Polinomios de interpolacion , sin m u l t i p l i c a r por y i " )

1
Escriba una funcin que tome dos vectores (x y y) y obtenga la
regresin lineal (encuentre m y b) con las frmula que se muestra
en el libro.

2
Escriba una funcin que tome dos vectores (x y y) y obtenga la
regresin polinomial. Consulte su libro.

You might also like