tarea5

9
F ´ ısica Computacional. Tarea 5 Andr´ es Gald´ amez Mart´ ınez. 9 Octubre 2015 1.- Usa interpolaci´ on de Lagrange con un polinomio c´ ubico para demostrar la regla de 3/8 de Simpson de integraci´ on: Z x 3 x 0 f (x) dx 3h 8 (f 0 +3f 1 +3f 2 + f 3 ) Para usar la aproximaci´ on de Simpson usamos la interpolaci´ on de Lagrange de la funci´ on f (x) en un polinomio f 3 (x) el cual obtendremos con una f´ ormula interpolante en cuatro puntos (x 0 ,f (x 0 )), (x 1 ,f (x 1 )), (x 2 ,f (x 2 )) y (x 3 ,f (x 3 )). El polinomio interpolante f 3 (x) ser´ a de grado 3 y de acuerdo con la f´ ormula de interpolaci´ on de Lagrange, estar´ a dada por f 3 (x)= f (x 0 ) (x - x 1 )(x - x 2 )(x - x 3 ) (x 0 - x 1 )(x 0 - x 2 )(x 0 - x 3 ) + f (x 1 ) (x - x 0 )(x - x 2 )(x - x 3 ) (x 1 - x 0 )(x 1 - x 2 )(x 1 - x 3 ) +f (x 2 ) (x - x 0 )(x - x 1 )(x - x 3 ) (x 2 - x 0 )(x 2 - x 1 )(x 2 - x 3 ) + f (x 3 ) (x - x 0 )(x - x 1 )(x - x 2 ) (x 3 - x 0 )(x 3 - x 1 )(x 3 - x 2 ) (1) onde h = x 3 -x 0 3 = x 1 - x 0 = x 2 - x 1 = x 3 - x 2 . Con ´ esto expresamos la ecuaci´ on (1). f 3 (x)= Z x 3 x 0 f (x 0 ) (x - x 1 )(x - x 2 )(x - x 3 ) (-h)(-2h)(-3h) + f (x 1 ) (x - x 0 )(x - x 2 )(x - x 3 ) (h)(-h)(-2h) +f (x 2 ) (x - x 0 )(x - x 1 )(x - x 3 ) (2h)(h)(-h) + f (x 3 ) (x - x 0 )(x - x 1 )(x - x 2 ) (3h)(2h)(h) dx = - f (x 0 ) 6h 3 Z x 3 x 0 (x - x 1 )(x - x 2 )(x - x 3 ) dx + f (x 1 ) 2h 3 Z x 3 x 0 (x - x 0 )(x - x 2 )(x - x 3 ) dx - f (x 2 ) 2h 3 Z x 3 x 0 (x - x 0 )(x - x 1 )(x - x 3 ) dx + f (x 3 ) 6h 3 Z x 3 x 0 (x - x 0 )(x - x 1 )(x - x 2 ) dx (2) = I 0 + I 1 + I 2 + I 3 (3) Donde las integrales que tenemos son de la forma; I = Z (x - a)(x - b)(x - c) dx = Z (x 2 - ax - bx + ab)(x - c) dx Haciendo integraci´ on por partes; 1

Upload: tterminatorrrrrr

Post on 23-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: tarea5

Fısica Computacional. Tarea 5

Andres Galdamez Martınez.

9 Octubre 2015

1.- Usa interpolacion de Lagrange con un polinomio cubico para demostrar la regla de3/8 de Simpson de integracion:∫ x3

x0

f(x) dx ≈ 3h

8(f0 + 3f1 + 3f2 + f3)

Para usar la aproximacion de Simpson usamos la interpolacion de Lagrange de la funcion f(x) enun polinomio f3(x) el cual obtendremos con una formula interpolante en cuatro puntos (x0, f(x0)),(x1, f(x1)), (x2, f(x2)) y (x3, f(x3)). El polinomio interpolante f3(x) sera de grado 3 y de acuerdo conla formula de interpolacion de Lagrange, estara dada por

f3(x) = f(x0)(x− x1)(x− x2)(x− x3)

(x0 − x1)(x0 − x2)(x0 − x3)+ f(x1)

