You are on page 1of 57

2014

M
etodos Num
ericos para el
C
alculo Cientfico con Matlab
TOMO 2

Presentado por:
Mera Carrasco, Junior Lino

Malhaber Montenegro, Miguel Angel

Asesor:
Dr. Collantes Santisteban, Luis Jaime

UNPRG

UNIVERSIDAD NACIONAL
PEDRO RUIZ GALLO

FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS

ESCUELA PROFESIONAL DE MATEMATICA

M
etodos Num
ericos para el C
alculo
Cientfico con Matlab
TOMO 2

INTERPOLACION

Presentado por:

Mera Carrasco Junior Lino


Malhaber Montenegro Miguel Angel

Asesor:

Dr. Collantes Santisteban Luis Jaime

LAMBAYEQUE PERU
2014

Introducci
on
La presentacion de estos tomos tiene su origen en los Seminarios denominados FUN
DAMENTOS DE ECUACIONES NO LINEALES, INTERPOLACION,
DIFEREN E INTEGRACION
NUMERICA

CIACION
PARA EL CALCULO
CIENTIFICO y

CALCULO
CIENTIFICO DE ECUACIONES NO LINEALES, INTERPOLACION,
E INTEGRACION
NUMERICA

DIFERENCIACION
CON MATLAB desarrollados
en Diciembre del 2012 como investigacion de los cursos de Seminario de Matematica
Pura y Aplicada de la carrera profesional de Matematicas de la Universidad Nacional
Pedro Ruiz Gallo con el asesoramiento del Dr. Luis Jaime Collantes Santisteban, dichos
trabajos enfocaban la parte teorica y practica de algunos temas del Calculo Cientfico.

Estos tomos no son documentos comerciales, por el contrario decidimos trabajar para
que se encuentre al alcance de todos, es bien sabido la dificultad que tienen estudiantes
y profesionales de ingeniera, ciencias medicas, ciencias economicas entre otras para idealizar sus problemas y desarrollar un modelo matematico adecuado en algunos casos es
difcil porque la aplicacion resulta excesivamente compleja o los metodos analiticos no se
adecuan muy bien a sus resultados por ello es conveniente el uso de metodos numericos
los cuales conducen a soluciones aproximadas pero mas manejables y se puede dar uso
a un ordenador provisto de un software adecuado, para nuestro caso Matlab.

Metodos Numericos para el Calculo Cientfico con Matlab esta divido en 7 tomos:

TOMO 0 Conceptos Previos


TOMO 1 Ecuaciones No Lineales
TOMO 2 Interpolacion
TOMO 3 Diferenciacion e Integracion Numerica
TOMO 4 Ecuaciones Lineales
TOMO 5 Ecuaciones Diferenciales Ordinarias
TOMO 6 Ecuaciones Diferenciales Parciales

Metodos Numericos para el Calculo Cientfico con Matlab, explicara de manera sencilla
y con ejemplos el uso y la programacion de Interfaces Graficas de Usuario (GUI) as como el clasico uso de los archivos .m y por supuesto la solucion manual.

Este TOMO denominado Interpolaci


on esta dividido en tres captulos:

En el primero revisaremos la parte teorica sobre Interpolacion en la busqueda de la construccion de una funcion matematica a partir de ciertos puntos dados y los diferentes
metodos que pueden surgir.

En el segundo captulo solucionaremos problemas mediante el uso de nuestras Interfaces


Graficas con los distintos metodos de solucion y verificaremos cual es el mas efectivo
para distintos problemas.

Dejaremos para el final los codigo fuente utilizados en la creacion de las interfaces graficas.

Por favor, soy Rodney McKay, difcil tarda unos segundos. Imposible, un par de minutos. Dr. Rodney McKay - Stargate Atlantis

INDICE GENERAL

1. Interpolaci
on

1.1. Interpolacion polinomica . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.1.1. Polinomio de interpolacion de Lagrange . . . . . . . . . . . . . . .

1.1.2. Fenomeno de Runge . . . . . . . . . . . . . . . . . . . . . . . . .

13

1.1.3. Interpolacion de Chebyshev . . . . . . . . . . . . . . . . . . . . .

14

1.1.4. Interpolacion trigonometrica . . . . . . . . . . . . . . . . . . . . .

16

1.2. Metodo de Newton o de diferencias divididas . . . . . . . . . . . . . . . .

18

1.3. Interpolacion lineal a trozos . . . . . . . . . . . . . . . . . . . . . . . . .

21

1.4. Aproximacion por funciones spline . . . . . . . . . . . . . . . . . . . . . .

23

1.5. Metodo de mnimos cuadrados

28

. . . . . . . . . . . . . . . . . . . . . . .

2. Interpolaci
on y aproximaci
on
2.1. Comparacion de Metodos Iteractivos . . . . . . . . . . . . . . . . . . . .
3. Codigo Fuente de los GUIS

31
33
45

3.1. Interpolacion de Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . .

45

3.2. Diferencias Divididas Abajo . . . . . . . . . . . . . . . . . . . . . . . . .

48

3.3. Diferencias Divididas Arriba . . . . . . . . . . . . . . . . . . . . . . . . .

50

3.4. Interpolacion a Trozos . . . . . . . . . . . . . . . . . . . . . . . . . . . .

52

3.5. Minimos Cuadrados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

54

Captulo 1

INTERPOLACION

1.1.

Interpolaci
on polin
omica

Una funcion de interpolacion es aquella que pasa a traves de puntos dados como datos
{(xi , yi ), i = 0, 1, 2, . . . , n} (los puntos xi son todos distintos y se llaman nudos), los
cuales se muestran comunmente por medio de una tabla de valores o se toman directamente de una funcion dada, obtenida por muestreo o experimentacion. Suponemos que
los datos corresponden a los valores de una funcion fe desconocida (a veces es conocida,

pero queremos cambiarla por una funcion mas sencilla de calcular). El ajuste de curvas trata el problema de construir una funcion que aproxime muy bien estos datos es
decir :
fe(xi ) = yi

i = 0, 1, . . . , n.

(1.1)

Donde fe se llama interpolante del conjunto de datos {yi } y las ecuaciones 1.1 son las
condiciones de interpolacion. Un caso particular de ajuste de curvas es la interpolacion

polinomial: En este caso se construye un polinomio p(x) que pase por los puntos de la
tabla. Podran considerarse varios tipos de interpolantes como:
El interpolante polinomico: fe(x) = a0 + a1 x + a2 x2 + . . . + an xn

El interpolante trigonometrico: fe(x) = aM eiM x + . . . + a0 + . . . + aM eiM x

donde M es un entero igual a n/2 si n es par, (n 1)/2 sin n es impar, e i es la


unidad imaginaria.
El interpolante racional : fe =

a0 + a1 x + . . . + ak xk
ak+1 + ak+2 x + . . . + ak+n+1 xn

1.

Interpolaci
on

Por simplicidad solamente consideraremos aquellos interpolantes que dependen linealmente de los coeficientes desconocidos ai. Ambos, los interpolantes polinomico y trigonometrico, entran en esta categora, mientras que el interpolante racional no.
En el siguiente ejemplo consideremos datos que relaciona temperatura con el segundo
coeficiente virial.
Ejemplo 1.1.1. Considere los siguiente datos para el nitrogeno (N2 ) :
T (K)

100

200

300

400

450

500

600

B(cm3 /mol)

-160

-35

-4.2

9.0

16.9

21.3

donde T es la temperatura y B es el se-

coeficiente virial a 450K?. Para responder


la pregunta, usando interpolacion polinomial, construimos un polinomio p que pase
por los seis puntos de la tabla (ya veremos
como), tal y como se muestra en la figu-

B(cm 3/ mol)

gundo coeficiente virial. Cual es el segundo


P(T)

100

200

300

400

450

500

600

50

100

ra (3.1). Luego, el segundo coeficiente virial a 450K es aproximadamente p(450) =


13,5cm3 /mol.

Figura 1.1: Polinomio interpolante

En en capitulo I vimos los polinomios de Taylor. Por su importancia, cabra suponer


que en la interpolacion polinomica se usaran ampliamente dichas funciones, pero no es
as. Los polinomios de Taylor coinciden en lo posible con determinada funcion en un
punto especifico x0 , pero concentra su exactitud cerca de el. En los calculos ordinarios
conviene mas usar metodos que incluyan informacion en diversos puntos. La principal
aplicacion de los polinomios de Taylor en el analisis numerico no es la aproximacion,
sino la derivacion de los metodos numericos y la estimacion del error.

1.

Interpolaci
on

1.1.1.

Polinomio de interpolacion de Lagrange

Como los polinomios de Taylor no son adecuados para la interpolacion es necesario hacer
uso de metodos alternos. En esta seccion encontraremos polinomios de aproximacion que
se determinan con solo especificar determinados puntos en el plano por donde deben
pasar. Centremonos en la interpolacion polinomica. Se tiene el siguiente resultado:
Proposici
on 1.1.1. Para cualquier conjunto de pares {xi , yi }, i = 0, . . . , n , con nudos
distintos xi , existe un u
nico polinomio de grado menor o igual que n, que indicamos por
Q
on de los valores yi en los nudos xi , tal que :
n y llamamos polinomio de interpolaci
Y
(xi ) = yi

i = 0, . . . , n

(1.2)

En caso de que los {yi , i = 0, . . . , n} representen los valores alcanzados por una funcion
Q
continua f , n se llama polinomio de interpolaci
on de f (abreviadamente, interpolante
Q
de f ) y sera denotado por n f.
Demostracion. Para verificar la unicidad procedemos por reduccion al absurdo. SupongQ
Q
amos que existan dos polinomios distintos de grado n, n y n , ambos satisfaciendo la
Q
Q
relacion nodal 1.2. Su diferencia, n n , sera un polinomio de grado n que se anula

en n + 1 puntos distintos. Debido a un teorema de Algebra


bien conocido, tal polinomio
Q
Q
debera anularse identicamente y entonces n coincidir con n .

Ahora analizaremos el polinomio de Lagrange.

