practicas de laboratorio - isidoro ponte€¦ · por lo tanto la ecuación de la recta es: para...

56
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS ISIDORO PONTEE.S.M.C.127 PRACTICAS DE LABORATORIO MÉTODOS NUMÉRICOS PRÁCTICA 1920: Resumen estadística. Nociones de errores. En la práctica 19 tocaremos algunos conceptos de estadística que no hemos visto en la prácticas anteriores. En la práctica 20 haremos una introducción a lo métodos numéricos y trabajaremos con los diferente errores que se generan con el uso de aproximaciones para representar cantidades y/u operaciones, conocido con el nombre de Teoría de errores. NOTA: estás prácticas no se realizarán en el presente curso académico.

Upload: others

Post on 08-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.127

PRACTICAS DE LABORATORIO MÉTODOS NUMÉRICOS

PRÁCTICA 19­20: Resumen estadística. Nociones de errores.

En la práctica 19 tocaremos algunos conceptos de estadística que no hemos visto en la prácticas anteriores.

En la práctica 20 haremos una introducción a lo métodos numéricos y trabajaremos con los diferente errores que se generan con el uso de aproximaciones para representar cantidades y/u operaciones, conocido con el nombre de Teoría de errores.

NOTA: estás prácticas no se realizarán en el presente curso académico.

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.128

PRACTICAS DE LABORATORIO MÉTODOS NUMÉRICOS

PRÁCTICA 21­22: Resolución numérica de ecuaciones.

En estas prácticas aprenderemos a buscar raíces(soluciones) de ecuaciones no lineales, para ello usaremos diferentes métodos de aproximación a dichas raíces: bisección, regla falsa, Newton­ Raphson, método de la secante y punto fijo.

Trataremos también en algunas de las prácticas siguientes de crear “pequeños programas”(explicándose convenientemente) que efectúen automáticamente los cálculos aproximativos, con el simple cambio de los datos y, por otra parte, cuando el problema no tenga solución nos lo advierta.

PROGRAMA DE BISECCIÓN.

Este programa utiliza el método de la bisección para aproximar la raíz de ) (x f en un intervalo [ ] b a, ( recordemos que este método se basa en el teorema de valor medio Sea ) (x f

continua en un intervalo [ ] b a, y supongamos que ) ( ) ( b f a f < . Entonces para cada z tal que ) ( ) ( b f z a f < < , existe un ( ) b a x , 0 ∈ tal que z x f = ) ( 0 . La misma conclusión se obtiene para el caso que

) ( ) ( b f a f > .

Básicamente el Teorema del Valor medio nos dice que toda función continua en un intervalo cerrado, una vez que alcanzó ciertos valores en los extremos del intervalo, entonces debe alcanzar todos los valores intermedios.

En particular, si ) (a f y ) (b f tienen signos opuestos, entonces un valor intermedio es precisamente 0 = z , y por lo tanto, el Teorema del Valor Intermedio nos asegura que debe existir ( ) b a x , 0 ∈ tal que

0 ) ( 0 = x f , es decir, debe haber por lo menos una raíz de ) (x f en el intervalo ) , ( b a .

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.129

El método de bisección sigue los siguientes pasos:

Sea ) (x f continua,

i) Encontrar valores iniciales a x , b x tales que ) ( a x f y ) ( b x f tienen signos opuestos, es decir,

ii) La primera aproximación a la raíz se toma igual al punto medio entre a x y b x :

iii) Evaluar ) ( r x f . Forzosamente debemos caer en uno de los siguientes casos:

En este caso, tenemos que ) ( a x f y ) ( r x f tienen signos opuestos, y por lo tanto la raíz se encuentra en el intervalo [ ] r a x x , . Y asi sucesivamente hasta donde queramos aproximar)

Veamos un ejemplo con MATHEMATICA; introducimos la función

In[1]:= f@x_D = Exp@-xD - Log@xD;

introducimos los extremos del intervalo

In[2]:= x0 =1; y 0 =2;

introducimos el numero de iteraciones

In[4]:= k= 8;

introducimos el error inicial en porcentaje

In[5]:= e0 =100;

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.130

calculamos la primera aproximación a la raíz

In[6]:= z0 = Hx0 +y0Lê2;

le decimos a matemática que use la fórmula de la bisección en el caso que proceda y en este caso, que nos despliegue una tabla con las aproximaciones calculadas. En caso negativo que nos mande un mensaje de error. En la tabla aparece la numeración de las raíces, el valor y el error

In[7]:= IfASign@f@x0DD !=Sign@f@y0DD, ForAi= 0, i< k, i++, IfASign@f@xiDD !=Sign@f@ziDD, xi+1 = x i ;

yi+1 = zi; zi+1 = Hxi+1 +yi+1Lê2, xi+1 = z i; yi+1 = yi; zi+1 = Hxi+1+yi+1Lê2EE;

Do@ei+1 =Abs@Hzi+1 -ziL êzi+1D *100, 8i, 0,k<D; Table@8xri+1 , N@zi, 20D, N@ei, 20D<, 8i, 0, k<D êê TableForm, Print@"El método de la bisección no se puede

aplicar ya que fHx0L y fHy0L tienen el mismo signo"DE

Out[7]//TableForm= xr1 1.5000000000000000000 100.00000000000000000 xr2 1.2500000000000000000 20.000000000000000000 xr3 1.3750000000000000000 9.0909090909090909091 xr4 1.3125000000000000000 4.7619047619047619048 xr5 1.2812500000000000000 2.4390243902439024390 xr6 1.2968750000000000000 1.2048192771084337349 xr7 1.3046875000000000000 0.59880239520958083832 xr8 1.3085937500000000000 0.29850746268656716418 xr9 1.3105468750000000000 0.14903129657228017884

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.131

podemos comprobar que si la función no tiene raíces , MATHEMATICA nos lo advierte veamos un ejemplo como el anterior In[9]:= f@x_D = Exp@-xD - Log@xD; In[10]:= x0 =2;

y0 =3; In[12]:= k= 8;

In[13]:= e 0 =100;

In[14]:= z0 = Hx0 +y0Lê2;

In[15]:= IfASign@f@x 0DD !=Sign@f@y 0DD, ForAi= 0,i< k,i++, IfASign@f@xiDD !=Sign@f@ziDD, xi+1 =x i ;

yi+1 =zi; zi+1 = Hxi+1 +yi+1Lê2, xi+1 =zi; yi+1 =yi; zi+1 = Hx i+1 +y i+1Lê2EE;

Do@ei+1 =Abs@Hzi+1 -ziLêzi+1D *100, 8i, 0,k<D; Table@8xri+1 , N@zi,20D, N@ei, 20D<, 8i, 0,k<D êê TableForm, Print@"El método de la bisección no se puede

aplicar ya que fHx0L y fHy0L tienen el mismo signo"DE

El método de la bisección no se puede aplicar ya que fHx0L y fHy0L tienen el mismo signo

estos datos los podríamos comprobar gráficamente, usando el comando que dibuja las funciones, y ver que hay una raíz en el intervalo [ ] 2 , 1 y ninguna en el intervalo [ ] 3 , 2

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.132

In[16]:= Plot@8Exp@-xD - Log@xD<, 8x,1,3<D

1.5 2 2.5 3

­1

­0.8

­0.6

­0.4

­0.2

0.2

0.4

Out[16]= Ö Graphics Ö

METODO DE LA REGLA FALSA