(x− x0)(x− x2)(x− x3)(x1 − x0)(x1 − x2)(x1 − x3)

+f(x2)(x− x0)(x− x1)(x− x3)

(x2 − x0)(x2 − x1)(x2 − x3)+ f(x3)

(x− x0)(x− x1)(x− x2)(x3 − x0)(x3 − x1)(x3 − x2)

(1)

donde h = x3−x03 = x1 − x0 = x2 − x1 = x3 − x2. Con esto expresamos la ecuacion (1).

f3(x) =

∫ x3

x0

(f(x0)

(x− x1)(x− x2)(x− x3)(−h)(−2h)(−3h)

+ f(x1)(x− x0)(x− x2)(x− x3)

(h)(−h)(−2h)

+f(x2)(x− x0)(x− x1)(x− x3)

(2h)(h)(−h)+ f(x3)

(x− x0)(x− x1)(x− x2)(3h)(2h)(h)

)dx

= −f(x0)

6h3

∫ x3

x0

(x− x1)(x− x2)(x− x3) dx+f(x1)

2h3

∫ x3

x0

(x− x0)(x− x2)(x− x3) dx

−f(x2)

2h3

∫ x3

x0

(x− x0)(x− x1)(x− x3) dx+f(x3)

6h3

∫ x3

x0

(x− x0)(x− x1)(x− x2) dx (2)

= I0 + I1 + I2 + I3 (3)

Donde las integrales que tenemos son de la forma;

I =

∫(x− a)(x− b)(x− c) dx =

∫(x2 − ax− bx+ ab)(x− c) dx

Haciendo integracion por partes;

1

Page 2: tarea5

I =(x− a)(x− b)(x− c)2

2−∫ (

2x(x− c)2

2− a(x− c)2

2− b(x− c)2

2

)dx

I =(x− a)(x− b)(x− c)2

2− (x− c)4

4+

(− c+

a

2+b

2

)((x− c)3

3

)(4)

Con esta ultima expresion podemos encontrar las expresiones para las Ii que necesitamos, tendremosentonces que;

I0 = −f(x0)

6h3

((x− x1)(x− x2)(x− x3)2

2− (x− x3)4

4+

(− x3 +

x12

+x22

)((x− x3)3

3

))∣∣∣∣x3

x0

=f(x0)

6h3

((x0 − x1)(x0 − x2)(x0 − x3)2

2− (x0 − x3)4

4+

(− x3 +

x12

+x22

)((x0 − x3)3

3

))

=f(x0)

6h3

((−h)(−2h)(−3h)2

2− (−3h)4

4+

(−3h

2

)((−3h)3

3

))=f(x0)

6h3

(9h4 − 81h4

4+

27h4

2

)

=3

8f(x0)h (5)

Para I1 se tiene que;

I1 =f(x1)

2h3

((x− x0)(x− x2)(x− x3)2

2− (x− x3)4

4+

(− x3 +

x02

+x22

)((x− x3)3

3

))∣∣∣∣x3

x0

= −f(x1)

2h3

(− (x0 − x3)4

4+

(−x3 +

x02

+x22

)((x0 − x3)3

3

))= −f(x1)

2h3

(− (−3h)4

4+

(−2h)(−3h)3

3

)

= −f(x1)

2h3

(−81h4

4+ 18h4

)=

9

8f(x1)h (6)

Para I2 entonces;

I2 = −f(x2)

2h3

((x− x0)(x− x1)(x− x3)2

2− (x− x3)4

4+

(− x3 +

x02

+x12

)((x− x3)3

3

))∣∣∣∣x3

x0

=f(x2)

2h3

(− (x0 − x3)4

4+

(−x3+

x02

+x12

)((x0 − x3)3

3

))=f(x2)

2h3

(− (−3h)4

4+

(−5h

2

)((−3h)3

3

))

=f(x2)

2h3

(− 81h4

4+

45h4

2

)=

9

8f(x2)h (7)

2

Page 3: tarea5

Para I3 entonces;

I3 =f(x3)

6h3

((x− x0)(x− x1)(x− x2)2

2− (x− x2)4

4+

(− x2 +

x02

+x12

)((x− x2)3

3

))∣∣∣∣x3