El problema de encontar un polinomio de primer grado que pase por los puntos disjuntos (x0 , y0 ) y (x1 , y1 ) es el mismo que el de aproximar una funcion f , para la cual
f (x0 ) = y0 y f (x1 ) = y1 por medio de un polinomio de primer grado que interpole los
valores de f en los puntos dados o que coincida con ellos. Primero definiremos las funQ
x x1
x x0
ciones : 0 (x) =
y 1 (x) =
. y se define entonces (x) = 0 (x)f (x0 ) +
x0 x1
x1 x0
1 (x)f (x1 ), como 0 (x0 ) = 1, 0 (x1 ) = 0, 1 (x0 ) = 0 y 1 (x1 ) = 1, tenemos:
Q
Q
(x0 ) = 1f (x0 )+0f (x1 ) = f (x0 ) = y0 y
(x1 ) = 0f (x0 )+1f (x1 ) = f (x1 ) = y1 .
Q
As que
es la u
nica funcion lineal que pasa por (x0 , y0 ) y (x1 , y1 ) .
A fin de generalizar el concepto de interpolacion lineal, consideremos la construccion de

un polinomio de grado menor o igual que n que pasa por los n+1 puntos: (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn )

1.

Interpolaci
on

9
Y

y=f(x)
y = f(x )
1
1

y= f(x )

y=

P
n

y En este caso para cada k = 0, 1, . . . , n construimos una funcion k Pn con la


propiedad
k (xj ) = jk

1
=
0

Si j = k
Caso contrario

donde jk es el simbolo de Kronecker.

Para satisfacer k (xj ) = 0 para cada j 6= k se requiere que el numerador de k (x)


contenga el termino
(x x0 )(x x1 ) . . . (x xk1 )(x xk+1 ) . . . (x xn ).
Para satisfacer k (xj ) = 1, el denominador de k (x) debe coincidir con este termino
cuando se evalue en x = xk . Es decir ,
k (x) =

(x x0 ) . . . (x xk1 )(x xk+1 ) . . . (x xn )


(xk x0 ) . . . (xk xk1 )(xk xk+1 ) . . . (xk xn )

En la siguiente figura se muestra un dibujo de la grafica de un k com


un.
j

x
0

...
1

x
k-1

x
k

. ..
k+1

x
n-1

X
n

1.

Interpolaci
on

10

El polinomio de interpolacion se describe facilmente ahora que conocemos la forma de k .


Este polinomio, denominado n-
esimo polinomio de Lagrange se define acontinuacion:
Q
Tomando la propiedad de la proposicion1.1.1 : (xi ) = yi ,
i = 0, . . . , n.
n

n
Q
P
Este polinomio esta dado por: (x) = y0 0 (x) + . . . + yn n (x) =
yk k (x)
n

k=0

donde para cada k = 0, 1, . . . , n.

k (x) =

x xj
xk xj
j=0j6=k

En efecto, este polinomio satisface las condiciones de interpolacion 1.2, puesto que :
n
n
Y
X
X
(xi ) =
yk k (xi ) =
yk ik = yi
n

k=0

i = 0, . . . , n

k=0

Ejemplo 1.1.2. Consideremos la siguiente funcion y = f (x) = sen x en [0,2, 1].


a) Usar los nodos x0 = 0,2 y x1 = 1 para construir un polinomio de interpolacion de
Lagrange 1 (x) y calcular f (0,6).
b)Usar los nodos x0 = 0,4 y x1 = 0,8 para costruir un polinomio de interpolacion de
Lagrange 1 (x) y calcular f (0,6).
Soluci
on. a) Como x0 = 0,2 y x1 = 1, entonces y0 = 0,198669 y y1 = 0,841471
x1
luego 1 (x) = 0,198669 0,21
+ 0,841471 x0,2
, o sea que 1 (x) = 0,248331(x 1) +
10,2

1,051839(x 0,2) y f (0,6) = 0,520068.


b) Como x0 = 0,4 y x1 = 0,8, entonces y0 = 0,389418 y y1 = 0,717356 luego 1 (x) =
x0,8
x0,4
0,389418 0,40,8
+0,717356 0,80,4
, o sea que 1 (x) = 0,973545(x0,8)+1,79339(x0,4)

y f (0,6) = 0,5533387.
En la figura 1.2 se observa que 1 aproxima mejor a y = f (x) que 1 .

1.

Interpolaci
on

11

0.8

0.8

y = f(x)
0.6

0.6

0.4

0.4

0.2

0.2

0.2

0.4

0.6

0.8

y=

0.2

0.4

f(x)

0.6

0.8

Figura 1.2: Comparacion entre los polinomios de Lagrange 1 (a la izquierda) y 1 (a


la derecha) de la funcion y = f (x) = sen(x).

Ejemplo 1.1.3. Para el siguiente conjunto de Pares: {(1, 0), (2, 1), (3, 2), (4, 5)},
construir el polinomio de interpolacion.
Soluci
on. Los polinomios de Lagrange para dichos pares de puntos viene dados por
(x 2)(x 3)(x 4)
(1 2)(1 3)(1 4)
(x 1)(x 3)(x 4)
1 (x) =
(2 1)(2 3)(2 4)
(x 1)(x 2)(x 4)
2 (x) =
(3 1)(3 2)(3 4)
(x 1)(x 2)(x 3)
3 (x) =
(4 1)(4 2)(4 3)

0 (x) =

1 3
(x 9x2 + 26x 24)
6
1
= (x3 8x2 + 19x 12)
2
1 3
=
(x 7x2 + 14x 8)
2
1
= (x3 6x2 + 11x 6)
6
=

Y el polinomio de interpolacion de Lagrange es:


Q
(x) = y0 0 (x) + y1 1 (x) + y2 2 (x) + y3 3 (x) = 0 0 (x) + (1) 1 (x) + 2 2 (x) +
3

(5)3 (x) Por lo que tenemos


Y
7 3
98
(x) =
x + 16x2 x + 19.
3
3
3

Utilizando el resultado siguiente podemos evaluar el error obtenido reemplazando f por


Q
su polinomio de interpolacion n f .
Proposici
on 1.1.2 ((El error de la interpolacion Lagrangiana).). Sea I el intervalo
acotado y consideremos n + 1 nudos distintos de interpolaci
on
{xi , i = 0, . . . , n} en I. Sea f continuamente diferenciables hasta el orden n + 1 en I.
Entonces x I

I tal que:
En f (x) = f (x)

Y
n

f n+1() Y
f (x) =
(x xi ).
(n + 1)! i=0

(1.3)

1.

Interpolaci
on

12

Demostracion. Observe primero que, si x = xk para k = 0, 1, . . . , n entonces En f (xk ) =


0. Si x 6= xk para cualquier k = 0, 1, . . . , n defina la funcion g para t [a, b] por medio
de
g(t) = f (t)

f (t) [f (x)

= f (t)

f (t) [f (x)

Puesto que f C

n+1

(I), y

Q
Q

(tx0 )(tx1 )...(txn )


f (x)] (xx
0 )(xx1 )...(xxn )

f (x)]

n
Q

i=0

(txi )
(xxi )

C (I), se deduce que g C n+1 (I). Cuando t = xk

tendremos
g(xk ) = f (xk )

f (xk ) [f (x)

f (x)]

Ademas: g(x) = f (x)


Q
f (x)] = 0.
n

f (x) [f (x)

n
Y
(xk xi )

(x xi )

i=0

f (x)]

n
Q

i=0

= 0 [f (x)

f (x)] 0 = 0

(xxi )
(xxi )

= f (x)