También este programa se usa para aproximar raíces de ) (x f en un intervalo [ ] b a, ( es un método bueno para considerar si la raíz se encuentra cerca de los extremos. Consideremos una gráfica del tipo:

Donde hemos agregado la línea recta que une los puntos extremos de la gráfica en el intervalo [ ] b a, .

Es claro que si en lugar de considerar el punto medio del intervalo, tomamos el punto donde cruza al eje x esta recta, nos aproximaremos mucho más rápido a la raíz; ésta es en sí, la idea central del método de la regla falsa y ésta es realmente la única diferencia con el método de bisección, puesto que en todo lo demás los dos métodos son prácticamente idénticos.

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.133

Supongamos que tenemos una función ) (x f que es contínua en el intervalo [ ] b a x x , y además, ) ( a x f y ) ( b x f tienen signos opuestos.

Calculemos la ecuación de la línea recta que une los puntos )) ( , ( a a x f x , )) ( , ( b b x f x . Sabemos que la pendiente de esta recta esta

dada por:

Por lo tanto la ecuación de la recta es:

Para obtener el cruce con el eje x , hacemos 0 = y :

Multiplicando por a b x x − nos da:

Finalmente, de aquí despejamos x :

Este punto es el que toma el papel de r x en lugar del punto medio del método de bisección.

Así pues, el método de la regla falsa sigue los siguientes pasos:

Sea ) (x f contínua,

Encontrar valores iniciales a x , b x tales que ) ( a x f y ) ( b x f tienen signos opuestos, es decir,

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.134

ii) La primera aproximación a la raíz se toma igual a:

iii) Evaluar ) ( r x f . Forzosamente debemos caer en uno de los siguientes casos:

En este caso, tenemos que ) ( a x f y ) ( r x f tienen signos opuestos, y por lo tanto la raíz se encuentra en el intervalo [ ] r a x x , .

En este caso, tenemos que ) ( a x f y ) ( r x f tienen el mismo signo, y de aquí que ) ( r x f y ) ( b x f tienen signos opuestos. Por lo tanto, la raíz se encuentra en el intervalo [ ] b r x x , .

En este caso se tiene que 0 ) ( = r x f y por lo tanto ya localizamos la raíz.

El proceso se vuelve a repetir con el nuevo intervalo, hasta que:

Resolvamos con MATHEMATICA un ejercicio

Introducimos la función

In[1]:= f@x_D = [email protected] x;

introducimos los extremos del intervalo

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.135

In[2]:= x0 =1; y 0 =2;

introducimos el numero de iteraciones

In[4]:= k= 3;

introducimos el error inicial en porcentaje

In[5]:= e0 =100;

calculamos la primera aproximación a la raíz

In[6]:= z0 =y0 -f@y0D*Hx0 -y0LêHf@x0D -f@y0DL;

le decimos a matemática que verifique el método. En caso afirmativo, le pedimos que aplique reiteradamente hasta el número de iteraciones introducidas, y que nos despliegue una tabla con los datos obtenidos. En caso negativo que nos mande un mensaje de error. En la tabla aparece la numeración de las raíces, el valor y el error

In[7]:= If@Sign@f@x0DD ¹Sign@f@y0DD, For@i= 0, i< k, i++, If@Sign@f@xiDD ¹Sign@f@ziDD, xi+1 =xi; yi+1 =zi; zi+1 =yi+1 -f@yi+1D*Hxi+1-yi+1LêHf@xi+1D -f@yi+1DL, xi+1 =zi; yi+1 =yi; zi+1 =yi+1 -f@yi+1D*Hxi+1-yi+1LêHf@xi+1D -f@yi+1DLDD;

Do@ei+1 =Abs@Hzi+1-ziLêzi+1D *100, 8i, 0, k<D; Table@8xri+1 , N@zi, 7D, N@ei, 7D<, 8i, 0, k<D êê TableForm, Print@"El metodo de la regla falsa no se puede aplicar

ya que fHx0L y fHy0L tienen el mismo signo"DD

Out[7]//TableForm= xr 1 1.79012 100. xr 2 1.88912 5.24032 xr 3 1.89513 0.317292 xr 4 1.89547 0.0179524

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.136

METODO DE NEWTON­RAPHSON

Este método, el cual es un método iterativo, es uno de los más usados y efectivos. A diferencia de los métodos anteriores, el método de Newton­Raphson no trabaja sobre un intervalo sino que basa su fórmula en un proceso iterativo.

Supongamos que tenemos la aproximación i x a la raíz r x de ) (x f ,

Trazamos la recta tangente a la curva en el punto ( ) ) ( , i i x f x ; ésta cruza al eje x en un punto 1 + i x que será nuestra siguiente aproximación a la raíz r x .

Para calcular el punto 1 + i x , calculamos primero la ecuación de la recta tangente. Sabemos que tiene pendiente

Y por lo tanto la ecuación de la recta tangente es:

Hacemos 0 = y :

Y despejamos x :

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.137

Que es la fómula iterativa de Newton­Raphson para calcular la siguiente aproximación:

, si

Note que el método de Newton­Raphson no trabaja con intervalos donde nos asegure que encontraremos la raíz, y de hecho no tenemos ninguna garantía de que nos aproximaremos a dicha raíz. Desde luego, existen ejemplos donde este método no converge a la raíz, en cuyo caso se dice que el método diverge. Sin embargo, en los casos donde si converge a la raíz lo hace con una rapidez impresionante, por lo cual es uno de los métodos preferidos por excelencia.

También observe que en el caso de que 0 ) ( = ′ i x f , el método no se puede aplicar. De hecho, vemos geométricamente que esto significa que la recta tangente es horizontal y por lo tanto no intersecta al eje x en ningún punto, a menos que coincida con éste, en cuyo caso i x

mismo es una raíz de ) (x f .

Veamos un ejemplo con MATHEMATICA; introducimos la función

In[1]:= f@x_D = Exp@-xD - Log@xD;

calculamos la derivada de nuestra función ) (x f y la llamamos ) (x g

In[2]:= g@x_D = D@f@xD, xD;

introducimos el valor inicial para el proceso iterativo

In[3]:= x0 =1;

introducimos el número de iteraciones

In[4]:= k= 4;

introducimos un error inicial, digamos del 100%

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.138

In[5]:= e0 =100;

le pedimos a MATHEMATICA que aplique la fórmula de Newton­ Raphson

In[6]:= DoAxi+1 =x i -f@xiD ì gAx i E, 8i, 0, k<E;

también le pedimos que calcule los errores aproximados y que nos despliegue una tabla en la cual aparezcan el número de aproximación, el valor de la aproximación y el error aproximado correspondiente

In[7]:= Do@ei+1 =Abs@Hxi+1 -xiLêxi+1D *100, 8i,0, k<D; Table@8x ri , N@x i,20D, N@ei, 20D<, 8i, 0,k+1<D êê TableForm

Out[8]//TableForm= xr0 1.0000000000000000000 100.00000000000000000 xr1 1.2689414213699951207 21.194155761708544507 xr2 1.3091084032740159137 3.0682701144966407035 xr3 1.3097993886689735953 0.052755055540212554120 xr4 1.3097995858041344422 0.000015050788149843876043

xr 5 1.3097995858041504777 1.2242709553333811460´10 -12

METODO DE LA SECANTE

Este método se basa en la fórmula de Newton­Raphson, pero evita el cálculo de la derivada usando la siguiente aproximación:

Sustituyendo en la fórmula de Newton­Raphson, obtenemos:

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.139

Que es la fórmula del método de la secante. Nótese que para poder calcular el valor de , necesitamos conocer los dos valores anteriores y .

Obsérvese también, el gran parecido con la fórmula del método de la regla falsa. La diferencia entre una y otra es que mientras el método de la regla falsa trabaja sobre intervalos cerrados, el método de la secante es un proceso iterativo y por lo mismo, encuentra la aproximación casi con la misma rapidez que el método de Newton­Raphson. Claro, corre el mismo riesgo de éste último de no converger a la raíz, mientras que el método de la regla falsa va a la segura.

Introducimos la función

In[1]:= f@x_D = ArcSin@xD- Exp@-xD;

Introducimos los dos valores iniciales

In[2]:= x0 =0;

In[3]:= x1 =0.5;

el número de iteraciones

In[4]:= k= 4;

el error inicial

In[5]:= e0 =100;

usamos un iterador para que MATHEMATICA aplique la fórmula de la secante

In[6]:= Do@xn+1 =xn -f@xnD*Hxn -xn-1LêHf@xnD -f@xn-1DL, 8n, 1, k<D;

ahora finalmente nos presentará la tabla en la que aparecerán las aproximaciones y los errores aproximados

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.140

In[7]:= Do@ei+1 =Abs@Hxi+1 -xiLêxi+1D *100, 8i,0,k<D; Table@8x ri , N@x i,10D, N@f@x iD,10D, N@ei,10D<, 8i, 0,k<D êê TableForm

Out[8]//TableForm= xr 0 0. -1. 100. xr 1 0.5 -0.0829319 100. xr 2 0.545216 -0.0030702 8.29319 xr 3 0.546954 0.0000116128 0.31781

xr 4 0.546947 -1.99027´10 -9 0.00119758

METODO DEL PUNTO FIJO

Este programa usa el método de iteración del punto fijo para aproximar la raíz de una ecuación. Debemos de introducir una función ) (x g tal que se desee resolver la ecuación x x g = ) ( .

Introducimos la función

In[1]:= g@x_D = H4- Log@xDLê2;

Introducimos el valor inicial

In[2]:= x0 =1.5;

el número de iteraciones

In[3]:= k= 4;

el error inicial

In[4]:= e0 =100;

usamos un iterador para que MATHEMATICA aplique la fórmula del punto fijo

In[5]:= Do@xi+1 =g@xiD, 8i, 0, k<D;

ahora finalmente nos presentará la tabla en la que aparecerán las aproximaciones y los errores aproximados

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.141

In[6]:= Do@e i+1 =Abs@Hx i+1 -x iLêxi+1D *100, 8i,0,k<D; Table@8x ri , N@x i,8D, N@e i,8D<, 8i, 0,k<D êê TableForm

Out[7]//TableForm= xr0 1.5 100. xr1 1.79727 16.54 xr2 1.70687 5.29632 xr3 1.73267 1.48927 xr4 1.72517 0.434877

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.142

Ejercicios complementarios personalizados

1A Usa el método de la bisección para aproximar la raíz de

x tg d

x x f − +

+ = 1 5

1 ) ( 2 comenzando en el intervalo [ ] 1 , 75 . 0 y hasta

que el error sea menor que el 1%.

1B Usa el método de la regla falsa para aproximar la raíz de 3 2 4 ) ( x x x f − − = comenzando en el intervalo [ ] 7 . 0 2 , 4 . 0 1 d d + + y

hasta que el error sea menor que el 1%.

2A Usa el método de la Newton­Raphson para aproximar la raíz de x tg arc x d x f − − = 2 2 . 1 ) ( comenzando con 5 . 0 0 = x y hasta que el error sea menor que el 1%.

2B Usa el método de la secante para aproximar la raíz de x e x f x − = − ) ( comenzando con 1 . 0 0 d x = y 3 . 0 1 d x = hasta que el

error sea menor que el 1%.

2C Usa el método de iteración del punto fijo para aproximar la raíz de 1 ) ( − + = x x sen x f comenzando con 8 5 . 0 0 d x = y hasta que el error sea menor que el 1%.

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.143

PRACTICAS DE LABORATORIO MÉTODOS NUMÉRICOS

PRÁCTICA 23­24: Interpolación.

En estas prácticas estudiaremos el importantísimo tema de la interpolación de datos. Veremos dos tipos de interpolación: la interpolación polinomial (a la que dedicaremos casi todas las prácticas) y la interpolación segmentaria (splines). Comencemos dando la definición general.

Definición. Dados 1 + n puntos que corresponden a los datos:

y los cuales se representan gráficamente como puntos en el plano cartesiano,

Si existe una función ) (x f definida en el intervalo [ ] n x x , 0 (donde suponemos que n x x x < < < L 1 0 ), tal que i i y x f = ) ( para

n i , , 2 , 1 , 0 L = , entonces a ) (x f se le llama una función de interpolación de los datos, cuando es usada para aproximar valores dentro del intervalo [ ] n x x , 0 , y se le llama función de extrapolación de los datos, cuando está definida y es usada para aproximar valores fuera del intervalo.

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.144

Evidentemente pueden existir varios tipos de funciones que interpolen los mismos datos; por ejemplo, funciones trigonométricas, funciones exponenciales, funciones polinomiales, combinaciones de éstas, etc.

El tipo de interpolación que uno elige, depende generalmente de la naturaleza de los datos que se están manejando, así como de los valores intermedios que se están esperando.

Un tipo muy importante es la interpolación por funciones polinomiales. Puesto que evidentemente pueden existir una infinidad de funciones polinomiales de interpolación para una misma tabla de datos, se hace una petición extra para que el polinomio de interpolación, sea único.

Definición. Un polinomio de interpolación es una función polinomial que además de interpolar los datos, es el de menor grado posible.

DIFERENCIAS DIVIDIDAS FINITAS DE NEWTON

Las diferencias divididas finitas de Newton, se define de la siguiente manera:

j i

j i j i x x

x f x f x x f

− =

) ( ) ( ] , [

k i

k j j i k j i x x

x x f x x f x x x f

− =

] , [ ] , [ ] , , [

• • •

0

0 1 1 0 1 1

] , , [ ] , , [ ] , , , , [ x x

x x f x x f x x x x f n

n n n n −

− = −

− L L

L

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.145

A manera de ejemplo citemos el siguiente caso específico :

0 3

0 1 2 1 2 3 0 1 2 3

] , , [ ] , , [ ] , , , [ x x

x x x f x x x f x x x x f − −

=

donde a su vez:

1 3

1 2 2 3 1 2 3

] , [ ] , [ ] , , [ x x

x x f x x f x x x f − −

= y 01 2

0 1 1 2 0 1 2

] , [ ] , [ ] , , [ x x

x x f x x f x x x f − −

=

Y donde a su vez:

2 3

2 3 2 3

) ( ) ( ] , [ x x x f x f x x f

− −

= etc.

Podemos ahora definir nuestro primer tipo de polinomio de interpolación.

POLINOMIO DE INTERPOLACIÓN DE NEWTON CON DIFERENCIAS DIVIDIDAS

Dados 1 + n datos:

­ El polinomio de interpolación de Newton se define de la siguiente manera:

( ) ( ) ( )( ) ( )( ) ( ) 1 1 0 1 0 2 0 1 0 − − − − + + − − + − + = n n x x x x x x b x x x x b x x b b x f L L

donde :

( ) 0 0 x f b =

] , [ 0 1 1 x x f b =

[ ] 0 1 2 2 , , x x x f b =

[ ] 0 , , x x f b n n L

M =

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.146

Para calcular los coeficientes n b b b , , , 1 0 L , es conveniente construir una tabla de diferencias divididas como la siguiente :

Obsérvese que los coeficientes del polinomio de interpolación de Newton, se encuentran en la parte superior de la tabla de diferencias divididas.

Veamos un ejemplo con MATHEMATICA, para una tabla de datos con cinco puntos. ( ) ( ) ( ) ( ) ( ) 4055 . 0 , 3 , 2 , 4 , 10 , 6 , 16 , 2 , 8 , 2 − − −

Introducimos primero los valores de las abscisas y luego los de las ordenadas

In[1]:= x 0 =2; x1 = -2; x 2 = -6; x3 =4; x 4 =3;

In[6]:= y0 =8; y1 =16; y2 =10; y3 = -2; y4 =0.4055;

Ahora introducimos el grado del polinomio de interpolación que buscamos

In[11]:= n= 4;

calculamos la tabla de diferencias divididas finitas de Newton

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.147

In[12]:= Do@B i = Hy i-y i-1LêHx i-x i-1L,8i,1,n<D; Do@C i = HB i+1- BiLêHx i+1-xi-1L,8i,1,n-1<D; Do@Di = HCi+1-CiLêHxi+2-xi-1L,8i,1,n-2<D; Do@Ei = HDi+1- DiLêHxi+3-xi-1L,8i,1,n-3<D;

calculamos el polinomio de interpolación de newton correspondiente a la tabla de datos

In[16]:= f@x_D = y 0+ B 1*Hx-x 0L+C1*Hx-x 0L*Hx-x1 L +

D1*Hx-x0L *Hx-x1L*Hx-x2L +

E 1*Hx-x 0 L *Hx-x 1L*Hx-x 2L*Hx-x 3L;

por fin , pedimos a MATHEMATICA que nos escriba en pantalla el polinomio y que nos haga una gráfica con los puntos dados y el polinomio de interpolación de Newton obtenido

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.148

In[17]:= Print@"El polinomio de Newton para los datos dados es:"D f@xD Print@ "la grafica de los puntos y el polinomio de newton se ven como sigue:"D

datos:= 88x 0,y 0<,8x1, y1<,8x 2,y 2<, 8x 3,y 3<,8x4,y4<<; puntos:=

ListPlot@datos,PlotStyle-> [email protected], DisplayFunction-> IdentityD;

curva:= Plot@f@xD,8x, Min@x 0, x 1,x2,x3, x4D, Max@x 0,x 1,x 2, x 3,x 4D<, DisplayFunction-> IdentityD;

Show@puntos,curva, DisplayFunction® $DisplayFunctionD;

El polinomio de Newton para los datos dados es:

Out[18]= 8- 2H-2+xL - 7 16 H-2+xL H2+ xL -

1160 H-2+xL H2+ xL H6+ xL +

0.0694611H-4+ xL H-2+xL H2+xL H6+xL

la grafica de los puntos y el polinomio de newton se ven como sigue:

­6 ­4 ­2 2 4

5

10

15

20

POLINOMIO DE INTERPOLACION DE LAGRANGE.

Nuevamente tenemos los datos :

El polinomio de interpolación de Lagrange se plantea como sigue:

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.149

) ( ) ( ) ( ) ( 1 1 0 0 x l y x l y x l y x P n n + + + = L

Donde los polinomios ) (x l i se llaman los polinomios de Lagrange, correspondientes a la tabla de datos. Como se debe satisfacer que 0 0 ) ( y x P = , esto se cumple si 1 ) ( 0 0 = x l

y 0 ) ( 0 = x l i para toda 0 ≠ i . Como se debe satisfacer que 1 1 ) ( y x P = , esto se cumple si 1 ) ( 1 1 = x l y

0 ) ( 1 = x l i para toda 1 ≠ i . Y así sucesivamente, veremos finalmente que la condición ( ) n n n y x P =

se cumple si ( ) 1 = n n x l y ( ) 0 = n i x l para toda n i ≠ . Esto nos sugiere como plantear los polinomios de Lagrange. Para ser más claros, analicemos detenidamente el polinomio ) ( 0 x l . De acuerdo al análisis anterior vemos que deben cumplirse las siguientes condiciones para ) ( 0 x l :

1 ) ( 0 0 = x l y 0 ) ( 0 = j x l , para toda 0 ≠ j

Por lo tanto, planteamos ) ( 0 x l como sigue: ( ) ( )( ) ( ) n o x x x x x x c x l − − − = L 2 1

Con esto se cumple la segunda condición sobre ) ( 0 x l . La constante c se determinará para hacer que se cumpla la primera condición:

( ) ( )( ) ( ) n x x x x x x c x l − − − = ⇒ = 0 2 0 1 0 0 0 1 1 L

( )( ) ( ) n x x x x x x c

− − − = ⇒

0 2 0 1 0

1 L

Por lo tanto el polinomio ) ( 0 x l queda definido como:

( ) ( )( ) ( ) ( )( ) ( ) n

n

x x x x x x x x x x x x x l

− − − − − −

= 0 2 0 1 0

2 1 0

L

L

Análogamente se puede deducir que:

( ) ∏ ∏

− =

j i i j

j i i

j x x

x x x l

) (

) (

, para n j , , 1K =

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.150

Veamos un ejemplo con MATHEMATICA, para una tabla de datos con cuatro puntos. ( ) ( ) ( ) ( ) 0 , 5 , 70 , 4 , 120 , 1 , 112 , 3 − − − −

Introducimos primero los valores de las abscisas y luego los de las ordenadas,

In[1]:= x 0 =-3; x 1 =-1; x 2 =4; x 3 =5;

In[5]:= y0 =112; y1 = -120; y2 = -70; y3 =0;

introducimos el grado del polinomio

In[9]:= n= 3;

calculamos los polinomios de Lagrange

In[10]:= L 0 @x_D = Hx-x 1L*Hx-x 2L *Hx-x 3L Hx 0-x 1L*Hx0-x 2L*Hx 0 -x3L

;

L 1 @x_D = Hx-x 0L*Hx-x 2L *Hx-x 3L Hx 1-x 0L*Hx1-x 2L*Hx 1 -x3L

;

L2@x_D = Hx-x 0L*Hx-x 1L *Hx-x 3L Hx 2-x 0L*Hx 2-x 1L*Hx 2 -x 3 L

;

L3@x_D = Hx-x 0L*Hx-x 1L *Hx-x 2L Hx 3-x 0L*Hx 3-x 1L*Hx 3 -x 2 L

;

calculamos el polinomio de interpolación de Lagrange correspondiente a la tabla de datos

In[14]:= p@x_D = â i=0

n yi*L i@xD;

finalmente pedimos a MATHEMATICA que nos escriba en pantalla el polinomio de interpolación de Lagrange, así como una gráfica

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.151

donde veamos los puntos de la tabla de datos junto con el polinomio de Lagrange

In[15]:= Print@"El polinomio de Lagrange para los datos dados es:"D p@xD Print@ "La grafica de los puntos y el polinomio de interpolacion de lagrange se ven como sigue:"D

datos:= 88x0,y 0<,8x 1, y 1<,8x 2,y 2<, 8x3,y3<<; puntos:=

ListPlot@datos,PlotStyle-> [email protected], DisplayFunction-> IdentityD;

curva:= Plot@p@xD,8x, Min@x 0, x 1,x 2,x 3D, Max@x 0,x 1,x 2, x 3D<, DisplayFunction->IdentityD;

Show@puntos,curva, DisplayFunction® $DisplayFunctionD;

El polinomio de Lagrange para los datos dados es:

Out[16]= -H-5+xL H-4+xL H1+xL -

2H-5+ xL H-4+ xL H3+ xL +2H-5+xL H1+xL H3+xL

La grafica de los puntos y el polinomio de interpolacion de lagrange se ven como sigue:

­2 2 4

­150

­100

­50

50

100

INTERPOLACION POR SPLINES CUBICAS.

Terminamos este capítulo, estudiando un tipo de interpolación que ha demostrado poseer una gran finura, y que inclusive es usado para el diseño por computadora, por ejemplo, de tipos de letra.

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.152

Esta interpolación se llama interpolación segmentaria o interpolación por splines. La idea central es que en vez de usar un solo polinomio para interpolar los datos, podemos usar segmentos de polinomios y unirlos adecuadamente para formar nuestra interpolación. Cabe mencionar que entre todas, las splines cúbicas han resultado ser las más adecuadas para aplicaciones como la mencionada anteriormente.

Así pues, podemos decir de manera informal, que una funcion spline está formada por varios polinomios, cada uno definido en un intervalo y que se unen entre si bajo ciertas condiciones de continuidad.

Definición. (Splines de grado k)

Dada nuestra tabla de datos,

donde suponemos que n x x x < < < L 1 0 , y dado k un número entero positivo, una función de interpolación spline de grado k, para la tabla de datos, es una función ) (x s tal que : i) i i y x s = ) ( , para toda n i , , 1 , 0 K = . ii) ( ) x s es un polinomio de grado k ≤ en cada subintervalo [ ]i i x x ,1 − . iii ) ( ) x s tiene derivada continua hasta de orden 1 − k en [ ] n x x , 0 .