x0

=f(x3)

6h3

((x3 − x0)(x3 − x1)(x3 − x2)2

2− (x0 − x2)4

4+

(− x2 +

x02

+x12

)((x3 − x2)3

3

))=f(x3)

6h3

((3h)(2h)(h2)

2− (h)4

4+

(− 3h

2

)(h3

3

)+

(−2h)4

4−(−3h

2

)((−2h)3

3

))

=f(x3)

6h3

(3h4 − h4

4− h4

2+ 4h4 − 4h4

)=

3

8f(x3)h (8)

Sustituyendo (5-8) en (4) tendremos que;∫ x3

x0

f(x) ≈ 3

8h

(f(x0) + 3f(x1) + 3f(x2) + f(x3)

)(9)

Que es la expresion de la regla 3/8 de Simpson.

2.-Considere la elipse dada por la siguiente ecuacion(x

2

)2

+

(y

5

)2

= 1

a)Calcula numericamente el area de esta elipseb)Calcula numericamente su longitud de arco

a) Para poder calcular el area de la elipse, hacemos la integral doble por el metodo de Riemman. Elmetodo consiste en dividir el interior de la elipse en un cuadriculado, calcular el area de cada uno delos pequenos rectangulos en el interior y sumarlas. El programa que hace esto es ej2a.f90 cuyo codigose muestra a continuacion;

3

Page 4: tarea5

program IntegralElipse

dimension x(0:10000),fx(0:10000),fx1(0:10000)

hx=0.01

do i=0,400

x(i)=i*hx-2

fx(i)=(5.*sqrt(4.-x(i)**2))/2.

fx1(i)=-fx(i)

end do

ny=200

area=0.

do i=0,399

hy=(fx(i)-fx1(i))/ny

do j=1,ny

area=area+hy*hx

end do

end do

write(*,*)”El area es=”, area

end

En este caso la el intervalo de x va desde -2 a 2. La particion se hace con la variable hx tomandointervalos 400 intervalos de 0.01 de longitud. Los limites en ”y”van desde;

y ∈[− 5

2

√4− x2, 5

2

√4− x2

]La particion en y (hy) se hizo tomando la diferencia entre estas expresiones para un determinado valorde x y dividido entre 200. Con estos valores para las particiones el valor calculado de integral es;

A = 31,4130383

Donde el valor teorico de la integral es 10π. Para esta particion el valor obtenido no es tan malo, sinembargo refinando la particion no necesariamente se obtiene un mejor valor para la integral.

b)Para calcular el valor de la longitud de arco de la elipse consideremos que la longitud de arco L estadada por;

L =

∮ √1 +

(dy

dx

)2

dx

Si consideramos que la ecuacion de la elipse es de la forma (x/a)2 + (y/b)2 = 1, se tiene entonces que

y =√

a2b−x2b2

a2por lo que;

4

Page 5: tarea5

dy

dx=

1

2

(a2b2 − x2b2

a2

)− 12(− 2xb2

a2

)⇒

(dy

dx

)2 x2b2

a2(a2 − x2)Ya que la longitud de arco sera 4 veces la del arco que se encuentra en el primera cuadrante, laexpresion que tenemos para la longitud sera entonces;

L = 4

∫ a

0

√1 +

b2x2

a2(a2 − x2)dx = 4

∫ 2

0

√1 +

25x2

4(4− x2)dx

Esta integral se calcula utilizando el programa ej2b.f90 cuyo codigo se muestra a continuacion. El pro-grama utiliza el metodo 3/8 de Simpson para calcular la integral. Los detalles del codigo se explicancon mas detalle en el problema 3 de esta tarea.

program integracionlongitud

real :: x(0:1000000),o

a=0

!limite inferior

b=2

!limite superior

n=1000000

h=(b-a)/float(n)

o=0.0

do i=0,n-3,3

x1=a+i*h

x2=a+(i+1)*h

x3=a+(i+2)*h

x4=a+(i+3)*h

o=o+(3./8.)*(f(x1)+3*f(x2)+3*f(x3)+f(x4))*h

end do

write(*,*)”La longitud de arco es=”, 4*o

end

real function f(x)