f (x) [f (x)

Por tanto g C n+1 (I) y g se anula en los n + 2 n


umeros distintos x, x0 , x1 , . . . , xn .
Conforme al teorema generalizado de Rolle, existe en I tal que g (n+1) () = 0. Por
tanto,
0 = g (n+1) () = f (n+1) () (

f )(n+1) () [f (x)

Por ser

n+1

f (x)]

f (x) un polinomio de grado a lo mas n , entonces (

cero, Asimismo,

n
Q

i=0

d
dtn+1
Q

" n
#t=
Y (t xi )
(x xi )
i=0
(1.4)

f (x))(n+1) sera igual a

(txi )
(xxi )

es un polinomio de grado (n + 1) y por tanto ,



n
Y
(t xi )
1
= Qn
tn+1 + ( termino de menor grado en t)
(x

x
)
(x

x
)
i
i
i=0
i=0
n
dn+1 Y (t xi )
(n + 1)!
= Qn
n+1
dt
(x xi )
i=0 (x xi )
i=0

La ecuacion (1.4) ahora se convierte en

0 = f (n+1) () 0 [f (x)

Y
n

y luego al despejar f (x)

f (x), tendremos

(n + 1)!
f (x)] Qn
i=0 (x xi )

f (x)

Y
n

f n+1 () Y
(x xi ).
f (x) =
(n + 1)! i=0

1.

Interpolaci
on

13

Ejemplo 1.1.4. Calcular la expresion del error interpolacion al aproximar la funcion


f (x) = sen(x) en el intervalo [0,2, 1] interpolando en los puntos 0,4, 0,8 y acotarlo
superiormente.
Soluci
on. El error de interpolacion viene dado por E1 f (x) = sen()
(x 0,4)(x 0,8),
2
el valor maximo del sen() es 0.841470. Por otro lado el valor donde alcanza el maximo
el polinomio de error en [0,2, 1] es x = 1, por tanto la cota del error que obtenemos es
|E1 f (x)|

0,841470
(1 0,4)(1 0,8) = 0,050488
2

El resultado 1.3 puede especificarse mejor en el caso de una distribucion uniforme de


nudos, esto es, cuando xi = xi1 + h para i = 1, . . . , n, para un h > 0 y un x0 dados. Se
tiene

n

Y

hn+1


(x x1 ) n!


4

(1.5)

t=0

y, por consiguiente :

max |En f (x)|


xI

maxxI |f n+1(x)| n+1


h
4(n + 1)

(1.6)

Desafortunadamente, no podemos deducir de 1.6 que el error tienda a 0 cuando n 0,


a pesar de que hn+1 /[4(n + 1)] tiende a 0. De hecho, existen funciones f para las cuales
el limite puede ser incluso infinito, esto es,
lm max |En f (x)| =

n xI

Este sorprendente resultado indica que, haciendo crecer el grado n del polinomio de
interpolacion, no necesariamente obtenemos una mejor reconstruccion de f .

1.1.2.

Fen
omeno de Runge

Aparentemente, la cota del error de interpolacion


max |En f (x)|
xI

maxxI |f n+1(x)| n+1


h
4(n + 1)

parece indicar que el error decrecera conforme se introduzcan mas nodos de interpolacion
(n ). Sin embargo, es importante notar que eso no es cierto, es decir, no siempre
se cumple que
lm |En f (x)| = 0,

1.

Interpolaci
on

14

ya que la cota depende de que las derivadas de la funcion f (x) no crezcan demasiado rapido. Este hecho, se expresa en la existencia funciones para las que la sucesion
Q
{ f (x)} diverge conforme n crece. Por ejemplo , Runge demostro en 1901 que para la
n
Q
funcion (llamada de Runge) f (x) = 1/(1 + x2), la sucesion { f (x)}, de polinomios que
n

la interpolacion con n + 1 puntos distribuidos uniformemente en el intervalo I = [5, 5],


diverge conforme n crece indefinidamente.

Sin embargo, Krylov probo en 1962 que si la funcion f (z), de variable compleja, es
analtica en la region definida por la interseccion de los dos crculos de radio b a
centrados en z = a y z = b, entonces la interpolacion de la funcion f (x), de variable
real, en el intervalo [a; b] converge conforme el n
umero de nodos, n, en dicho intervalo
tiende a infinito, es decir,
lm |f (x)

f (x)| = 0

Pero la funcion de Ruge no es analitica ya que posee dos polos complejos, z = i, y por
tanto, no cumple las hipotesis del teorema de Krylov en el intervalo [5, 5].
Estas dificultades de convergencia con el proceso de interpolacion se conocen con el
nombre de fenomeno de Runge. Desde un punto de vista practico este fenomeno se
refleja en grandes oscilaciones del polinomio interpolador, sobre todo en los extremos
del intervalo de interpolacion. Una justificacion intuitiva de este comportamiento es que
Q
como el polinomio de interpolacion n f (x), de grado n, tiene n ceros, que en muchos

casos se encuentran dentro del intervalo de integracion, incluso si la funcion original


f (x) no tiene ceros en el mismo, este se ve obligado a realizar grandes oscilaciones cerca
de los extremos del intervalo de interpolacion. La siguiente figura muestra la funcion de
Runge y su polinomio de interpolacion para los intervalos [5; 5]

1.1.3.

Interpolaci
on de Chebyshev

El fenomeno de Runge puede evitarse si se usa una distribucion apropiada de los nudos.
En particular, en un intervalo arbitrario [a, b], podemos considerar los llamados nudos
de Chebyshev
xi =

a+b ba
+
x
bi , donde x
bi = cos(i/n),
2
2

(obviamente, xi = x
bi ,

i = 0, . . . , n cuando [a, b] = [1, 1])

i = 0, . . . , n

(1.7)

1.

Interpolaci
on

15

*
-5

*
0

Figura 1.3: La figura muestra la grafica de la funcion f (x) = 1/(1 + x2 )(Lnea verde) y
su polinomio de interpolacion (linea celeste) de grado 10 (11 nudos)

En efecto para esta distribucion especial de nudos es posible probar que, si f es una
Q
funcion continua y diferenciable en [a, b], n f converge a f cuando n para todo
x [a, b].

Los nudos de Chebyshev, que son las abscisas de nudos equiespaciados sobre la semicircunferencia unidad, estan en el interior de [a, b] y se acumulan cerca de los puntos
extremos de ese intervalo.
Otra distribucion no uniforme de nudos en el intervalo (a, b), que comparten las mismas
propiedades de convergencia que los nudos de Chebyshev, viene proporcionada por:


a+b ba
2i + 1
xi =
+
cos
i = 0, . . . , n
(1.8)
2
2
n+1 2
Ahora veremos los polinomios de Chebyshev , que son denotados por {Tn+1 (x)}, donde
Tn+1 (x) = cos((n + 1) arc cos(x)). La forma mas facil de construirlos es mediante la
relacion de recurrencia:
T0 (x) = 1, T1 (x) = x, Tn+1 (x) = 2xTn (x) Tn1 (x),

n = 1, 2, . . .

Ejemplo 1.1.5. Considerando de nuevo la funcion f del fenomeno de Runge, encontraremos los nudos de Chebyshev y su polinomio de interpolacion en dichos nodos.
Soluci
on. Para calcular los nudos haremos uso de la ecuacion (1.7) la cual se muestra
en la siguiente tabla. La siguiente figura muestra la comparacion entre el polinomio de
Chebychev y el fenomeno de Runge de la funcion f .

1.

Interpolaci
on

1.1.4.

16

xi

-5

-4.75528258

-4.04508497

-2.93892626

-1.54508497

1.54508497

2.93892626

4.04508497

10

4.75528258

11

Interpolaci
on trigonom
etrica

Queremos aproximar una funcion f : [0, 2] C es decir satisfaciendo f (0) = f (2)


por un polinomio trigonometrico fe que interpole a f en los n + 1 nudos xj = 2j/(n +
1),

j = 0, . . . , n es decir,

fe(xj ) = f (xj ), para j = 0, .., n

(1.9)

El interpolante fe se obtiene mediante una combinacion lineal de senos y cosenos.

En particular, si n es par, fe tendra la forma:


M

a0 X
fe(x) =
+
[ak cos(kx) + bk sen(kx)]
2
k=1

donde M = n/2, mientras que, si n es impar, fe tendra la forma:

(1.10)

a0 X
fe(x) =
+
[ak cos(kx) + bk sen(kx)] + aM +1 cos((M + 1)x)
2

(1.11)

k=1

donde M = (n 1)/2. Podemos escribir 1.10 como:


fe(x) =

M
X

k=M

ck eikx

(1.12)

1.

Interpolaci
on

17

*
-5

*
0

Figura 1.4: La figura muestra la grafica de la funcion f (x) = 1/(1 + x2 )(Lnea verde
punteada) , su polinomio de interpolacion (linea celeste) de grado 10 (11 nudos) y el
polinomio de Chebychev (linea roja).

siendo i la unidad imaginaria. Los coeficientes complejos ck estan relacionados con los
coeficientes ak y bk (tambien complejos) como sigue:
ak = ck + ck

bk = i(ck ck ),

k = 0, . . . , M

(1.13)

En efecto, de la ecuacion de Euler se sigue que eikx = cos(kx) + i sen(kx) y


M
P

ck eikx =

k=M

M
P

ck (cos(kx) + i sen(kx))

k=M
M
P

[ck (cos(kx) + i sen(kx)) + ck (cos(kx) i sen(kx))] + c0

k=1

Por consiguiente deducimos 1.10, gracias a las relaciones 1.13.


Analogamente, cuando n es impar, 1.11 resulta
fe(x) =

M
+1
X

ck eikx

(1.14)

k=(M +1)

donde los coeficientes ck para k = 0, . . . , M son los mismos de antes, mientras que
cM +1 = c(M +1) = aM +1 /2. En ambos casos podramos escribir:
M +

fe(x) =

ck eikx

(1.15)

k=(M +)

con = 0 si n es par y = 1 si n es impar. Si f fuese real, sus coeficientes ck satisfarian


ck = ck ; de 1.13 se sigue que los coeficientes ak y bk son todos reales.

1.

Interpolaci
on

18

A causa de su analogia con las series de Fourier, fe se llama serie de Fourier discreta.

Imponiendo la condicion de interpolacion en los nudos xj = jh, con h = 2/(n + 1),


hallamos que
M +

ck eikjh = f (xj ),

j = 0, . . . , n

(1.16)

k=(M +)

Para el calculo de los coeficientes {ck } multipliquemos las ecuaciones 1.16 por eimxj =
eimjh , donde m es un entero entre 0 y n, y luego sumemos con respecto a j:
n
X

M +

ikjh imjh

ck e

j=0 k=(M +)

n
X

f (xj )eimjh

(1.17)

j=0

Ahora requerimos la siguiente igualdad:


n
X

eijh(km) = (n + 1)km

j=0

Esta identidad es obviamente cierta si k = m. Cuando k 6= m tenemos:


n
X

eijh(km) =

j=0

1 (ei(km)h )n+1
1 ei(km)h

El numerador del segundo miembro es nulo porque:


1 ei(km)h(n+1) = 1 ei(km)2
= 1 cos((k m)2) i sen((k m)2)
Por consiguiente, de 1.17 obtenemos la siguiente expresion explcita para los coeficientes
de fe

1.2.

1 X
ck =
f (xj )eikjh,
n + 1 j=0

k = (M + ), . . . , M +

(1.18)

M
etodo de Newton o de diferencias divididas

El metodo de Newton de diferencias divididas es otra forma de obtener el polinomio


interpolador. En este metodo el polinomio interpolador se escribe de la forma
Y

(x) = a0 + a1 (x x0 ) + a2 (x x0 )(x x1 ) + . . . + an (x x0 )(x x1 ) . . . (x xn1 )

para unas constantes apropiadas a0 , a1 , . . . , an . Estas constantes se obtienen calculando


las llamadas diferencias divididas.

1.

Interpolaci
on

19

Para determinar la primera de las constantes, a0 ,devemos de evaluar

Q
(x) en x0 queda
n

solo el termino constante a0 , es decir


a0 =

Y
(x0 ) = f (x0 )
0

De manera similar, se evalua en los puntos x1 , . . . , xk


Q
f (x1 ) =
(x1 ) = f (x0 ) + a1 (x1 x0 )
1

(x0 )
a1 = f (xx11)f
x0
Q
Q
f (x2 ) =
(x2 ) = (x1 ) + a2 (x2 x0 )(x2 x1 )
1 Q
f (x2 ) (x2 )

a2 = (x2 x0 )(x1 2 x1 )
..
.
Q
Q
f (xk ) =
(xk ) =
(xk ) + ak (xk x0 )(xk x1 ) . . . (xk xk1 )
k

k1
Q
f (xk )
(xk )

ak =

k1

(xk x0 )(xk x1 )...(xk xk1 )

Para indicar la dependencia de ak de x0 , x1 , . . . , xk y f (x0 ), f (x1 ), . . . , f (xk ) escribimos


ak := f [x0 , x1 , . . . , xk ]
Esta expresion se denomina la k-
esima diferencia dividida de f (x) en los puntos
x0 , x1 , . . . , xk , y es igual al coeficiente principal del polinomio que interpola f (x) en
dichos puntos.
Podemos encontrar una forma mas conveniente de calcular las diferencias divididas, en
lugar del metodo recursivo anterior. Sabemos que
a0 = f (x0 )
a1 =

f [x0 ]

f (x1 )f (x0 )
x1 x0

f [x0 , x1 ]

Las diferencias de orden mayor pueden construirse utilizando la formula


ak =

f [x1 , . . . , xk ] f [x0 , . . . , xk1 ]


f [x0 , x1 , . . . , xk ]
(xk x0 )

Resumiendo, la forma de Newton del polinomio de interpolacion en los puntos x0 , x1 , . . . , xn


para f (x) es
Q
(x) = f [x0 ] + f [x0 , x1 ](x x0 ) + f [x0 , x1 , x2 ](x x0 )(x x1 ) + . . .
n

+f [x0 , x1 , . . . , xn ](x x0 ) . . . (x xn1 )


n
n1
P
Q
= f [x0 ] +
f [x0 , . . . , xk ]
(x xj )
k=1

j=0

1.

Interpolaci
on

20

donde f [x0 , x1 , . . . , xk ] =

f [x1 ,...,xk ]f [x0 ,...,xk1 ]


,
(xk x0 )

k = 1, 2, . . . , n

Esta u
ltima expresion se utiliza para generar las diferencias divididas en forma simple
por medio de una tabla denominada tabla de diferencias divididas. Por ejemplo,
para el caso n = 3, esta tabla queda de la siguiente manera
x

f []

x0

f [x0 ]

f [, ]

f [x0 , x1 ] =
x1

f [x0 , x1 , x2 ] =

x3

f [x1 ,x2 ]f [x0 ,x1 ]


x2 x0

f [x2 ]f [x1 ]
x2 x1

f [x2 ]

f [x0 , x1 , x2 , x3 ]
f [x1 , x2 , x3 ] =

f [x2 , x3 ] =

f [, , , ]

f [x1 ]f [x0 ]
x1 x0

f [x1 ]
f [x1 , x2 ] =

x2

f [, , ]

f [x2 ,x3 ]f [x1 ,x2 ]


x3 x1

f [x3 ]f [x2 ]
x3 x2

f [x3 ]

Ejemplo 1.2.1. Encontrar, por el metodo de las diferencias divididas de Newton, el


polinomio de interpolacion de la funcion f (x) que toma los valores {0, 1, 1, 2} en los
nudos {1, 3, 4, 5}.
Soluci
on. Teniendo encuenta la tabla anterior obtenemos:
f [x1 ] f [x0 ]
f (x1 ) f (x0 )
10
1
=
=
=
x1 x0
x1 x0
31
2
f [x2 ] f [x1 ]
f (x2 ) f (x1 )
1 1
f [x1 , x2 ] =
=
=
= 2
x2 x1
x2 x1
43
f [x3 ] f [x2 ]
f (x3 ) f (x2 )
2 (1)
f [x2 , x3 ] =
=
=
=3
x3 x2
x3 x2
54
f [x1 , x2 ] f [x0 , x1 ]
2 1/2
5
f [x0 , x1 , x2 ] =
=
=
x2 x0
41
6
f [x2 , x3 ] f [x1 , x2 ]
3 (2)
5
f [x1 , x2 , x3 ] =
=
=
x3 x1
53
2
f [x1 , x2 , x3 ] f [x0 , x1 , x2 ]
5/2 (5/6)
5
f [x0 , x1 , x2 , x3 ] =
=
=
x3 x0
51
6

f [x0 , x1 ] =

Por lo que el polinomio de interpolacion es :


Y 1
5
5
1
= (x 1) (x 1)(x 3) + (x 1)(x 3)(x 4) = (5x3 45x2 + 118x 78)
2
6
6
6
3

1.

Interpolaci
on

21

Teorema 1.2.1 ((El error del polinomio en forma de Newton)). Supongamos que f
C k [a, b] y x0 , x1 , . . . , xn son n
umeros distintos en [a, b]. Entonces existe un n
umero en
(a, b) con
f [x0 , x1 , . . . , xn ] =
Demostracion. Sea g(x) = f (x)

f (n) ()
n!

Q
Q
(x). Puesto que f (xk ) = (xk ) para cada k =
n

0, 1, . . . , n, la funcion g tiene n + 1 ceros distintos en [a, b]. Conforme al teorema generalizado de Rolle, existe en (a, b) un n
umero con g (n) () = 0, tal que
0 = f (n) () (

Y
)(n) ()
n

Por ser

un polinomio de grado n cuyos coeficiente principal es f [x0 , x1 , . . . , xn ],

Y
(x))(n) = n!f [x0 , x1 , . . . , xn ]
n

