practicas de laboratorio - isidoro ponte€¦ · por lo tanto la ecuación de la recta es: para...
TRANSCRIPT
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.
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C.128
PRACTICAS DE LABORATORIO MÉTODOS NUMÉRICOS
PRÁCTICA 2122: 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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C.136
METODO DE NEWTONRAPHSON
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 NewtonRaphson 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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C.137
Que es la fómula iterativa de NewtonRaphson para calcular la siguiente aproximación:
, si
Note que el método de NewtonRaphson 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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 NewtonRaphson, pero evita el cálculo de la derivada usando la siguiente aproximación:
Sustituyendo en la fórmula de NewtonRaphson, obtenemos:
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 NewtonRaphson. 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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 NewtonRaphson 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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C.143
PRACTICAS DE LABORATORIO MÉTODOS NUMÉRICOS
PRÁCTICA 2324: 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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C.164
PRACTICAS DE LABORATORIO MÉTODOS NUMÉRICOS
PRÁCTICA 2526: 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 NewtonCotes y el algoritmo de Romberg.
Las fórmulas de NewtonCotes 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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C.173
PRACTICAS DE LABORATORIO MÉTODOS NUMÉRICOS
PRÁCTICA 2728: 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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 RungeKutta 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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C.180
MÉTODO DE RUNGE – KUTTA
Sin entrar en mucho detalle, mencionamos solamente que el método de RungeKutta 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 RungeKutta si contiene como casos especiales los de Euler.
Las fórmulas
donde
Se conocen como las reglas o fórmulas de RungeKutta de orden cuatro para la ecuación diferencial:
Este programa usa el método de RungeKutta 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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.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 RungeKutta para aproximar ) 1 d 3 . 4 ( y tomando en cada paso del proceso iterativo.