f=sqrt(1.+((25.*x**2.)/(4.*(4.-x**2.))))

end function

El valor obtenido para la integral es;

L = 22,9848557

El valor que se obtiene usando Mathematica 9 para hacer la integral es, L = 8EllipticE[−(21/4)] =23,0131 donde EllipticE[m] es la funcion que da la integral elıptica completa de m

5

Page 6: tarea5

3.- Calcula numericamente la siguiente integral usando la regla 3/8 de Simpson∫ 2

0

sen(x)

xdx

El programa que calcula la integral anterior es ej3.f90. Cuyo codigo es el siguiente;

program integracionsimpson

real :: x(0:10000), o

a=0

!limite inferior

b=2

!limite superior

n=100000

h=(b-a)/float(n)

!partimos el segmento de b .a.a en 100000 inter-

valos de igual longitud

o=0.0

!simpson 3 octavos

do i=1,n-3,3

x1=a+i*h

x2=a+(i+1)*h

x3=a+(i+2)*h

x4=a+(i+3)*h

o=o+(3./8.)*(f(x1)+3*f(x2)+3*f(x3)+f(x4))*h

end do

write(*,*) .El valor de la integral es=”,o

end

real function f(x)

f=sin(x)/x

end function

Es importante mencionar que se define la variable i, para que vaya desde 1 a n-3, de 3 en 3, esto sehace porque se necesita un total de cuatro puntos en un mismo intervalo para hacer la aproximacion3/8 de Simpson(Problema 1). La variable i empieza en 1 y no en 0 porque para i=0 la funcion f(x) sein determina y el programa manda el error NaN. El resultado de la integral que se obtiene con esteprograma es; ∫ 2

0

sen(x)

xdx = 1,60539210

6

Page 7: tarea5

4.-Sea;

f(x) =

∫ x

1e2tsen(3t) dt (10)

Determina los valores de la funcion f(x) para x=1.5,1.6,1.7...4.0

El programa que determina los valores de las integrales que se nos pide es ej4.f90. El programa esuna adaptacion del codigo para calcular la integral por el metodo 3/8 de simpson donde usamos elcomando read y un do extra para ir cambiando el limite superior de la integral. El archivo de lecturacon los valores de los limites superiores es a.dat, los valores de la integrales se mandan al documentoresultados.dat. El codigo es el siguiente.

program integracionlista

real :: x(0:10000),c(0:10000),o

open(1,File=’a.dat’,status=’old’)

open(2,File=’resultados.dat’)

N=25

do i=0,N

read(1,*) c(i)

end do

do j=0,N

a=1

!limite inferior

b=c(j)

!limite superior

n=10000

h=(b-a)/float(n)

!partimos el segmento de b .a.a en 100000 inter-

valos de igual longitud

o=0.0

!simpson 3 octavos

do i=1,n-3,3

x1=a+i*h

x2=a+(i+1)*h

x3=a+(i+2)*h

x4=a+(i+3)*h

7

Page 8: tarea5

o=o+(3./8.)*(f(x1)+3*f(x2)+3*f(x3)+f(x4))*h

end do

write(2,*) c(j),o

end do

end

real function f(x)

f=exp(2*x)*sin(3*x)

end function

Los resultados se muestran en el cuadro 1.

Referencias

[1] Burden, R., Numerical Analysis , 9th Edition, U.E.A Cengage Learning,2010.

8

Page 9: tarea5

Cuadro 1: Resultados problema 4

x f(x)

1.50000000 -3.892153261.60000002 -6.103709221.70000005 -8.730107311.79999995 -11.5601131.89999998 -14.24635312.00000000 -16.29336742.09999990 -17.06314472.20000005 -15.80568412.29999995 -11.72283842.40000010 -4.070596222.50000000 7.696525572.59999990 23.74165922.70000005 43.63178252.79999995 66.11280822.90000010 88.90442663.00000000 108.5550383.09999990 120.4131553.20000005 118.7706993.29999995 97.24784853.40000010 49.46983343.50000000 -29.92107013.59999990 -143.9193573.70000005 -291.520663.79999995 -465.9114693.90000010 -652.692814.00000000 -828.424133

9