para todos los valores de x. En consecuencia,


f [x0 , x1 , . . . , xn ] =

1.3.

f (n) ()
n!

Interpolaci
on lineal a trozos

El interpolante de Chebyshev proporciona una aproximacion precisa de funciones regulares f cuya expresion es conocida. Cuando f no es regular o cuando f solo se conoce
por sus valores en un conjunto de puntos (que no coincide con los nudos de Chebyshev),
uno puede recurrir a un metodo de interpolacion diferente, se llama interpolacion lineal
compuesta.
La interpolacion lineal a trozos es la mas simple de las interpolaciones. Supongamos que
se quiere calcular el valor una funcion f (x) en un punto dado , la cual conocemos una
distribucion de nudos (no necesariamente uniforme) x0 < x1 < . . . < xn y denotemos
por Ii = [xi , xi+1 ] tal que [xi , xi+1 ].
Aproximamos f por una funcion continua en cada Ii , esta dada por el segmento que une
los puntos (xi , f (xi )) y (xi+1 , f (xi+1 )) (ver figura 1.5 ). Esta funcion lineal que aproxima

1.

Interpolaci
on

22

a f en sera denotada por H


on lineal polinomica a trozos de f
1 f , se llama interpolaci
y su expresion es :
H
1 f (x) = f (xi ) +

f (xi+1 ) f (xi )
(x xi )
xi+1 xi

para x Ii

(1.19)

y=f(x)

x0

....

i+1

...x

n-1

xn

Figura 1.5: La grafica de la funcion f y su interpolacion lineal a trozos.

Proposici
on 1.3.1. Si f C 2 (I), donde I = [x0 , xn ], entonces
max |f (x) H
1 f (x)|
xI

H2
max |f (x)|
8 xI

Ejemplo 1.3.1. El n
umero de turistas entrando a Chiclayo en el mes de agosto siguio
la siguiente tendencia.
dia

16

23

27

31

N de turistas

35

53

110

75

40

97

Encuentre el Polinomio en cada intervalo.

1.

Interpolaci
on

23

Soluci
on. Utilizando la ecuacion 1.19, obtenemos:
Ii

H
Q

f (x)

1.4.

[1, 9]

35 + 2,25(x 1)

[9, 16]

53 + 8,1429(x 9)

[16, 23]

110 5(x 16)

[23, 27]

75 8,75(x 23)

[27, 31]

40 + 14,25(x 27)

Aproximaci
on por funciones spline

La palabra inglesa spline denota un cierto instrumento flexible usado en dibujo tecnico
que sirve para trazar curvas suaves.

Del mismo modo que hemos hecho para la interpolacion lineal a trozos, tambien se
puede definir la interpolacion polinomica a trozos de grado n 2. Por ejemplo, la interpolante cuadratica a trozos H
on continua que, sobre cada intervalo
2 f es una funci
Ii , reemplaza a f por su interpolacion polinomica en los puntos extremos de Ii y en su
punto medio. Si f C 3 (I), el error f H
aximo decae como H 3
2 f en la norma del m
si H tiende a cero.

El principal inconveniente de esta interpolacion a trozos es que H


k f con k > 1, no
es mas que una funcion globalmente continua. En realidad, en varias aplicaciones, es deseable tener una aproximacion por funciones regulares que tengan al menos una derivada
continua.

1.

Interpolaci
on

24

Con este objetivo definiremos funci


on Spline.
Definici
on 1.4.1 ((Funcion spline)). Una funci
on spline de grado k con nodos en
x0 , x1 , . . . , xn es una funcion Sk (x) formada por varios polinomios, cada uno de ellos
definido sobre un sbintervalo y que se unen entre s bajo ciertas condiciones de continuidad. Las condiciones que debe cumplir Sk (x) son las siguientes:
En cada intervalo Ii , Sk (x) es un polinomio de grado gr[Sk (x)] k,
Sk (x) admite derivadas continuas de orden k 1 en [x0 , xn ]
En general, puede crearse funciones spline de grado k, pero la interpolacion mas frecuente
es a traves de funciones spline de grado 3, es decir , de splines c
ubicos.
Dado que a partir de ahora vamos a trabajar con spline c
ubicos, vamos a concretar la
definicion 1.4.1 al caso de k = 3.

Definici
on 1.4.2 ((Funcion spline c
ubico)). dado el conjunto de nodos x0 , x1 , . . . , xn ,
diremos que la funcion S3 es un spline c
ubico si cumple las siguientes condiciones:
1. Sobre cada Ii , para i = 0, . . . , n 1, s3 es un polinomio de grado 3 que interpola
los pares de valores (xj , f (xj )) para j = i, i + 1 ( el cual sera llamado spline de
interpolacion);
2. S3 tiene derivadas primera y segunda continuas en los nudos xi , i = 1, . . . , n 1
Para su completa determinacion, necesitamos 4 condiciones sobre cada intervalo (por
los cuatro coeficientes del polinomio de grado tres), por consiguiente un total de 4n
ecuaciones que podemos proporcionar como sigue:
n + 1 condiciones provienen del requerimiento de interpolacion en los nudos xi , i =
0, . . . , n
S3 (xi ) = f (xi ) = yi