FUNCIONES SPLINES CUBICAS

Para hacer más firme el entendimiento, escribimos la definición correspondiente a este caso (k=3).

Dados los 1 + n datos:

Una spline cúbica que interpola estos datos, es una función ) (x s definida como sigue :

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.153

( )

( ) [ ] ( ) [ ]

( ) [ ]

∈ ∈

=

− − n n n x x x si x s

x x x si x s x x x si x s

x s

,

, ,

1 1

2 1 1

1 0 0

M

donde cada ( ) x s i es un polinomio cúbico; ( ) i i i y x s = , para toda n i , , 1 , 0 K = y tal que ( ) x s tiene primera y segunda derivadas

contínuas en [ ] n x x , 0 .

Ejemplo. Interpolar los siguientes datos mediante una spline cúbica :

Solución. Definimos un polinomio cúbico en cada uno de los intervalos que se forman:

( ) [ ] [ ]

∈ + + + ∈ + + +

= 5 , 3 3 , 2

2 2 2

2 3

2

1 1 2

1 3

1

x si d x c x b x a x si d x c x b x a x s

A continuación, hacemos que se cumpla la condición de que la spline debe pasar por los puntos dados en la tabla. Así, tenemos que:

( ) 1 2 4 8 1 2 1 1 1 1 − = + + + ⇒ − = d c b a s ( ) 2 3 9 27 2 3 1 1 1 1 = + + + ⇒ = d c b a s

( ) 7 5 25 125 7 5 2 2 2 2 − = + + + ⇒ − = d c b a s

Ahora calculamos la primera derivada de ( ) x s :

( ) [ ] [ ]

∈ + + ∈ + +

= ′ 5 , 3 2 3 3 , 2 2 3

2 2 2

2

1 1 2

1

x si c x b x a x si c x b x a x s

Al igual que en el caso de las splines cuadráticas, se presentan ecuaciones que pueden presentar discontinuidad en los cambios de intervalo; las posibles discontinuidades son los puntos donde se

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.154

cambia de intervalo, en este caso 3 = x . Para evitar esta discontinuidad, evaluamos 3 = x en los dos polinomios e igualamos:

( ) ( ) ( ) ( ) 2 2 2

2 1 1 2

1 3 2 3 3 3 2 3 3 c b a c b a + + = + +

o lo que es lo mismo:

2 2 2 1 1 1 6 27 6 27 c b a c b a + + = + +

Análogamente procedemos con la segunda derivada :

( ) [ ] [ ]

∈ + ∈ +

= ′ ′ 5 , 3 2 6 3 , 2 2 6

2 2

1 1

x si b x a x si b x a

x s

Para lograr que ( ) x s ′ ′ sea continua :

( ) ( ) 2 2 1 1 2 3 6 2 3 6 b a b a + = +

2 2 1 1 2 18 2 18 b a b a + = + ∴

En este punto contamos con 6 ecuaciones y 8 incognitas, por lo tanto tenemos 2 grados de libertad; en general, se agregan las siguientes 2 condiciones:

( ) ( ) 0

0 0

= ′ ′ = ′ ′

n x s x s

De lo cual vamos a obtener :

( ) ( ) 0 2 2 6 0 2 1 1 = + ⇒ = ′ ′ b a s 0 2 12 1 1 = + ∴ b a

( ) ( ) 0 2 5 6 0 5 2 2 = + ⇒ = ′ ′ b a s 0 2 30 2 2 = + ∴ b a

Con lo cual, hemos completado un juego de 8 ecuaciones vs. 8 incógnitas, el cual es el siguiente:

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.155

0 2 30 0 2 12

2 18 2 18 6 27 6 27

7 5 25 125 2 3 9 27 2 3 9 27 1 2 4 8

2 2

1 1

2 2 1 1

2 2 2 1 1 1

2 2 2 2

2 2 2 2

1 1 1 1

1 1 1 1

= + = +

+ = + + + = + +

− = + + + = + + +

= + + + − = + + +

b a b a

b a b a c b a c b a

d c b a d c b a d c b a d c b a

Cuya forma matricial es la siguiente :

=

− − − − −

0 0 0 0 7 2 2 1

0 0 2 30 0 0 0 0 0 0 0 0 0 0 2 12 0 0 2 18 0 0 2 18 0 1 6 27 0 1 6 27 1 5 25 125 0 0 0 0 1 3 9 27 0 0 0 0 0 0 0 0 1 3 9 27 0 0 0 0 1 2 4 8

2

2

2

2

1

1

1

1

d c b a d c b a

Usando MATHEMATICA, obtenemos la siguiente solución:

125 . 50 875 . 39 375 . 9 625 . 0 5 . 0 75 . 10 5 . 7 25 . 1

2

2

2

2

1

1

1

1

− = =

− = = =

− = =

− =

d c b a d c b a

Sustituyendo estos valores en nuestra función inicial, vemos que la spline cúbica para la tabla de datos dada, queda definida como sigue:

( ) [ ] [ ]

∈ − + − ∈ + − + −

= 5 , 3 125 . 50 875 . 39 375 . 9 625 . 0 3 , 2 5 . 0 75 . 10 5 . 7 25 . 1

2 3

2 3

x si x x x x si x x x x s

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.156

Mostramos la gráfica correspondiente a este ejercicio, creada tambien en MATHEMATICA.

Obsérvese la finura con la que se unen los polinomios cúbicos que conforman a la spline. Prácticamente ni se nota que se trata de dos polinomios diferentes. Esto es debido a las condiciones que se impusieron sobre las derivadas de la función. Esta finura casi artística, es la que permite aplicar las splines cúbicas, para cuestiones como el diseño de letras por computadoras, o bien a problemas de aplicación donde la interpolación que se necesita es de un carácter bastante delicado, como podría tratarse de datos médicos sobre algún tipo de enfermedad.

Veamos un ejemplo con MATHEMATICA:

Este programa nos calcula y grafica la spline cúbica correspondiente a una tabla de datos con cuatro puntos.

Los datos son los siguientes:

In[1]:= datos= 88-1, -1<, 81, 1<, 82, 5<, 84, -2<<

Out[1]= 88-1, -1<, 81, 1<, 82, 5<, 84, -2<<

Estos se guardan como un objeto gráfico como sigue:

In[2]:= mi= Min@Table@datos@@i, 1DD, 8i, 4<DD

Out[2]= -1

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.157

In[3]:= mf= Max@Table@datos@@i,1DD, 8i,4<DD

Out[3]= 4

In[4]:= Mi= Min@Table@datos@@i,2DD, 8i,4<DD

Out[4]= -2

In[5]:= Mf= Max@Table@datos@@i,2DD, 8i,4<DD

Out[5]= 5

In[6]:= puntos= ListPlot@datos,PlotStyle® [email protected], PlotRange® 88mi-5, mf+5<, 8Mi-5, Mf+5<<, AxesOrigin® 80,0<, DisplayFunction® IdentityD

Out[6]= Ö Graphics Ö

Para calcular la función spline cúbica, primero definimos los polinomios cúbicos:

In[7]:= DoAsi@x_D =ai*x 3 + bi*x 2 +ci*x+di, 8i,3<E

Enseguida, definimos las ecuaciones que se forman por las condiciones de la spline cúbica:

In[8]:= eq1 =s1@datos@@1, 1DDD == datos@@1, 2DD

Out[8]= -a1 +b1 -c1 + d1 == -1

In[9]:= eq2 =s1@datos@@2, 1DDD == datos@@2, 2DD

Out[9]= a1 + b1 + c1 + d1 == 1

In[10]:= eq3 =s2@datos@@2, 1DDD == datos@@2, 2DD

Out[10]= a2 + b2 + c2 + d2 == 1

In[11]:= eq4 =s2@datos@@3, 1DDD == datos@@3, 2DD

Out[11]= 8a2 + 4b2 + 2c2 + d2 == 5

In[12]:= eq5 =s3@datos@@3, 1DDD == datos@@3, 2DD

Out[12]= 8a3 + 4b3 + 2c3 + d3 == 5

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.158

In[13]:= eq6 =s3@datos@@4,1DDD == datos@@4, 2DD

Out[13]= 64a3 + 16b3 + 4c3 + d3 == -2

In[14]:= eq7 =s1'@datos@@2,1DDD ==s2'@datos@@2, 1DDD

Out[14]= 3a1 + 2b1 + c1 == 3a2 +2b2 + c2

In[15]:= eq8 =s2'@datos@@3,1DDD ==s3'@datos@@3, 1DDD

Out[15]= 12a2 + 4b2 + c2 == 12a3 +4b3 + c3

In[16]:= eq9 =s1''@datos@@2,1DDD ==s2''@datos@@2,1DDD

Out[16]= 6a1 + 2b1 == 6a2 + 2b2

In[17]:= eq 10 =s2''@datos@@3,1DDD ==s 3''@datos@@3,1DDD

Out[17]= 12a2 + 2b2 == 12a3 + 2b3

In[18]:= eq 11 =s1''@datos@@1,1DDD ä 0

Out[18]= -6a1 +2b1 == 0

In[19]:= eq 12 =s3''@datos@@4,1DDD ä 0

Out[19]= 24a3 + 2b3 == 0

Resolvemos el sistema de ecuaciones:

In[20]:= Solve@Table@eq i, 8i,12<DD

Out[20]= ::a1 ® 51 140

, b1 ® 153 140

, a2 ® - 21 10

, b2 ® 297 35

,

a3 ® 24 35

, b3 ® - 288 35

, c1 ® 89 140

, c2 ® - 473 70

,

c3 ® 1867 70

, d1 ® - 153 140

, d2 ® 48 35

, d3 ® - 732 35

>>

A continuación vaciamos la información obtenida en el paso anterior

e introducimos la regla de correspondencia de la spline:

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.159

In[21]:= splinecubica= WhichAdatos@@1, 1DD £ x£ datos@@2,1DD,

- 153 140

+ 89 x 140

+ 153 x 2

140 + 51 x 3

140 ,

datos@@2,1DD £ x£ datos@@3, 1DD, 48 35

- 473 x 70

+ 297 x 2

35 - 21 x 3

10 ,

datos@@3,1DD £ x£ datos@@4, 1DD,

- 732 35

+ 1867 x 70

- 288 x 2

35 + 24 x 3

35 E

La cual se guarda como un objeto gráfico como sigue:

In[22]:= graficaspline:= Plot@splinecubica, 8x, mi, mf<, DisplayFunction® IdentityD

Finalmente, le pedimos a MATHEMATICA que nos escriba la regla de correspondencia de la spline cúbica, así como la grafica correspondiente:

In[23]:= PrintA"La función spline cúbica que se obtuvo es: ",

- 153 140

+ 89 x 140

+ 153 x 2

140 + 51 x 3

140 , " si ",

datos@@1, 1DD £ x£ datos@@2,1DDE;

PrintA" ", 48 35

- 473 x 70

+ 297 x 2

35 - 21 x 3

10 ,

" si ", datos@@2,1DD £ x£ datos@@3,1DDE;

PrintA- 732 35

+ 1867 x 70

- 288 x 2

35 + 24 x 3

35 , " si ",

datos@@3, 1DD £ x£ datos@@4,1DDE; Print@" La gráfica correspondiente es:"D Show@puntos,graficaspline, Ticks-> 88-1, 1, 2,4<, 8-1,1, 5, -2<<, DisplayFunction-> $DisplayFunctionD;

La función spline cúbica que se obtuvo es:

- 153 140

+ 89x 140

+ 153x 2

140 + 51x 3

140 si -1£ x £ 1

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.160

48 35

- 473x 70

+ 297x 2

35 - 21x 3

10 si 1 £ x £ 2

- 732 35

+ 1867x 70

- 288x 2

35 + 24x 3

35 si 2 £ x £ 4

La gráfica correspondiente es:

­1 1 2 4 ­1

1

5

­2

Podríamos hacer el programa en dos pasos, si quisiesemos:

In[1]:= datos= 88-1, -1<, 81, 1<, 82, 5<, 84, -2<<; mi= Min@Table@datos@@i, 1DD, 8i, 4<DD; mf= Max@Table@datos@@i, 1DD, 8i, 4<DD; Mi= Min@Table@datos@@i, 2DD, 8i, 4<DD; Mf= Max@Table@datos@@i, 2DD, 8i, 4<DD; puntos= ListPlot@datos, PlotStyle® [email protected],

PlotRange® 88mi-5, mf+5<, 8Mi-5, Mf+5<<, AxesOrigin® 80, 0<, DisplayFunction® IdentityD;

DoAs i@x_D =a i *x 3 + b i *x 2 +c i*x+d i, 8i, 3<E; eq 1 =s 1@datos@@1, 1DDD == datos@@1, 2DD; eq 2 =s 1@datos@@2, 1DDD == datos@@2, 2DD; eq 3 =s 2@datos@@2, 1DDD == datos@@2, 2DD; eq4 =s2@datos@@3, 1DDD == datos@@3, 2DD; eq 5 =s 3@datos@@3, 1DDD == datos@@3, 2DD; eq6 =s3@datos@@4, 1DDD == datos@@4, 2DD; eq 7 =s 1'@datos@@2, 1DDD ==s 2'@datos@@2, 1DDD; eq8 =s2'@datos@@3, 1DDD ==s3'@datos@@3, 1DDD; eq 9 =s 1''@datos@@2, 1DDD ==s 2''@datos@@2, 1DDD; eq10 =s2''@datos@@3, 1DDD ==s3''@datos@@3, 1DDD; eq 11 =s 1''@datos@@1, 1DDD ä 0; eq12 =s3''@datos@@4, 1DDD ä 0; Solve@Table@eq i, 8i, 12<DD

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.161

Out[10]= ::a1 ® 51 140

, b1 ® 153 140

, a2 ® - 21 10

, b2 ® 297 35

,

a3 ® 24 35

, b3 ® - 288 35

, c1 ® 89 140

, c2 ® - 473 70

,

c3 ® 1867 70

, d1 ® - 153 140

, d2 ® 48 35

, d3 ® - 732 35

>>

incorporar los datos obtenidos, para finalizar el programa

In[11]:= splinecubica= WhichAdatos@@1,1DD £ x£ datos@@2,1DD,

- 153 140

+ 89 x 140

+ 153 x 2

140 + 51 x 3

140 ,

datos@@2,1DD £ x£ datos@@3,1DD, 48 35

- 473 x 70

+ 297 x 2

35 - 21 x 3

10 ,

datos@@3,1DD £ x£ datos@@4,1DD,

- 732 35

+ 1867 x 70

- 288 x 2

35 + 24 x 3

35 E;

graficaspline:= Plot@splinecubica, 8x, mi, mf<, DisplayFunction® IdentityD;

PrintA"La función spline cúbica que se obtuvo es: ",

- 153 140

+ 89 x 140

+ 153 x 2

140 + 51 x 3

140 , " si ",

datos@@1,1DD £ x£ datos@@2,1DDE;

PrintA" ", 4835

- 473 x 70

+ 297 x 2

35 - 21 x 3

10 ,

" si ", datos@@2, 1DD £ x£ datos@@3,1DDE;

PrintA- 732 35

+ 1867 x 70

- 288 x 2

35 + 24 x 3

35 , " si ",

datos@@3,1DD £ x£ datos@@4,1DDE; Print@" La gráfica correspondiente es:"D Show@puntos,graficaspline, Ticks-> 88-1,1, 2, 4<, 8-1,1,5, -2<<, DisplayFunction-> $DisplayFunctionD;

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.162

La función spline cúbica que se obtuvo es:

- 153 140

+ 89x 140

+ 153x 2

140 + 51x 3

140 si -1£ x £ 1

48 35

- 473x 70

+ 297x 2

35 - 21x 3

10 si 1 £ x £ 2

- 732 35

+ 1867x 70

- 288x 2

35 + 24x 3

35 si 2 £ x £ 4

La gráfica correspondiente es:

­1 1 2 4 ­1

1

5

­2

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.163

Ejercicios complementarios personalizados

1A Calcula el polinomio de interpolación de Newton para los siguientes datos ( ) ( ) ( ) ( ) 8 . 7 , 4 , 3 4 . 2 , 1 , 3 , 2 , 7 5 . 0 , 2 d d − − .

1B Calcula el polinomio de interpolación de Newton para los siguientes datos ( ) ( ) ( ) ( ) ( ) 12 , 5 . 1 , 9 , 2 . 1 , 6 , 4 9 . 0 , 0 , 6 . 0 , 3 , 6 3 . 0 − − − d d

2A Calcula el polinomio de interpolación de Lagrange para los siguientes datos ( ) ( ) ( ) ( ) 2 9 . 8 , 5 , 57 . 2 , 3 , 54 . 3 , 2 , 56 . 1 , 1 d − − − −

2B Calcula el polinomio de interpolación de Lagrange para los siguientes datos ( ) ( ) ( ) ( ) ( ) 0 , 4 , 33 , 2 , 5 , 1 , 2 , 4 5 . 0 , 9 , 2 5 . 1 − − − − d d

2C Calcula las splines cúbicas para los siguientes datos ( ) ( ) ( ) 20 , 3 , 5 , 1 , 40 , 2 − − −

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.164

PRACTICAS DE LABORATORIO MÉTODOS NUMÉRICOS

PRÁCTICA 25­26: Derivación e integración numerica. Integración aproximada.

En los cursos de Cálculo Integral, nos enseñan como calcular una integral definida de una función continua mediante una aplicación del Teorema Fundamental del Cálculo:

Teorema Fundamental del Cálculo :

Sea una función continua en el intervalo y sea una

primitiva de . Entonces:

El problema en la práctica, se presenta cuando nos vemos imposibilitados de encontrar la primitiva requerida, aún para

integrales aparentemente sencillas como: la cual

simplemente es imposible de resolver con el Teorema Fundamental del Cálculo.

Incluso casos en los que no se conoce la primitiva, o en que casos en los que solo se conoce una serie de valores ,

En estas prácticas estudiaremos diversos métodos numéricos que nos permitirán obtener aproximaciones bastante exactas a integrales como la mencionada anteriormente. Esencialmente, veremos dos tipos de integración numérica: las fórmulas de Newton­Cotes y el algoritmo de Romberg.

Las fórmulas de Newton­Cotes están conformadas por las bien conocidas reglas del trapecio y de Simpson (regla de un tercio y de tres octavos). El algoritmo de Romberg forma parte de un método conocido como método de extrapolación de Richardson.

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.165

Haciendo uso de MATHEMATICA es posible discernir sobre las cualidades y defectos de cada uno de los métodos mencionados arriba.

REGLA DEL TRAPECIO

Dada una función una función continua en el intervalo , dividimos el intervalo en subintervalos, todos de la

misma longitud .

Sea la partición que se forma al hacer dicha subdivisión. ya que todos los subintervalos tienen la misma longitud h, tenemos la fórmula de los trapecios que es:

Sustituyendo el valor de h y usando la notación sigma, tenemos finalmente:

Esta es la regla del trapecio para n subintervalos. Obviamente, cuantos más subintervalos usemos, mejor será la aproximación a la integral.

Este programa calcula usando la Regla del Trapecio con n intervalos todos de la misma longitud con el programa MATHEMATICA

Introducimos el intervalo de integración:

In[1]:= a= 0; b= 6;

Introducimos la función a integrar:

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.166

In[3]:= f@x_D = Cos@xD x+1

;

Introducimos el número de intervalos a usar:

In[4]:= n= 100000;

Calculamos la longitud de cada intervalo:

In[5]:= h= Hb-aLên;

Calculamos los puntos de la partición que se genera:

In[6]:= Do@xi =a+h*i,8i,0,n<D;

Aplicamos la regla del trapecio para n intervalos:

In[7]:= Trapecio= Hb-aLêH2*nL* i

k f@x0D +2*

i

k â i=1

n-1 f@xiD

y

+f@xnD

y

;

Calculamos el valor exacto de la integral, para comparar:

In[8]:= Verdadero= à a

b f@xD âx;

Le pedimos a Mathematica que nos despliegue la información en pantalla:

In[9]:= Print@"El valor aproximado de la integral usando la regla del trapecio es:"D

Print@N@Trapecio,24DD Print@"El valor verdadero de la integral es:"D Print@N@Verdadero,24DD

El valor aproximado de la integral usando la regla del trapecio es:

0.287037911124493970829599

El valor verdadero de la integral es:

0.287037910818397614552909

0.287038

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.167

REGLA DE SIMPSON DE UN TERCIO

Dada una función una función continua en el intervalo , dividimos el intervalo en subintervalos, todos de la

misma longitud , sea mi x el punto medio del subintervalo

[ ]i i x x ,1 − .

Sea la partición que se forma al hacer dicha subdivisión. ya que todos los subintervalos tienen la misma longitud h, tenemos la fórmula de los trapecios que es:

Sustituyendo el valor de h y usando la notación sigma, tenemos finalmente:

Esta es la regla de Simpson de un tercio para n subintervalos. Obviamente, cuantos más subintervalos usemos, mejor será la aproximación a la integral.

Calcula la integral usando la Regla de Simpson de 1/3 para n intervalos, todos de la misma longitud con el programa MATHEMATICA

Introducimos el intervalo de integración:

In[1]:= a= -2; b= 1;

Introducimos la función a integrar:

In[3]:= f@x_D = ArcTan@x^3+2D;

Introducimos el número de intervalos a usar:

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.168

In[4]:= n= 100000;

Calculamos la longitud de los intervalos:

In[5]:= h= Hb-aLên;

Calculamos los elementos de la partición que se genera:

In[6]:= Do@xi =a+h*i,8i,0,n<D;

Calculamos los puntos medios de cada intervalo:

In[7]:= Do@yi = Hxi+xi-1Lê2,8i,1,n<D;

Aplicamos la Regla de Simpson de 1/3:

In[8]:= Simpson13= Hb-aLêH6*nL* i

k f@x 0D +4*

i

k â i=1

n f@y iD

y

+2*

i

k â i=1

n-1 f@xiD

y

+f@xnD

y

;

Calculamos el valor exacto de la integral:

In[9]:= Verdadero= à a

b f@xD âx;

Le pedimos a MATHEMATICA que nos despliegue en pantalla la información obtenida:

In[10]:= Print@ "El valor aproximado de la integral usando la regla del simpson es:"D

Print@N@Simpson13, 12DD Print@"El valor verdadero de la integral es:"D Print@N@Verdadero,12DD

El valor aproximado de la integral usando la regla del simpson es:

1.56093

El valor verdadero de la integral es:

1.56093+ 3.33067´10 -16 ä

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.169

REGLA DE SIMPSON DE TRES OCTAVOS

Dada una función una función continua en el intervalo , dividimos el intervalo en subintervalos, todos de la

misma longitud , sea el subintervalo [ ]i i x x ,1 − , lo dividimos

en tres partes iguales y lo puntos intermedios los llamamos i y y i z .l

Sea la partición que se forma al hacer dicha subdivisión. ya que todos los subintervalos tienen la misma longitud h, tenemos la fórmula de los trapecios que es:

Sustituyendo el valor de h, tenemos usando el polinomio de interpolación de Lagrange y el método de integración por

partes:

Esta es la regla de Simpson de tres octavos para n subintervalos iguales. Obviamente, cuantos más subintervalos usemos, mejor será la aproximación a la integral.

Introducimos el intervalo de integración:

In[1]:= a= 0; b= 2;

Introducimos la función a integrar:

In[3]:= f@x_D = x*Exp@xD;

Introducimos el número de intervalos a usar:

In[4]:= n= 2;

Calculamos la longitud de cada intervalo:

In[5]:= h= Hb-aLên;

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.170

Calculamos los elementos de la partición que se genera:

In[6]:= Do@xi =a+h*i, 8i, 0, n<D;

Calculamos los puntos que dividen en tres partes iguales a cada intervalo:

In[7]:= Do@y i = H2*xi-1 +x iLê3, 8i, 1, n<D;

In[8]:= Do@z i = Hx i-1 +2*x iLê3, 8i, 1, n<D;

Aplicamos la Regla de Simpson de 3/8 para n intervalos:

In[9]:= Simpson38= Hb-aLêH8*nL*

i

k f@x0D +3*

i

k â i=1

n Hf@yiD+f@ziDL

y

+2*

i

k â i=1

n-1 f@xiD

y

+f@xnD

y

;

Calculamos el valor exacto de la integral:

In[10]:= Verdadero= à a

b f@xD âx;

Le pedimos a MATHEMATICA que nos despliegue en pantalla la información obtenida:

In[11]:= Print@"El valor aproximado de la integral usando la regla del simpson es:"D

Print@N@Simpson38, 14DD Print@"El valor verdadero de la integral es:"D Print@N@Verdadero,14DD

El valor aproximado de la integral usando la regla del simpson es:

8.39411

El valor verdadero de la integral es:

8.38906

De lo visto resulta evidente que la regla de Simpson de tres octavos, es más exacta, que la de un tercio, que a su vez, aproxima

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.171

mejor que la del trapecio. Se pueden establecer cotas para los errores que se comenten en cada uno de los métodos.

los siguientes resultados se mencionan para completar la información, pero omitimos las demostraciones correspondientes.

REGLA F O R M U L A E R R O R CON. . .

Trapecio

Simpson

Simpson

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.172

Ejercicios complementarios personalizados

1A Usar la regla del trapecio para aproximar,

i) Dividiendo en un solo intervalo.

