tarea5
Post on 23-Jan-2016
212 Views
Preview:
TRANSCRIPT
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
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
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
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
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
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
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
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
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
top related