i = 0, 1, . . . , n;

n 1 ecuaciones adicionales se siguen del requerimiento de continuidad del polinomio en los nudos interiores x1 , . . . , xn1
S3 |[xi1 ,xi] (xi ) = S3 |[xi,xi+1 ] (xi )

i = 1, . . . , n 1

1.

Interpolaci
on

25

2(n 1) nuevas ecuaciones se obtienen exigiendo que las derivadas primera y


segunda sean continuas en los nudos interiores.
S3 |[xi1 ,xi] (xi ) = S3 |[xi,xi+1 ] (xi )
S3 |[xi1,xi ] (xi ) = S3 |[xi,xi+1 ] (xi )

i = 1, . . . , n 1

Dado que tenemos un total de 4n 2 condiciones, debemos imponer dos nuevas condiciones para poder determinar los coeficientes de la funcion spline y son:
S3 (x0 ) = 0,

S3 (xn ) = 0

(1.20)

La funcion S3 que obtenemos de esta forma se llama spline c


ubico natural de interpolacion.
Si queremos construir el spline cubico natural de interpolacion de determinada funcion
f , aplicamos las condiciones a los polinomios c
ubicos:
S3 |[xi,xi+1 ] (x) = ai + bi (x xi ) + ci (x xi )2 + di (x xi )3
para cada i = 0, 1, . . . , n 1. Esta claro que : S3 |[xi,xi+1 ] (xi ) = ai = f (xi ) y si se aplica
la condicion de continuidad ,
ai = S3 |[xi ,xi+1] (xi ) = S3 |[xi1 ,xi ] (xi ) = ai1 + bi1 (xi xi1 ) + ci1 (xi xi1 )2 + di1 (xi xi1 )3 ,
para cada i = 1, . . . , n 1, hacemos hi1 = xi xi1 , para cada i = 1, . . . , n .
Si tambien definimos an = f (xn ) entonces la ecuacion resulta
ai = ai1 + bi1 hi1 + ci1 h2i1 + di1 h3i1

(1.21)

sera valida para cada i = 1, . . . , n. De manera analoga; definamos bn = S3 |(xn ) y observe


que
S3 |[xi ,xi+1] (x) = bi + 2ci (x xi ) + 3di (x xi )2
significa que: S3 |[xi,xi+1 ] (xi ) = bi , para cada i = 0, 1, . . . , n 1
al aplicar la condicion de la primera derivada obtenemos :
bi = S3 |[xi ,xi+1] (xi ) = S3 |[xi1 ,xi ] (xi ) = bi1 + 2ci1 (xi xi1 ) + 3di1(xi xi1 )2 , para cada i = 1, . . . , n, si hacemos hi1 = xi xi1 ; para cada i = 1, . . . , n; de esto tenemos:
bi = bi1 + 2ci1 hi1 + 3di1 h2i1

i = 1, . . . , n

(1.22)

1.

Interpolaci
on

26

Al definir cn = S3 (xn )/2 y aplicar la segunda derivada, se obtiene otra relacion entre
los coeficientes de S3 |[xi ,xi+1 ] . En este caso, para cada i = 1, . . . , n
ci = ci1 + 3di1 hi1

(1.23)

Al despejar di1 en la ecuacion (1.23) y sustituir este valor en las ecuaciones (1.21) y
(1.22), para cada i = 1, . . . , n se obtiene las ecuaciones
h2i1
ai = ai1 + bi1 hi1 +
(2ci1 + ci )
3

(1.24)

bi = bi1 + hi1 (ci1 + ci )

(1.25)

La relacion final que incluye los coeficientes se obtiene resolviendo la ecuacion correspondiente en la forma de la ecuacion (1.24), primero para bi1
bi1 =

1
hi1

(ai ai1 )

hi1
(2ci1 + ci )
3

(1.26)

y entonces con una reduccion de indice para bi2


bi2 =

1
hi2

(ai1 ai2 )

hi2
(2ci2 + ci1 )
3

(1.27)

Cuando sustituimos (1.26) y (1.27) en (1.25), con el ndice reducido en 1, obtenemos el


sistema de ecuaciones lineales
hi2 ci2 + 2(hi2 + hi1 )ci1 + hi1 ci =

3
hi1

(ai ai1 )

3
hi2

(ai1 ai2 )

(1.28)

para cada i = 2, . . . , n
Ahora debemos encontrar los valores de {ci }ni=1 ya que estas proporcionan el resto las
constantes {bi }ni=1 partiendo de la ecuacion (1.26) y {di }ni=1 de la ecuacion (1.23) para
construir los polinomios c
ubicos.
Ahora utilizaremos las ecuaciones (1.20), se tiene cn = S3 (xn )/2 = 0 y que
0 = S3 |[x0 ,x1 ] (x0 ) = 2c0 + 6d0 (x0 x0 ) asi que c0 = 0.
Las dos condiciones c0 = 0 y cn = 0 junto con las ecuaciones (1.28) produce un sistema
lineal descrito por la ecuacion vectorial AX = b, donde A es la matriz tridiagonal de

1.

Interpolaci
on

27

orden (n + 1) (n + 1)

AX
1

h0 2(h0 + h1 )

h1

...
..
.

0
..
.

h2

0
..
.

h1
..
.

2(h1 + h2 )

hn2

2(hn2 + hn1 ) hn1


0

a1 )
a0 )

..

3
3
(an an1 ) hn2 (an1 an2 )
hn1