ii) Dividiendo en 6+d4 intervalos.

1B Usar la regla de Simpson 1/3 para aproximar,

i) Dividiendo en un solo intervalo.

ii) Dividiendo en 4+d2 intervalos.

2A. Usar la regla de Simpson 3/8 para aproximar,

i) Dividiendo en un solo intervalo.

ii) Dividiendo en 4+d5 intervalos.

2B. Integrar la siguiente tabla de datos:

i)

2C. Integrar la siguiente tabla de datos:

ii)

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.173

PRACTICAS DE LABORATORIO MÉTODOS NUMÉRICOS

PRÁCTICA 27­28: Métodos numéricos de resolución de ecuaciones diferenciales.

ECUACIONES DIFERENCIALES

En esta práctica, haremos un breve estudio de los métodos numéricos básicos que se usan para aproximar soluciones de algunas ecuaciones diferenciales.

Recordamos rápidamente, que una ecuación diferencial (ordinaria) es aquella que involucra una variable independiente, una variable dependiente y la derivada (ó derivadas ) de esta última. En una ecuación diferencial, la incógnita es la variable dependiente y se espera encontrarla como función de la variable independiente, de tal forma que si se sustituye dicha variable dependiente, así como las derivadas que aparecen en la ecuación diferencial, la igualdad que resulta es verdadera.

