Práctica nº6 Integración Numérica 1er Ejercicio: Fórmulas de cuadratura de Newton Cotes Cerradas 1.- Generar la fórmula correspondiente a la primera regla de Simpson: - Comenzamos sabiendo que se hace un cambio de variable de x a t para trabajar de forma mas sencilla con nodos igualmente espaciados - Crear un listado de puntos {i,f[xi ]} - Calcular el polinomio Interpolador en la variable t - Integrar el polinomio teniendo en cuenta que se ha hecho un cambio de variable para pasar del los puntos x0 ,x1 ,x2 a los puntos 0,1,2 (deberá aparecer el término h en la expresión de la integral) 2.- Generar todas las fórmulas de integración cerradas para valores desde n=1 hasta n=8 (mediante un ciclo For) Solución Apartado 1 crear el listado de puntos In[1]:= Out[1]= l = Table@8i, f@xi D<, 8i, 0, 2<D 880, f@x0 D<, 81, f@x1 D<, 82, f@x2 D<< Crear el polinomio interpolador In[2]:= Out[2]= In[3]:= Out[3]= q@t_D = InterpolatingPolynomial@l, tD f@x0 D + t J−f@x0 D + f@x1 D + 1 H−1 + tL Hf@x0 D − 2 f@x1 D + f@x2 DLN 2 Simplify@Expand@q@tDDD 1 HH2 − 3 t + t2 L f@x0 D + t H−2 H−2 + tL f@x1 D + H−1 + tL f@x2 DLL 2 Integrar el polinomio Interpolador int = h ∗ ‡ q@tD t 2 In[4]:= 0 Out[4]= 1 h Hf@x0 D + 4 f@x1 D + f@x2 DL 3 2 practica6.nb Apartado 2 In[5]:= ForAn = 1, n ≤ 8, l = Table@8i, f@xi D<, 8i, 0, n<D; q@t_D = InterpolatingPolynomial@l, tD; int = h ∗ ‡ q@tD t; Print@"n=", n, " n I=", intD; n ++E 0 n=1 I= n=2 I= n=3 I= n=4 I= n=5 I= 1 h Hf@x0 D + f@x1 DL 2 1 h Hf@x0 D + 4 f@x1 D + f@x2 DL 3 3 h Hf@x0 D + 3 f@x1 D + 3 f@x2 D + f@x3 DL 8 2 h H7 f@x0 D + 32 f@x1 D + 12 f@x2 D + 32 f@x3 D + 7 f@x4 DL 45 5 h H19 f@x0 D + 75 f@x1 D + 50 f@x2 D + 50 f@x3 D + 75 f@x4 D + 19 f@x5 DL 288 n=6 I= 1 h H41 f@x0 D + 216 f@x1 D + 27 f@x2 D + 272 f@x3 D + 27 f@x4 D + 216 f@x5 D + 41 f@x6 DL 140 1 n=7 I= H7 h H751 f@x0 D + 3577 f@x1 D + 1323 f@x2 D + 17280 2989 f@x3 D + 2989 f@x4 D + 1323 f@x5 D + 3577 f@x6 D + 751 f@x7 DLL 1 14175 H4 h H989 f@x0 D + 5888 f@x1 D − 928 f@x2 D + 10496 f@x3 D − 4540 f@x4 D + 10496 f@x5 D − 928 f@x6 D + 5888 f@x7 D + 989 f@x8 DLL n=8 I= 2º Ejercicio: Caso particular Particularizar el ejercicio anterior para resolver el problema Ÿ1 Sin@xD „ x 3 Solución In[6]:= In[7]:= Out[7]= In[8]:= f@x_D = Sin@xD Sin@xD a = 1; b = 3; Caso particular n=2 In[9]:= cálculo de h practica6.nb In[9]:= Out[9]= h= 3 b−a 2 1 Listado de puntos In[10]:= Out[10]= l = Table@8i, f@a + i ∗ hD<, 8i, 0, 2<D 880, Sin@1D<, 81, Sin@2D<, 82, Sin@3D<< Polinomio interpolador In[11]:= Out[11]= In[12]:= Out[12]= q@t_D = InterpolatingPolynomial@l, tD Sin@1D + t J−Sin@1D + Sin@2D + Expand@q@tDD êê N 1 H−1 + tL HSin@1D − 2 Sin@2D + Sin@3DLN 2 0.841471 + 0.485828 t − 0.418002 t2 integral en la variable t int = h ‡ q@tD t 2 In[13]:= 0 Out[13]= In[14]:= Out[14]= 1 HSin@1D + 4 Sin@2D + Sin@3DL 3 N@intD 1.53993 Caso General (n desde 1 hasta 8) In[15]:= ?f Global`f f@x_D = Sin@xD In[16]:= ForAn = 1, n ≤ 8, h = Hb − aL ê n; l = Table@8i, f@a + Hi ∗ hLD<, 8i, 0, n<D; q@t_D = InterpolatingPolynomial@l, tD; int = h ∗ ‡ q@tD t; n Print@"n=", n, " n=1 I=0.982591 n=2 I=1.53993 n=3 I=1.53452 n=4 I=1.53024 n=5 I=1.53026 n=6 I=1.5303 n=7 I=1.53029 n=8 I=1.53029 I=", int êê ND; n ++E 0 4 practica6.nb 3er Ejercicio: Formulas abiertas - Generar todas las fórmulas de integración abiertas para valores desde n=0 hasta n=8 (mediante un ciclo For) Solución In[17]:= Clear@fD In[18]:= Clear@hD In[19]:= ForAn = 0, n ≤ 8, l = Table@8i, f@xi D<, 8i, 0, n<D; q@t_D = InterpolatingPolynomial@l, tD; int = h ∗ ‡ n+1 q@tD t; Print@"n=", n, " I=2 h f@x0 D I=", intD; n ++E −1 n=0 n=1 n=2 n=3 n=4 n=5 n=6 n=7 3 h Hf@x0 D + f@x1 DL 2 4 I= h H2 f@x0 D − f@x1 D + 2 f@x2 DL 3 5 I= h H11 f@x0 D + f@x1 D + f@x2 D + 11 f@x3 DL 24 3 I= h H11 f@x0 D − 14 f@x1 D + 26 f@x2 D − 14 f@x3 D + 11 f@x4 DL 10 7 h H611 f@x0 D − 453 f@x1 D + 562 f@x2 D + 562 f@x3 D − 453 f@x4 D + 611 f@x5 DL I= 1440 8 I= h H460 f@x0 D − 954 f@x1 D + 945 2196 f@x2 D − 2459 f@x3 D + 2196 f@x4 D − 954 f@x5 D + 460 f@x6 DL I= 1 H9 h H1787 f@x0 D − 2803 f@x1 D + 4967 f@x2 D − 4480 1711 f@x3 D − 1711 f@x4 D + 4967 f@x5 D − 2803 f@x6 D + 1787 f@x7 DLL I= n=8 I= 1 H5 h H4045 f@x0 D − 11690 f@x1 D + 33340 f@x2 D − 55070 f@x3 D + 67822 f@x4 D − 4536 55070 f@x5 D + 33340 f@x6 D − 11690 f@x7 D + 4045 f@x8 DLL 4º Ejercicio: Caso particular Particularizar el ejercicio anterior para resolver el problema Ÿ1 Sin@xD „ x 3 practica6.nb 5 Solución In[20]:= Clear@fD In[21]:= f@x_D = Sin@xD Out[21]= In[22]:= In[23]:= Sin@xD a = 1; b = 3; ForAn = 0, n ≤ 8, h = Hb − aL ê Hn + 2L; l = Table@8i, f@a + Hi + 1L ∗ hD<, 8i, 0, n<D; q@t_D = InterpolatingPolynomial@l, tD; int = h ∗ ‡ Print@"n=", n, " n=0 I=1.81859 n=1 I=1.71849 n=2 I=1.52176 n=3 I=1.5244 n=4 I=1.53041 n=5 I=1.53038 n=6 I=1.53029 n=7 I=1.53029 n=8 I=1.53029 I=", int êê ND; n ++E n+1 q@tD t; −1 5º Ejercicio: Fórmulas de cuadratura Gaussiana Aplicar las fórmulas de cuadratira Gaussiana desde valores den=2 hasta n=6 para resolver la integral Ÿ1 Sin@xD „ x 3 Nota: Ténga en cuenta que se debe aplicar el paquete GaussianQuadrature para resolver este problema (Mirar la Ayuda) Solución In[24]:= <<NumericalMath`GaussianQuadrature` In[25]:= pares=GaussianQuadratureWeights[2, 1, 3,30] Out[25]= 881.422649730810374235490851219498, 1.00000000000000000000000000000<, 82.577350269189625764509148780502, 1.0000000000000000000000000000<< 6 practica6.nb int = NA‚ Hpares@@i, 2DD ∗ f@pares@@i, 1DDDL, 30E 2 In[26]:= i=1 Out[26]= In[27]:= 1.5238221376597224573878111653 ForAn = 2, n ≤ 6, pares = GaussianQuadratureWeights@n, 1, 3, 10D; int = NA‚ Hpares@@i, 2DD ∗ f@pares@@i, 1DDDL, 10E; n i=1 Print@"n=", n, " Int=", intD; n ++;E n=2 Int=1.52382214 n=3 Int=1.53035080 n=4 Int=1.53029455 n=5 Int=1.53029480 n=6 Int=1.53029480 NA‡ f@xD x, 30E 3 In[28]:= 1 Out[28]= 1.53029480246858517467250940217