0
3
(a2
h1

3
(a1
h0

= b
c0
c1
..
.
cn

A continuacion veremos un ejemplo donde se aplica este resultado.


Ejemplo 1.4.1. Dado los puntos (0, 1), (1, e), (2, e2) y (3, e3 ) de la funcion exponencial
f (x) = ex , encontrar el spline cubico natural S3 (x).
Soluci
on. Donde observamos que : n = 3, x0 = 0, x1 = 1, x2 = 2, x3 = 3 entonces
h0 = h1 = h2 = 1 y de an = f (xn ) tenemos a0 = 1, a1 = e, a2 = e2 , a3 = e3 . Asi que la
matriz A, y los vectores b

1 0 0

1 4 1
A=

0 1 4

0 0 0

y X tienen la forma:

0
0

3(e2 2e + 1)
0
, b =

3(e3 2e2 + e)
1

1
0

de esto tenemos el siguiente sistema de ecuaciones.

c
0

c1

yX =

c2

c3

c0 = 0,
c0 + 4c1 + c2 = 3(e2 2e + 1)
c1 + 4c2 + c3 = 3(e3 2e2 + e)
c3 = 0
El sistema tiene como solucion a c0 = c3 = 0 , c1 = 0, 75685 y c2 = 5, 83007
Utilizando las ecuaciones (1.26) y (1.23) obtenemos los siguientes coeficientes: b0 =

1.

Interpolaci
on

28

1,46600, b1 = 2,22285, b2 = 8,80977, d0 = 0,25228, d1 = 1,69107 y d2 = 1,94336.


El spline c
ubico natural es descrito precisamente por :

1 + 1,46600x + 0,25228x3 ,
x [0, 1]

S3 (x) =
2,71828 + 2,22285(x 1) + 0,75685(x 1)2 + 1,69107(x 1)3 , x [1, 2]

7,38906 + 8,80977(x 2)2 1,94336(x 2)3 ,


x [2, 3]

La siguiente figura describe al spline y a la funcion f (x) = ex


e3

y= S (x)
3
x
y= e
2
e

e
1
1

1.5.

M
etodo de mnimos cuadrados

El metodo de mnimos cuadrados fue descubierta por Carl Friedrich Gauss, al predecir
la posicion de la orbita del cuerpo celeste Ceres en diciembre de 1801.
Ya hemos observado que una interpolacion de Lagrange no garantiza una mejor aproximacion de una funcion dada cuando el grado del polinomio se hace grande. Este problema puede ser superado mediante la interpolacion compuesta (tal como la interpolacion
lineal a trozos o por splines). Sin embargo, ninguna es apropiada para extrapolar informacionde los datos disponibles, esto es, para generar nuevos valores en puntos situados
fuera del intervalo donde se dan los nudos de interpolacion.
Supongamos que se dispone de los datos (xi , yi ), i = 0, . . . , n, donde ahora yi podra
representar los valores f (xi ) alcanzados por una funcion dada f en los nudos xi . Para
un entero dado m 1 (usualmente, m n) buscamos un polinomio fe Pm que
satisfaga la desigualdad

n
X
i=0

[yi fe(xi )]2

n
X
i=0

[yi pm (xi )]2

(1.29)

1.

Interpolaci
on

29

para cada polinomio pm Pm . Si existe, fe sera llamda aproximacion de mnimos cuadrados en Pm del conjunto de datos {(xi , yi ), i = 0, . . . , n}. Salvo m n, en general no
sera posible garantizar que fe(xi ) = yi para todo i = 0, . . . , n.

Poniendo

fe(x) = a0 + a1 x + . . . + am xm

(1.30)

donde los coeficientes a0 , . . . , am son desconocidos, el problema (1.29) puede ser replanteado como sigue: hallar a0 , a1 , . . . , am tales que
(a0 , a1 , . . . , am ) =
donde
(b0 , b1 , . . . , bm ) =

n
X

mn

{bi ,i=0,...,m}

(b0 , b1 , . . . , bm ),

2
[yi (b0 + b1 xi + . . . + bm xm
i )]

i=0

resolvamos este problema en el caso especial de que m = 1. Puesto que


n
X
(b0 , b1 ) =
[yi2 + b20 + b21 x2i + 2b0 b1 xi 2b0 yi 2b1 xi yi2]
i=0

la grafica de es un paraboloide convexo. El punto (a0 , a1 ) en el que alcanza su


mnimo satisface las condiciones

(a0 , a1 ) = 0,
b0

(a0 , a1 ) = 0,
b1

donde el simbolo /bj denota la derivada parcial (esto es , la tasa de variacion ) de


con respecto a bj , despues de haber congelado las restantes variaables.
Calculando explicitamente las dos derivadas parciales obtenemos
n
n
X
X
[a0 + a1 xi yi ] = 0,
[a0 xi + a1 x2i xi yi ] = 0
i=0

i=0

que es un sistema de 2 ecuaciones para las 2 incognitas a0 y a1 .


n
n
P
P
a0 (n + 1) + a1
xi =
yi ,
a0

n
P

i=0

xi + a1

i=0

Poniendo D = (n + 1)

n
P

i=0

x2i (

a0 =

n
P

x2i

i=0

i=0

n
P

(1.31)

yi xi

i=0

xi )2 , la solucion se escribe

i=0
n
P

i=0

yi

n
P

j=0

(n + 1)
a1 =

n
P

x2j

n
P

i=0

n
P

j=0

xj

n
P

xi yi

i=0

D
n
n
P
P
xi yi
xj
yi
j=0

i=0

(1.32)

1.

Interpolaci
on

30

El correspondiente polinomio fe(x) = a0 + a1 x se conoce como recta de mnimos cuadrados, o recta de regresion.

El enfoque de (1.31) puede ser generalizado de varias formas. La primera generalizacion


es al caso de m arbitrario. El sistema lineal (m + 1) (m + 1) asociado, que es simetrico,
tendra la forma:
a0 (n + 1)
n
P

a0

+a1

xi

+a1

i=0

a0

..
.
n
P

i=0

n
P

i=0
n
P

i=0

xm
i

+a1

..
.
n
P

i=0

xi

+...+

x2i

am

+ . . . + am

n
P

i=0
n
P

i=0

xm+1
+...+
i

am

xm
i

xm+1
i

..
.
n
P

i=0

x2m
i

n
P

yi

i=0
n
P

xi yi

(1.33)

i=0

..
.
n
P

i=0

xm
i yi

Cuando m = n, el polinomio de mnimos cuadrados debe coincidir con el polinomio de


Q
interpolacion de Lagrange n .
Ejemplo 1.5.1. En la siguiente tabla de datos, se quiere ajustar una cuadratica.
xi

0.05

0.11

0.15

0.31

0.46

0.52

0.70

0.74

0.82

0.98

1.17

yi

0.956

0.890

0.832

0.717

0.571

0.539

0.378

0.370

0.3606

0.242

0.104

Soluci
on. Para establacer dicha ecuacion usaremos las ecuaciones de 1.33 para m = 2
P

P
P

xi = 6,01
x2i = 4,6545
x3i = 4,1150
x4i = 3,9161

Teniendo el siguiente sisitema de ecuaciones

n + 1 = 11
P
yi = 5,905
P
xi yi = 2,1839
P 2
xi yi = 1,3357

11a0 + 6,01a1 + 4,654a2 = 5,905


6,01a0 + 4,6545a1 + 4,1150a2 = 2,1839
4,6545a0 + 4,1150a1 + 3,9161a2 = 1,3357
el resultado es: a0 = 0,998, a1 = 1,018, a2 = 0,225, de modo que con el metodo de
mnimos cuadrados se obtiene
y = 0,998 1,018x + 0,225x2

Captulo 2

Y APROXIMACION

INTERPOLACION
En el subcampo matematico del analisis numerico, se denomina interpolacion a la obtencion de nuevos puntos partiendo del conocimiento de un conjunto discreto de puntos.
En ingeniera y algunas ciencias es frecuente disponer de un cierto n
umero de puntos
obtenidos por muestreo o a partir de un experimento y pretender construir una funcion
que los ajuste.

Otro problema estrechamente ligado con el de la interpolacion es la aproximacion de una


funcion complicada por una mas simple. Si tenemos una funcion cuyo calculo resulta
costoso, podemos partir de un cierto n
umero de sus valores e interpolar dichos datos
construyendo una funcion mas simple. En general, por supuesto, no obtendremos los
mismos valores evaluando la funcion obtenida que si evaluamos la funcion original, si
bien dependiendo de las caractersticas del problema y del metodo de interpolacion usado
la ganancia en eficiencia puede compensar el error cometido. En todo caso, se trata de,
a partir de n parejas de puntos (xk ; yk ), obtener una funcion f que verifique:
f (xk ) = yk ;

k = 1, 2, ..., n

A la que se denomina funcion interpolante de dichos puntos. A los puntos xk se les llama
nodos. Algunas formas de interpolacion que se utilizan con frecuencia son la interpolacion lineal, la interpolacion polinomica (de la cual la anterior es un caso particular),
la interpolacion por medio de spline o la interpolacion polinomica de Hermite.

2.

Interpolaci
on y aproximaci
on

32

El objetivo principal de la interpolacion y aproximacion de funciones es poder estimar


valores funcionales a partir de cierto n
umero de datos iniciales. Este objetivo es fundamental ya que de el se deducen los metodos de derivacion e integracion numericas que
tendremos ocasion de ver mas adelante.

Un problema ya clasico es la construccion, o aproximacion de una funcion conocidos


unos pocos valores. Algunas referencias a este tipo de problemas se remontan al manejo de tablas trigonometricas y posteriormente logartmicas y exponenciales donde unos
pocos valores estaban tabulados y para valores intermedios era necesario un proceso de
interpolacion. Se habla en este caso de un problema de interpolacion de Lagrange. Si
ademas del valor puntual, a
nadimos informacion sobre las derivadas estamos ante una
interpolacion de Hermite.

Este Capitulo trata sobre como encontrar polinomios interpolantes, mediante la implementacion de Interfaces Graficas de Usuario (GUI) en Matlab. Los metodos numericos
de Interpolacion y aproximacion de funciones suelen ser metodos iterativos que producen
un polinomio, que se espera, que converja a la funcion.

No abordaremos la teora de cada metodo, dado que esta se encuentra en el Capitulo


III: Ecuaciones no Lineales del Seminario de Matematica Pura FUNDAMENTOS DE
ECUACIONES NO LINEALES, INTERPOLACION, DIFERENCIACION
E INTEGRACION NUMERICA PARA EL CALCULO CIENTIFICO, aqui
comparemos los resultados con la implementacion de GUIs.

2.

Interpolaci
on y aproximaci
on

2.1.

33

Comparaci
on de M
etodos Iteractivos

En esta seccion analizaremos la solucion del problema propuesto en la pag. 79 del Libro
Calculo Cientifico con Matlab y Octave cuyo enunciado es el siguiente:

Problema. Problema 3.1 (Climatologa) La temperatura del aire cerca de la tierra


depende de la concentracion K de acido carbonico (H2 CO3 ) en el. En la Tabla 3.1
recogemos, para diferentes latitudes sobre la tierra y para diferentes valores de K, la
variacion K = K K de la temperatura promedio con respecto a la temperatura
promedio correspondiente a un valor de referencia K de K. Aqu K se refiere al valor
medido en 1896, y esta normalizado a uno. En este caso podemos generar una funcion
que, sobre la base de los datos disponibles, proporcione un valor aproximado de la
temperatura promedio en cualquier latitud posible y para otros valores de K.
Soluci
on. Datos Iniciales:

x = [55 25 + 5 + 35 + 65];
y = [3,25 3,2 3,02 3,32 3,1]

2.

Interpolaci
on y aproximaci
on

Soluci
on 1. Utilizando el Metodo de Interpolacion de Lagrange.

34

2.

Interpolaci
on y aproximaci
on

Soluci
on 2. Utilizando el Metodo de Diferencias Divididas Arriba.

35

2.

Interpolaci
on y aproximaci
on

Soluci
on 3. Utilizando el Metodo de Diferencias Divididas Abajo.

36

2.

Interpolaci
on y aproximaci
on

Soluci
on 4. Utilizando el Metodo de Polinomica a Trozos - Lineal.

37

2.

Interpolaci
on y aproximaci
on

Soluci
on 5. Utilizando el Metodo de Polinomica a Trozos - Splines.

38

2.

Interpolaci
on y aproximaci
on

Soluci
on 6. Utilizando el Metodo de Polinomica a Trozos - Cubica.

39

2.

Interpolaci
on y aproximaci
on

Soluci
on 7. Utilizando el Metodo de Polinomica a Trozos - Discreta.

40

2.

Interpolaci
on y aproximaci
on

Soluci
on 8. Utilizando el Metodo de Minimos Cuadrados - Grado 2.

41

2.

Interpolaci
on y aproximaci
on

Soluci
on 9. Utilizando el Metodo de Minimos Cuadrados - Grado 3.

42

2.

Interpolaci
on y aproximaci
on

Soluci
on 10. Utilizando el Metodo de Minimos Cuadrados - Grado 4.

43

2.

Interpolaci
on y aproximaci
on

Soluci
on 11. Utilizando el Metodo de Minimos Cuadrados - Grado 5.

44

Captulo 3

CODIGO FUENTE DE LOS GUIS

3.1.

Interpolacion de Lagrange

Listing 3.1: Boton Graficar


f u n c t i o n p u s h b u t t o n 1 _ C a l l b a c k ( hObject , eventdata , handles )
g l o b a l ejes
X=str2num ( g e t ( handles . edit1 , ' s t r i n g ' ) ) ;
Y=str2num ( g e t ( handles . edit2 , ' s t r i n g ' ) ) ;
xc=min ( X ) ; xd=max( X ) ;
yc=min ( Y ) ; yd=max( Y ) ;

i f l e n g t h ( X )==l e n g t h ( Y )

a x e s ( handles . grafica )
ejes =[ xc1 xd+1 yc1 yd + 1 ] ;
nn=l e n g t h ( X ) ;

f o r i =1: nn1
i f X ( i )<X ( i +1)
k=i +1;
else
k =0;
end
end

%Metodo de l a g r a n g e g u i

i f k==nn

%G r a f i c a

p l o t ( X , Y , 'om ' ) ;
a x i s ( ejes )

3.

Codigo Fuente de los GUIS

46

x l a b e l ( 'X ' ) ; y l a b e l ( 'Y ' ) ;


g r i d on
end

h o l d on
s e t ( handles . pushbutton1 , ' e n a b l e ' , ' o f f ' )
s e t ( handles . pushbutton2 , ' e n a b l e ' , ' on ' )
else
DE LOS VECTORES' , 'AVISO ' , ' warn ' ) ;
msgbox ( 'REVISE EL TAMANO
end

Listing 3.2: Boton Calcular


f u n c t i o n p u s h b u t t o n 2 _ C a l l b a c k ( hObject , eventdata , handles )
clc
g l o b a l ejes
X=str2num ( g e t ( handles . edit1 , ' s t r i n g ' ) ) ;
Y=str2num ( g e t ( handles . edit2 , ' s t r i n g ' ) ) ;
aa=str2num ( g e t ( handles . edit3 , ' s t r i n g ' ) ) ;
n1 = l e n g t h ( X ) ;
n

= n1 1;

L = z e r o s ( n1 , n1 ) ;
i f l e n g t h ( X )==l e n g t h ( Y )
f o r k =1: n +1 ,
V = 1;
f o r j =1: n +1 ,
i f k = j ,
V = conv ( V , p o l y ( X ( j ) ) ) / ( X ( k )X ( j ) ) ;
end
end
L(k , : ) = V ;
end
C = YL ;
PX=vpa ( poly2sym ( C ) , 7 ) ;
fa=p o l y v a l ( C , aa ) ;
Pol =char ( PX ) ;

pa=num2str ( fa , ' %20.12 f ' ) ;


s e t ( handles . edit5 , ' s t r i n g ' , pa ) ;
s e t ( handles . edit4 , ' s t r i n g ' , Pol ) ;
p l o t ( X , Y , 'om ' ) ;
g r i d on
a x i s ( ejes )
h o l d on

3.

Codigo Fuente de los GUIS

drawnow
xc=min ( X ) ; xd=max( X ) ;
p l o t ( aa , fa , 'om ' ) ;
h o l d on
h2=ezplot ( PX , [ xc xd ] ) ;
s e t ( h2 , ' C o l o r ' , ' b ' , ' LineWidth ' , 2 )
t i t l e ( [ 'P( x ) = ' Pol ] , ' f o n t s i z e ' , 8 , ' f o n t w e i g h t ' , ' b o l d ' )
h o l d off
s e t ( handles . pushbutton1 , ' e n a b l e ' , ' on ' )
s e t ( handles . pushbutton2 , ' e n a b l e ' , ' o f f ' )
else
DE LOS VECTORES' , 'AVISO ' , ' warn ' ) ;
msgbox ( 'REVISE EL TAMANO
end

47

3.

Codigo Fuente de los GUIS

3.2.

48

Diferencias Divididas Abajo

Listing 3.3: Boton Graficar


f u n c t i o n p u s h b u t t o n 1 _ C a l l b a c k ( hObject , eventdata , handles )
g l o b a l ejes
X=str2num ( g e t ( handles . edit1 , ' s t r i n g ' ) ) ;
Y=str2num ( g e t ( handles . edit2 , ' s t r i n g ' ) ) ;
xc=min ( X ) ; xd=max( X ) ;
yc=min ( Y ) ; yd=max( Y ) ;

i f l e n g t h ( X )==l e n g t h ( Y )

a x e s ( handles . grafica )
ejes =[ xc2 xd+2 yc2 yd + 2 ] ;
nn=l e n g t h ( X ) ;

f o r i =1: nn1
i f X ( i )<X ( i +1)
k=i +1;
else
k =0;
end
end

%Metodo de d i f d i v a b a j o g u i

i f k==nn
%G r a f i c a
p l o t ( X , Y , 'om ' ) ;
a x i s ( ejes )
x l a b e l ( 'X ' ) ; y l a b e l ( 'Y ' ) ;
g r i d on
end
s e t ( handles . pushbutton2 , ' e n a b l e ' , ' on ' )
else
DE LOS VECTORES' , 'AVISO ' , ' warn ' ) ;
msgbox ( 'REVISE EL TAMANO
end
h o l d on

3.

Codigo Fuente de los GUIS

49

Listing 3.4: Boton Calcular


f u n c t i o n p u s h b u t t o n 2 _ C a l l b a c k ( hObject , eventdata , handles )
clc
g l o b a l ejes
X=str2num ( g e t ( handles . edit1 , ' s t r i n g ' ) ) ;
Y=str2num ( g e t ( handles . edit2 , ' s t r i n g ' ) ) ;
aa=str2num ( g e t ( handles . edit3 , ' s t r i n g ' ) ) ;
i f l e n g t h ( X )==l e n g t h ( Y )
n=l e n g t h ( X ) ;
D=z e r o s ( n , n ) ;
D ( : , 1 )=Y ' ;
%Formula de l a t a b l a de d i f e r e n c i a d i v i d i d a s h a c i a a b a j o .
f o r j =2: n
f o r k=j : n
D ( k , j ) =(D ( k , j 1)D ( k 1 ,j 1) ) / ( X ( k )X ( kj+1) ) ;
end
end
%Determinando l o s

c o e f i c i e n t e s de l o s p o l i n o
m i o s i n t e r p o l a n t e s de Newton

C=D ( n , n ) ;
f o r k=(n 1) : 1 : 1
C=conv ( C , p o l y ( X ( k ) ) ) ;
m=l e n g t h ( C ) ;
C ( m )=C ( m )+D ( k , k ) ;
end
PX=vpa ( poly2sym ( C ) , 7 ) ;
fa=p o l y v a l ( C , aa ) ;
Pol =char ( PX ) ;
x=X ( 1 ) : 0 . 1 : X ( n ) ;
t=x ; s=e v a l ( PX ) ;
p l o t ( X , Y , 'om ' ) ;
g r i d on
xc=min ( X ) ; xd=max( X ) ;
p l o t ( aa , fa , 'om ' ) ;
h o l d on
h2=ezplot ( PX , [ xc xd ] ) ;
s e t ( h2 , ' C o l o r ' , ' b ' , ' LineWidth ' , 2 )
t i t l e ( [ 'P( x ) = ' Pol ] , ' f o n t s i z e ' , 8 , ' f o n t w e i g h t ' , ' b o l d ' )
h o l d off
s e t ( handles . pushbutton1 , ' e n a b l e ' , ' on ' )
s e t ( handles . pushbutton2 , ' e n a b l e ' , ' o f f ' )
else
DE LOS VECTORES' , 'AVISO ' , ' warn ' ) ;
msgbox ( 'REVISE EL TAMANO
end
pa=num2str ( fa , ' %20.12 f ' ) ;
s e t ( handles . edit5 , ' s t r i n g ' , pa ) ;
s e t ( handles . edit4 , ' s t r i n g ' , Pol ) ;

3.

Codigo Fuente de los GUIS

3.3.

50

Diferencias Divididas Arriba

Listing 3.5: Boton Graficar


f u n c t i o n p u s h b u t t o n 1 _ C a l l b a c k ( hObject , eventdata , handles )
g l o b a l ejes
X=str2num ( g e t ( handles . edit1 , ' s t r i n g ' ) ) ;
Y=str2num ( g e t ( handles . edit2 , ' s t r i n g ' ) ) ;
xc=min ( X ) ; xd=max( X ) ;
yc=min ( Y ) ; yd=max( Y ) ;

i f l e n g t h ( X )==l e n g t h ( Y )
a x e s ( handles . grafica )
ejes =[ xc2 xd+2 yc2 yd + 2 ] ;
nn=l e n g t h ( X ) ;

f o r i =1: nn1
i f X ( i )<X ( i +1)
k=i +1;
else
k =0;
end
end
%Metodo de d i f d i v a r r i b a g u i

i f k==nn

%G r a f i c a

p l o t ( X , Y , 'om ' ) ;
a x i s ( ejes )
x l a b e l ( 'X ' ) ; y l a b e l ( 'Y ' ) ;
g r i d on
end
h o l d on
s e t ( handles . pushbutton2 , ' e n a b l e ' , ' on ' )
else
DE LOS VECTORES' , 'AVISO ' , ' warn ' ) ;
msgbox ( 'REVISE EL TAMANO
end

3.

Codigo Fuente de los GUIS

51

Listing 3.6: Boton Calcular


f u n c t i o n p u s h b u t t o n 2 _ C a l l b a c k ( hObject , eventdata , handles )
clc
g l o b a l ejes
X=str2num ( g e t ( handles . edit1 , ' s t r i n g ' ) ) ;
Y=str2num ( g e t ( handles . edit2 , ' s t r i n g ' ) ) ;
aa=str2num ( g e t ( handles . edit3 , ' s t r i n g ' ) ) ;
i f l e n g t h ( X )==l e n g t h ( Y )
n=l e n g t h ( X ) ;
D=z e r o s ( n , n ) ;
D ( : , 1 )=Y ' ;
%Formula de l a t a b l a de d i f e r e n c i a d i v i d i d a s h a c i a a r r i b a .
f o r j =2: n
f o r k=j : n
D ( k , j ) =(D ( k , j 1)D ( k 1 ,j 1) ) / ( X ( k )X ( kj+1) ) ;
end
end
%Determinando l o s

c o e f i c i e n t e s de l o s p o l i n o
m i o s i n t e r p o l a n t e de Newton

C=D ( n , n ) ;
f o r k=(n 1) : 1 : 1
C=conv ( C , p o l y ( X ( k ) ) ) ;
m=l e n g t h ( C ) ;
C ( m )=C ( m )+D ( k , k ) ;
end
PX=vpa ( poly2sym ( C ) , 7 ) ;
fa=p o l y v a l ( C , aa ) ;
Pol =char ( PX ) ;
x=X ( 1 ) : 0 . 1 : X ( n ) ;
t=x ; s=e v a l ( PX ) ;
p l o t ( X , Y , 'om ' ) ;
g r i d on
xc=min ( X ) ; xd=max( X ) ;
p l o t ( aa , fa , 'om ' ) ;
h o l d on
h2=ezplot ( PX , [ xc xd ] ) ;
s e t ( h2 , ' C o l o r ' , ' b ' , ' LineWidth ' , 2 )
t i t l e ( [ 'P( x ) = ' Pol ] , ' f o n t s i z e ' , 8 , ' f o n t w e i g h t ' , ' b o l d ' )
h o l d off
s e t ( handles . pushbutton2 , ' e n a b l e ' , ' o f f ' )
else
DE LOS VECTORES' , 'AVISO ' , ' warn ' ) ;
msgbox ( 'REVISE EL TAMANO
end
pa=num2str ( fa , ' %20.12 f ' ) ;
s e t ( handles . edit5 , ' s t r i n g ' , pa ) ;
s e t ( handles . edit4 , ' s t r i n g ' , Pol ) ;

3.

Codigo Fuente de los GUIS

3.4.

52

Interpolacion a Trozos

Listing 3.7: Boton Calcular


f u n c t i o n p u s h b u t t o n 1 _ C a l l b a c k ( hObject , eventdata , handles )
g l o b a l lin spl cub near
X=str2num ( g e t ( handles . edit1 , ' s t r i n g ' ) ) ;
Y=str2num ( g e t ( handles . edit2 , ' s t r i n g ' ) ) ;
aa=str2num ( g e t ( handles . edit3 , ' s t r i n g ' ) ) ;
xc=min ( X ) ; xd=max( X ) ;
yc=min ( Y ) ; yd=max( Y ) ;

i f l e n g t h ( X )==l e n g t h ( Y )
a x e s ( handles . grafica )
ejes =[ xc2 xd+2 yc2 yd + 2 ] ;
a x i s ( ejes )
x l a b e l ( 'X ' ) ; y l a b e l ( 'Y ' ) ;
g r i d on
h o l d on
xf=xc : 0 . 0 1 : xd ;
opcion= g e t ( handles . popupmenu1 , ' Value ' ) ;

switch opcion

case 1
msgbox ( ' E l i j a uno de l o s metodos ' , ' warn ' ) ;
case 2
pa=num2str ( lin , ' %20.10 f ' ) ;
s e t ( handles . edit5 , ' s t r i n g ' , pa ) ;
lin2=i n t e r p 1 ( X , Y , xf ) ;
p l o t ( xf , lin2 , ' C o l o r ' , ' r ' )
p l o t ( X , Y , 'om ' ) ;
p l o t ( aa , lin , ' b ' ) ;
case 3
pa=num2str ( spl , ' %20.10 f ' ) ;
s e t ( handles . edit5 , ' s t r i n g ' , pa ) ;
spl2=i n t e r p 1 ( X , Y , xf , ' s p l i n e ' ) ;
p l o t ( xf , spl2 , ' C o l o r ' , ' b ' )
p l o t ( X , Y , 'om ' ) ;
p l o t ( aa , spl , ' go ' ) ;
case 4 ;
pa=num2str ( cub , ' %20.10 f ' ) ;

3.

Codigo Fuente de los GUIS

s e t ( handles . edit5 , ' s t r i n g ' , pa ) ;


cub2=i n t e r p 1 ( X , Y , xf , ' c u b i c ' ) ;
p l o t ( xf , cub2 , ' C o l o r ' , ' g ' )
p l o t ( X , Y , 'om ' ) ;
p l o t ( aa , cub , ' r ' ) ;
case 5
pa=num2str ( near , ' %20.10 f ' ) ;
s e t ( handles . edit5 , ' s t r i n g ' , pa ) ;
near2=i n t e r p 1 ( X , Y , xf , ' n e a r e s t ' ) ;
p l o t ( xf , near2 , ' C o l o r ' , ' k ' )
p l o t ( X , Y , 'om ' ) ;
p l o t ( aa , near , ' b ' ) ;
end
h o l d on
else
DE LOS VECTORES' , 'AVISO ' , ' warn ' ) ;
msgbox ( 'REVISE EL TAMANO
end

53

3.

Codigo Fuente de los GUIS

3.5.

54

Minimos Cuadrados

Listing 3.8: Boton Graficar


f u n c t i o n p u s h b u t t o n 1 _ C a l l b a c k ( hObject , eventdata , handles )
g l o b a l ejes
X=str2num ( g e t ( handles . edit1 , ' s t r i n g ' ) ) ;
Y=str2num ( g e t ( handles . edit2 , ' s t r i n g ' ) ) ;
xc=min ( X ) ; xd=max( X ) ;
yc=min ( Y ) ; yd=max( Y ) ;

i f l e n g t h ( X )==l e n g t h ( Y )
a x e s ( handles . grafica )
ejes =[ xc1 xd+1 yc1 yd + 1 ] ;
nn=l e n g t h ( X ) ;

f o r i =1: nn1
i f X ( i )<X ( i +1)
k=i +1;
else
k =0;
end
end

%Metodo de minimoscuadrados

i f k==nn

%G r a f i c a

p l o t ( X , Y , 'om ' ) ;
a x i s ( ejes )
x l a b e l ( 'X ' ) ; y l a b e l ( 'Y ' ) ;
g r i d on
end

s e t ( handles . pushbutton1 , ' e n a b l e ' , ' o f f ' )


s e t ( handles . pushbutton2 , ' e n a b l e ' , ' on ' )
else
DE LOS VECTORES' , 'AVISO ' , ' warn ' ) ;
msgbox ( 'REVISE EL TAMANO
end

3.

Codigo Fuente de los GUIS

55

Listing 3.9: Boton Calcular


f u n c t i o n p u s h b u t t o n 2 _ C a l l b a c k ( hObject , eventdata , handles )
clc
g l o b a l ejes
X=str2num ( g e t ( handles . edit1 , ' s t r i n g ' ) ) ;
Y=str2num ( g e t ( handles . edit2 , ' s t r i n g ' ) ) ;
n=str2num ( g e t ( handles . edit3 , ' s t r i n g ' ) ) ;
aa=str2num ( g e t ( handles . edit6 , ' s t r i n g ' ) ) ;
i f ( n / f l o o r ( n )==1 & n>=1 )
i f l e n g t h ( X )==l e n g t h ( Y )
p=p o l y f i t ( X , Y , n ) ;
PX=vpa ( poly2sym ( p ) , 7 ) ;
fa=p o l y v a l ( p , aa ) ;
Pol =char ( PX ) ;

pa=num2str ( fa , ' %20.12 f ' ) ;


s e t ( handles . edit5 , ' s t r i n g ' , pa ) ;
s e t ( handles . edit4 , ' s t r i n g ' , Pol ) ;
p l o t ( X , Y , 'om ' ) ;
g r i d on
h o l d on
drawnow
xc=min ( X ) ; xd=max( X ) ;
p l o t ( aa , fa , 'om ' ) ;
h o l d on
h2=ezplot ( PX , [ xc xd ] ) ;
s e t ( h2 , ' C o l o r ' , ' b ' , ' LineWidth ' , 1 . 5 )
t i t l e ( [ 'P( x ) = ' Pol ] , ' f o n t s i z e ' , 8 , ' f o n t w e i g h t ' , ' b o l d ' )
h o l d off
s e t ( handles . pushbutton1 , ' e n a b l e ' , ' on ' )
s e t ( handles . pushbutton2 , ' e n a b l e ' , ' o f f ' )
clc
else
DE LOS VECTORES' , 'AVISO ' , ' warn ' ) ;
msgbox ( 'REVISE EL TAMANO
end

else
msgbox ( 'EL GRADO DEBE SER UN NUMERO ENTERO POSITIVO ' , 'AVISO ' , ' warn ' ) ;
end

BIBLIOGRAFIA
[1] Buhmann, M. D. (2004). Radial Basis Functions: Theory and Implementations.
Cambridge University Press. United Kingdom.

[2] Aleman M.; Alvarez


L.; Sanchez J. An
alisis Numerico[en lnea]. [consulta 2012].
[3] Burden R.L; Faires J.D . (2001). Numerical Abalysis. Cengage Learning Latin
America.
[4] Cobos

J.

Apuntes

de

C
alculo

Numerico[en

http://ma1.eii.us.es/Material/Cal_Num_itis_Apuntes.pdf

lnea].
[consulta

2012]
[5] Comer E.(2009) Metodos Numericos Instituto Tecnologico de Tijuana.
[6] Mathews J.; Fink K.(2000) Metodos Numericos con MATLAB. Prentice Hall,
Madrid.
[7] Meja C.(2002) Invitacion al An
alisis Numerico. Universidad Nacional de Colombia, Medelln.
[8] Mora W.F.(2010) Introduccion a los Metodos Numericos. Instituto Tecnologico de
Costa Rica.
[9] M
uller H. (1996) Una Introducci
on al An
alisi Numerico. Universidad Mayor de
San Simon. Cochabamba, Bolivia.
[10] Nakamura, S. (1992). Metodos Numericos Aplicados con Software. Pearson Educacion.

BIBLIOGRAFIA

57

[11] A. Quarteroni, F. Saleri. (2006). C


alculo Cientifico con MATLAB y Octave.
Springer-Verlag, Italia, Milano.
[12] Velasquez J.(2007) Analisis Numerico. Ediciones Uninorte.
[13] Won Y. Yang , Wenwu Cao , Tae-Sang Chung , John Morris(2005) Applied Numerical Methods Using MATLAB. John Wiley Sons.
[14] V. Dominguez. L. Rapun Matlab en cinco lecciones de Numerico[en lnea].
http://www.unavarra.es/personal/victor dominguez/ [consulta 2012]
[15] Carrasco V.(2011) Metodos Numericos Aplicados a la Ingeniera Problemas en
Polymath y Matlab. MACRO
[16] Morales M.(2010) Matlab R2010a Metodos Numericos con Visualizaci
on Grafica.
MACRO
[17] Amancio R., Orbegoso G., Mu
noz G., Villalta R. (2010) Matlab 2010 - Software
para ciencia e ingeniera. MACRO
[18] Moler, C. (2004) Numerical computing with Matlab. SIAM
[19] Pineiro

G.

APUNTES

DE

MATLAB [en

lnea].

http://www.uhu.es/candido.pineiro/docencia/apuntesmatlab.pdf [consulta 2012]


[20] J. Cooper A Matlab Companior for Multivariable Calculus
[21] Chavil M. Sistema experto en Maple Para el an
alisis de Curvas y superficies en
R3
[22] Gonzales M., Sanchez R. Gr
aficas de curvas y superficies usando Matlab

You might also like