De cursos anteriores de ecuaciones diferenciales, sabemos que en general, existen una infinidad de funciones (curvas) que resuelven una misma ecuación diferencial. Por ejemplo, la ecuación:

tiene como solución general:

donde c es una constante arbitraria que puede ser cualquier número real (y de aquí la infinidad de curvas solución que mencionamos arriba).

En este curso, estudiaremos solamente ecuaciones diferenciales de primer orden del tipo:

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.174

donde es una función de dos variables. Cuando se desea que la curva solución pase por algún punto específico, digamos , entonces se dice que se trata de una ecuación diferencial con una condición inicial dada. Así, estudiaremos ecuaciones diferenciales de la forma con la condición inicial .

Obviamente, la importancia de los métodos numéricos radica en la aparición de ecuaciones diferenciales que no pueden resolverse por métodos tradicionales, y de ahí la necesidad de implementar algún método de aproximación.

Veremos tres métodos numéricos:

• El método de Euler. • El método de Euler mejorado. • El método de Runge­Kutta de orden 4.

En todos estos métodos se busca aproximar el valor donde es un valor cercano a (el de la condición inicial dada).

Comencemos con el primer método que como siempre, no es el más exacto, pero si el más sencillo y simple de explicar, así como el que marca la pauta para desarrollar los otros métodos.

MÉTODO DE EULER

La idea del método de Euler es muy sencilla y está basada en el significado geométrico de la derivada de una función en un punto dado.

Supongamos que tuviéramos la curva solución de la ecuación diferencial y trazamos la recta tangente a la curva en el punto dado por la condición inicial.

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.175

Debido a que la recta tangente aproxima a la curva en valores cercanos al punto de tangencia, podemos tomar el valor de la recta tangente en el punto como una aproximación al valor deseado

.

Así, calculemos la ecuación de la recta tangente a la curva solución de la ecuación diferencial dada en el punto . De los cursos de Geometría Analítica, sabemos que la ecuación de la recta es:

donde m es la pendiente. En este caso, sabemos que la pendiente de la recta tangente se calcula con la derivada:

Por lo tanto, la ecuación de la recta tangente es :

Ahora bien, suponemos que es un punto cercano a , y por lo tanto estará dado como . De esta forma, tenemos la siguiente aproximación:

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.176

De aquí, tenemos nuestra fórmula de aproximación:

Esta aproximación puede ser suficientemente buena, si el valor de h es realmente pequeño, digamos de una décima ó menos. Pero si el valor de h es más grande, entonces podemos cometer mucho error al aplicar dicha fórmula. Una forma de reducir el error y obtener de hecho un método iterativo, es dividir la distancia en n partes iguales (procurando que estas partes sean de longitud suficientemente pequeña) y obtener entonces la aproximación en n pasos, aplicando la fórmula anterior n veces de un paso a otro, con

la nueva h igual a .

En una gráfica, tenemos lo siguiente:

Ahora bien, sabemos que:

Para obtener únicamente hay que pensar que ahora el papel de lo toma el punto , y por lo tanto, si sustituimos los datos

adecuadamente, obtendremos que:

De aquí se ve claramente que la fórmula recursiva general, está dada por:

Esta es la conocida fórmula de Euler que se usa para aproximar el valor de aplicándola sucesivamente desde hasta en pasos de longitud h.

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.177

Este programa usa el método de Euler para aproximar dada la ecuación diferencial de la forma: y'=f(x,y) con y donde se supone que es cercano a .

Introducimos la función f(x,y):

In[1]:= f@x_, y_D = Log@x+yD;

Introducimos los valores dados por la condición inicial:

In[2]:= x0 =1; y 0 = 1.5;

Introducimos el valor de h:

In[4]:= h= 0.1;

Introducimos el número de iteraciones:

In[5]:= k= 5;

Aplicamos la fórmula de Euler:

In[6]:= Do@xn+1 =xn +h, 8n, 0,k<D; Do@yn+1 =yn +h*f@xn, ynD, 8n,0,k<D;

Le pedimos a MATHEMATICA que nos despliegue una tabla con los datos obtenidos:

In[8]:= Print@ "La tabla de valores obtenidos mendiante el método de Euler es:"D

Table@8x i,yi<, 8i,0,k<D êêTableForm

La tabla de valores obtenidos mendiante el método de Euler es:

Out[9]//TableForm= 1 1.5 1.1 1.59163 1.2 1.69064 1.3 1.79679 1.4 1.90983 1.5 2.02952

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.178

MÉTODO DE EULER MEJORADO

Este método se basa en la misma idea del método anterior, pero hace un refinamiento en la aproximación, tomando un promedio entre ciertas pendientes.

La fórmula es la siguiente:

donde

Para entender esta fórmula, analicemos el primer paso de la aproximación, con base en la siguiente gráfica:

En la gráfica, vemos que la pendiente promedio corresponde a la pendiente de la recta bisectriz de la recta tangente a la curva en el punto de la condición inicial y la “recta tangente” a la curva en el punto , donde es la aproximación obtenida con la primera fórmula de Euler. Finalmente, esta recta bisectriz se traslada paralelamente hasta el punto de la condición inicial, y se considera el valor de esta recta en el punto como la aproximación de Euler mejorada.

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.179

Este programa usa el método de Euler mejorado igual que en el caso anterior

Introducimos la función f(x,y):

In[1]:= f@x_,y_D = Log@x+yD;

Introducimos los valores dados por la condición inicial:

In[2]:= x0 =1; y 0 = 1.5;

Introducimos el valor de h:

In[4]:= h= 0.1;

Introducimos el número de iteraciones:

In[5]:= k= 5;

Aplicamos la fórmula de Euler:

In[6]:= Do@xn+1 =xn +h, 8n, 0,k<D; DoA9zn+1 =yn +h*f@xn, ynD,

yn+1 =yn +h*J f@xn,ynD +f@xn+1, zn+1D 2 N=, 8n,0,k<E;

pedimos a MATHEMATICA una tabla con los datos obtenidos:

In[8]:= Print@ "La tabla de valores obtenidos mendiante el método de Euler Mejorado es:"D

Table@8x i,y i<, 8i,0,k<D êê TableForm

La tabla de valores obtenidos mendiante el método de Euler Mejorado es:

Out[9]//TableForm= 1 1.5 1.1 1.59532 1.2 1.69804 1.3 1.80788 1.4 1.9246 1.5 2.04794

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.180

MÉTODO DE RUNGE – KUTTA

Sin entrar en mucho detalle, mencionamos solamente que el método de Runge­Kutta cambia la dirección en el sentido de que no sigue la misma línea de los métodos de Euler. De hecho está basado en una aplicación de los polinomios de Taylor.

Comentamos sin embargo, que el método de Runge­Kutta si contiene como casos especiales los de Euler.

Las fórmulas

donde

Se conocen como las reglas o fórmulas de Runge­Kutta de orden cuatro para la ecuación diferencial:

Este programa usa el método de Runge­Kutta para aproximar y(x1), dada la ecuación diferencial de la forma:

y'=f(x,y)

con la condición inicial:

y(x0)=y0

y donde se supone que x1 es cercano a x0 .

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.181

Introducimos la función f(x,y):

In[1]:= f@x_, y_D = Log@xD + 1 y ;

Introducimos los valores dados por la condición inicial:

In[2]:= x0 =4; y0 = 5;

Introducimos el valor de h:

In[4]:= h= 0.1;

Introducimos el número de iteraciones:

In[5]:= k= 5;

Aplicamos la fórmula de Euler:

In[6]:= Do@xn+1 =xn +h, 8n, 0, k<D; Do@8k1 =h*f@xn, ynD, k2 =h*f@xn +0.5*h, yn +0.5*k1D,

k3 =h*f@xn +0.5*h, yn +0.5*k2D, k4 =h*f@xn +h, yn +k3D, yn+1 =yn + H1ê6L *Hk1 +2*k2 +2*k3 +k4L<, 8n, 0, k-1<D;

Le pedimos a MATHEMATICA que nos despliegue una tabla con los datos obtenidos:

In[8]:= Print@ "La tabla de valores obtenidos mendiante el método de Runge-Kutta es:"D

Table@8x i,y i<, 8i,0,k<D êê TableForm

La tabla de valores obtenidos mendiante el método de Runge-Kutta es:

Out[9]//TableForm= 4 5 4.1 5.15956 4.2 5.32095 4.3 5.48415 4.4 5.64913 4.5 5.81587

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C.182

Ejercicios complementarios personalizados:

1A. Dada la ecuación diferencial:

Usa el método de Euler para aproximar ) 6 d 3 . 2 ( y tomando en cada paso del proceso iterativo.

1B. Dada la ecuación diferencial:

Usa el método de Euler para aproximar ) 1 d 3 . 1 ( y tomando en cada paso del proceso iterativo.

2A. Dada la ecuación diferencial:

Usa el método de Euler mejorado para aproximar ) 7 d 3 . 2 ( y tomando en cada paso del proceso iterativo.

2B. Dada la ecuación diferencial:

Usa el método de Euler mejorado para aproximar ) 6 d 3 . 3 ( y tomando en cada paso del proceso iterativo.

2C. Dada la ecuación diferencial:

Usa el método de Runge­Kutta para aproximar ) 1 d 3 . 4 ( y tomando en cada paso del proceso iterativo.