Sunteți pe pagina 1din 16

Lecci n H o

Diferenciaci n e integracion numrica o e


H.1. Diferenciaci n numrica o e

Se nos plantea ahora el problema de calcular la derivada de una funci n de la que s lo conocemos o o un numero finito de datos. Dos m todos son los ms usuales a la hora de resolver tal problema: e a Derivar un polinomio de interpolaci n construido mediante alguno de los m todos estudiados o e en el cap tulo anterior. La funci n h_deriv definida en el libro [7], pg. 249, permite el c lculo o a a de las sucesivas derivadas en un punto dado del polinomio interpolante asociado a nuestros datos. Calcular directamente la derivada utilizando para ello aproximaciones de la funci n mediante o los polinomios de Taylor. Las f rmulas obtenidas de esta manera reciben el nombre de frmulas o o de diferencias finitas. Prctica a Sean x,y el conjunto de datos dados debajo. Queremos estimar las sucesivas derivaa das en el punto a = 0.3 utilizando la funci n h_deriv citada anteriormente, lo que significa o calcular las sucesivas derivadas del polinomio interpolador asociado a x,y; para ello, ejecutamos: x=[0 0.2 0.4 0.6 0.5672 0.6982 0.7941 0.8614 derivadas=h_deriv(x,y,a) 0.8 1 ]; y=[0.3927 0.9053]; a=0.3;

El resultado, en orden de derivada creciente y empezando por f 1) (0.3), es 0.6533 -0.9710 1.0406 -1.3750 1.8750 Prctica b a La definici n de derivada de una funci n f viene dada por la expresi n o o o f (x + h) f (x) h (H.1)

f t (x) = h0 l m con lo cual podemos decir que

f (x + h) f (x)

es una aproximaci n de f con tal de que h o h sea suficientemente pequeno. De hecho usando el desarrollo de Taylor para la funci n f en el o punto x podemos poner

LECCION H. DIFERENCIACION E INTEGRACION NUMERICA 73

f (x + h) = f (x) + hf t (x) + O(h) lo que significa que el error cometido al aproximar f t (x) por el valor orden 1 respecto de h. Utilizando Taylor tambi n pod e amos haber puesto h2 f (x + h) f (x) h

(H.2) es de

f (x+h) = f (x)+hf t (x)+ y, por tanto, f t (x) =

f tt (x)+O(h3 )f (x h) = f (x) hf t (x)+ h f tt (x)+O(h3 ) (H.3) 2! 2! + O(h3 ). Y procediendo de forma anloga se puede a

f (x + h) f (x h)

2h obtener las siguientes f rmulas para las derivadas primera y segunda: o

Derivada primera de f en x0 Derivada segunda de f en x0 f1 f0 f2 2f1 + f0 + O(h) + O(h2 ) h h2 f1 f1 f1 2f0 + f1 + O(h2 ) (H.4) + O(h2 ) 2h h2 f3 + 4f2 5f1 + 2f0 f2 + 4f1 3f0 + O(h2 ) + O(h2 ) 2h h2 f2 + 16f1 30f0 + 16f1 f 2 f2 + 8f1 8f 1 + f2 + + 2 2 2 O(h ) O(h ) 12h 12h Vamos a aplicar alguna de estas f rmulas en el c lculo de la derivada de f (x) = arct x en o a x = 2 y con paso h = 0.1. Ejecutamos el listado x=sqrt(3); h=0.01; ex=-0.5; %ex= valor exacto de la derivada de f en x at=atanh(x); ath=atanh(x+h); at2h=atanh(x+2*h); at3h=atanh(x+3*h); atmh=atanh(x-h); atm2h=atanh(x-2*h); f2pa=(ath-at)/h; er2pa=abs(f2pa-ex); f3pc=(ath-atmh)/(2*h); er3pc=abs(f3pc-ex); f3pa=(-at2h+4*ath-3*at)/(2*h); er3pa=abs(f3pa-ex); f4pc=(-at2h+8*ath-8*atmh+atm2h)/(12*h); er4pc=abs(f4pc-ex); resultados=[f2pa,f3pc,f3pa,f4pc]; errores=[er2pa,er3pc,er3pa,er4pc]; fprintf(\t 2p. adel.\t 2p. centr.\t 3p. adel.\t 4p. centr. \n) fprintf(f(x)\t %e\t %e\t %e\t %e\n,resultados.) fprintf(error:\t %e\t %e\t %e\t %e\n,errores) En los resultados podemos comprobar que son ms exactas las f rmulas centradas y con a o mayor numero de puntos que sus anlogas. a

H.2.

Integraci n numrica o e

Los m todos de integraci n num rica nos permiten integrar funciones que est n definidas anal e o e a ticamente o de las que s lo conocemos su tabla en un numero finito de puntos. o

H.2. INTEGRACION NUMERICA

75

Consideremos el caso en que tenemos un conjunto de puntos a = x0 < x1 < . . . < xn = b equiespaciados y que queremos calcular la integral de determinada funci n f definida sobre el o intervalo [a, b]. Podemos entonces considerar el polinomio interpolador de f respecto a los nodos xi , ver (G.11) y su integral con la esperanza de as obtener una aproximaci n a la integral de f . De o hecho, tenemos
a b

f (x) dx =
a

(f0 +

x x0 f0 + . . . h
b

(H.5)

(x x0 )(x x1 ) (x En (x) dx xn 1 ) n f0 ) dx + n n!h


a

donde En es el error cometido al aproximar la funci n f por su polinomio interpolador y cuya o expresi n (ver [10], pg. 37, [3], pg. 291) es: o a o a
n+1) (z ) x En (x) = (x x0)(x x1 ) (x xn ) f , x0 < zx < xn (n + 1)! de esto ultimo y utilizando el teorema de la media integral se deduce

(H.6)

n+1) (z t ) x En (x) dx = f (n + 1)!

(x x0 )(x x1 ) . . . (x xn ) dx,

x0 < zt < xn x

(H.7)

En particular, si aproximamos f en [a, b] fragmentariamente mediante polinomios de grado uno entonces el polinomio interpolante en el fragmento [x0 , x1] tiene la forma P (x) = f0 + de donde
x1 f (x)

x x0 f0 h x1
x0

(H.8)

dx =

x1
x0

[f0 + h

xx0 h

f0 ] dx +

E(x) dx (H.9) h f tt (0,1 ) 3 3 h = (f0 + f1 ) h 12 2 x1 y que h(f tt (0,1)) = x0 f tt (x) dx + o(h)

x0

f tt (0,1 )

= hf0 + (f1 f0 ) 12 2 x1 xn b Ahora teniendo en cuenta que a = + + concluimos que


b x0

xn1

f = [(f0 + f1 ) + (f1 + f2 ) + + (f n1 + fn f tt (x) dx + o(h)] (H.10) )] [ a 2 a 12 h = (f0 + 2f1 + + 2fn1 + fn ) + cT h2 + o(h2 ) (H.11) 2 La regla que aproxima b f mediante el numero T (f, h) = h (f0 + 2f1 + + 2fn 1 + f ) se n a 2 h2 b tt 2 = denomina regla de los trapecios y a la expresi n cT h o f (x) dx se la denomina parte 12 a principal del error al aproximar la integral de f por la regla de los trapecios T (f, h). Nota: Para que todas las expresiones anteriores sean correctas es necesario exigir que f C 3 [a, b], es decir, que f posea derivada de orden 3 continua. Si en lugar de fragmentar el intervalo [a, b] en los subintervalos [xi , xi+1 ] utilizando aproximaciones lineales en cada uno de ellos hubi ramos fragmentado en los subintervalos [x0 , x2 ],. . . ,[x2k2 , x2k=n ] e

76

LECCION H. DIFERENCIACION E INTEGRACION NUMERICA

y en cada uno de estos fragmentos hubisemos utilizado un polinomio interpolador de orden dos e respecto a los datos (xi , fi ) entonces (x x0 )(x x1 ) 2 f0 2h2 h ser el polinomio interpolador en el primer fragmento y tendr a amos P0,2 (x) = f0 + f0 +
b x2

(x x0 )

(H.12)

x0

h f = (f + 4f1 + f2 ) h5 f 4) (zx ) 0 3 90

(H.13)

h f = (f + 4f1 + 2f2 + + 2f2k2 + 4f 4 4 (H.14) 2k1 + fn ) + cSh + o(h ) 0 3 a La regla que nos aproxima b f mediante el numero S(f, h) = h (f0 +4f1 +2f2 + +4f2k 1 +f ) n a 3 b 4 = h4 1 4) recibe el nombre de regla de Simpson y a la expresi n cS h o f (x) dx se la denomina 90 a parte principal del error al aproximar la integral de f por la regla de Simpson S(f, h). Nota: Anlogamente a la nota anterior, las f rmulas relacionadas con la regla de Simpson son a o ciertas a condici n de que f C 5 [a, b], es decir, de que f posea derivada de orden 5 continua. o b Es importante ahora observar que el error cometido al aproximar I = a f por el numero Ih = S(f, h) es f cilmente computable ya que de las relaciones a 1 I = Ih + cS h4 + o(h4 ); se obtiene, restando, Ih/2 Ih = 15cS (h/2)4 + o(h4 ), lo que nos permite concluir (H.17) 15 Esta f rmula, junto con su anloga para el caso de los trapecios (ver (H.20)), nos permite o a controlar el error cometido, siempre que c = 0, al aplicar la regla de Simpson y de los trapecios en el c lculo de la integral definida b f . En la pr ctica dichas f rmulas se emplean para adaptar a a o a el paso de integraci n h de modo que el error en el fragmento donde estamos integrando sea menor que o la tolerancia por nosotros admitida. De este modo surgen los m todos adaptativos de integraci n e o que si est n basados en la regla de los trapecios ser denominado m todo adaptativo de los trapecios a a e y si est basado en la regla de Simpson ser denominado m todo adaptativo de Simpson. a a e Se denomina regla de Runge el c lculo de la estimaci n aproximada del error segun (H.17) al a o cumplirse la condici n (H.15), ver [10] pg. 123. En general, si o a z = zh + chk + o(hk ) (H.18) I Ih/2 = Ih/2 Ih
4

I = Ih/2 +

cS h4 + o(h4 ) 16

(H.15)

y tambin cS (h/2)4 = e

Ih/2 Ih + o(h4 ) 15

(H.16)

+ o(h )

es la relaci n que verifica el valor exacto z en funci n de su aproximaci n zh ; entonces, la regla de o o o Runge nos dice que z zh/2 = zh/2 zh 2k 1 + o(hk ) (H.19)

H.2. INTEGRACION NUMERICA

77

deducindose, como caso particular, que el error de la regla de los trapecios viene dado por la e relaci n o I T (f, h/2) = T (f, h/2) T (f, h) 3 + o(h )
2

(H.20)

Para realizar la cuadratura o integral definida de una funci n f en el intervalo [a, b] por un o m todo adaptativo, Matlab cuenta con el comando quad. Su sintaxis es: e quad(nombre_f,a,b,tol,traza) donde tol es la tolerancia global en la cuadratura y traza es un par metro opcional, al igual que a tol, que por omisi n toman los valores tol= 1e 6 y traza= 0. Si traza= 0 entonces el programa o nos informa de las iteraciones y de la naturaleza de la convergencia del algoritmo. Prctica c Matlab cuenta con la funci n trapz(x,y) que realiza la integraci n de una funci n a o o o f dada como tabla de datos mediante la regla de los trapecios. Como ejemplo consideramos la funci n f que en el intervalo [0, 1] tiene la siguiente tabla o x y = f (x) 0 0 0.15 0.35 0.45 0.60 0.90 1.00

(H.21)

0.1494 0.3429 0.4350 0.5646 0.7833 0.8415

para calcular su integral en [0, 1] ejecutamos el listado x=[0 0.1500 0.3500 y=[0 0.1494 0.3429 Integral=trapz(x,y) 0.4500 0.4350 0.6000 0.5646 0.9000 0.7833 1.0000]; 0.8415];

Es tambin f cil obtener una funci n propia, I=h_trapz(nombre_f,a,b,h) que nos calcule e a o la cuadratura de una funci n f de nombre nombre_f en un intervalo [a, b] por la regla de los o trapecios y a partir de un paso de integraci n igual a h. o function I=h_trapz(nombre_f,a,b,h) n=floor((b-a)/h); hh=(b-a)/n; x=a+(0:n)*hh; y=feval(nombre_f,x); I=trapz(y)*hh; Prctica d Ejecutando el comando doc quad se nos explica la cuadratura de una funci n por el a o m todo adaptativo de Simpson empleado por Matlab para el c lculo num rico de integrales e a e definidas. Comprobar que con el comando quad(sin,0,pi,1e-8) obtenemos la integral de la funci n o seno en [0, ] con una tolerancia de 1e 8. Por ultimo, utilizar el comando quad para el c lculo de las integrales en el intervalo [0, 1] de a las funciones h10 y h15 siguientes: function f=h10(x) f=sqrt(x); function f=h15(x) f=(x.^(0.7)).*cos(x);

78

LECCION H. DIFERENCIACION E INTEGRACION NUMERICA

Prctica e Las funciones propias definidas en el libro de Nakamura, [7] pg. 2178, con los a a nombres I=h_simpsv(y,h) y I =h_simpsn(nombre_f,a,b,n) permiten el c lculo de la a integral definida de una funci n y = f (x) por la regla de Simpson en sus dos posibles formas: o h_simpsv lo hace cuando tenemos la funci n como una tabulaci n de valores equiespaciados o o a distancia h y h_simpsn lo hace a partir del nombre de f y del numero de nodos n + 1 en que fragmentamos el intervalo [a, b]. Como ejemplo, consideramos la funci n tangente en el o intervalo [0, /4], su tabulaci n con paso h = /24 es o x f (x) 0 0 0.1309 0.2618 0.3927 0.5236 0.6545 0.7854 0.1317 0.2679 0.4142 0.5774 0.7673 1.0000

(H.22)

/4 de modo que podemos obtener una aproximaci n al valor 0 tg(x) dx ejecutando Int= o h_simpsn(tan,0,pi/4,6) o equivalentemente ejecutando el listado y=[0 0.1317 0.2679 Int=h_simpsv(y,pi/24) 0.4142 0.5774 0.7673 1.0000];

H.3.

Integraci n numrica con l o e mites infinitos o singulares

En este apartado seguimos lo expuesto en la secci n 5.4 de [7]. o Una funci n es integrable en un dominio infinito, [, ] o semiinfinito, [a, ], [, b], s lo si o o es significativamente distinta de cero en un dominio acotado [K, K] y se aproxima a cero conforme la variable se aproxima a y . En definitiva, el primer paso para evaluar I =

f (x) dx

(H.23)

consiste en sustituir los l mite infinitos por l mites finitos: I =


K K

f (x) dx

(H.24)

donde K es un valor tan grande que la contribuci n para los valores de la x que verifican x [K, K] o es menor que la tolerancia por nosotros fijada. Emplearemos como m todo ms eficiente en el c lculo de la ecuaci n (H.24) el m todo de los e a a o e trapecios. Un ejemplo lo hacemos en la pr ctica siguiente a
1 Prctica f Consideramos la funci n h20(x) = f (x) = exp(x2 ) y su integral infinita I = a o f (x) dx. Primeramente hacemos una representaci gr fica de f para hacernos una idea on a

de su comportamiento, digamos en el intervalo [30, 30], lo que hacemos con el listado x=-30:0.1:30; y=(1/sqrt(pi))*exp(-x.^2); plot(x,y), grid De su gr fica observamos que f toma valores pr cticamente cero para x [4, 4]. Evaluamos a a la integral (H.24) con K = 4 y una magnitud de paso discreta, h = 0.5, para no hacer excesivamente largos los c lculos y vamos incrementando K en un factor de 1.5 siguiendo la a sucesi n K = 4, 6, 9, 13.5, . . . para ver si un incremento en el intervalo de integraci n significa o o un crecimiento del valor integral (H.24), si este valor permanece sensiblemente estable entonces

H.3. INTEGRACION NUMERICA CON L IMITES INFINITOS O SINGULARES

79

disminuimos la magnitud h hasta un numero que estimemos conveniente para la tolerancia con que estemos trabajando y, finalmente, si el valor obtenido ahora es semejante al que ya ten amos concluimos que el valor de la integral infinita de f es igual al valor estable obtenido. Aunque este proceso puede parecer laborioso en la pr ctica no requiere ms de diez pruebas. a a En el caso que nos ocupa ejecutamos K=4; I(1)=h_trapz(h20,-K,K,0.5); KK(1)=K; for k=2:5 KK(k)=KK(k-1)*1.5; K=KK(k); I(k)=h_trapz(h20,-K,K,0.5); end; fprintf(K\t %f\t %f\t %f\t %f\t %f\n, KK.) fprintf(Integ.\t %f\t %f\t %f\t %f\t %f\n, I.) II=h_trapz(h20,-K,K,0.1) fprintf(Si converge la integral vale %f\n,II) Como resultado del listado anterior obtenemos K 4.000000 6.000000 9.000000 13.500000 20.250000

Integ. 1.000000 1.000000 1.000000 1.000000 1.000000 Si existe la integral vale 1 deducindose que e f (x) dx = 1 al menos con una tolerancia de 1e 5.

El listado de la funci n f =h20 es el expresado a continuaci n o o function f=h20(x) f=(1/(sqrt(pi))).*exp(-x.^2);

H.3.1.

Integraci n numrica con l o e mites singulares

Hasta ahora s lo hemos considerado integrales de funciones en dominios infinitos. En el caso o de tener como dominio de integraci n el intervalo (a, b) y que alguno de los extremos sea singular o para la funci n f entonces lo que hacemos es utilizar una transformaci n de coordenadas x = x(z) o o de modo que el intervalo(, ) se transforme en (a, b) con el fin de convertir nuestra integral b singular f (x) dx en la integral infinita
a

dz (H.25) dz de la que ya podemos calcular su integral utilizando el m todo expresado anteriormente. e Un ejemplo de transformaci n de coordenadas que convierte el intervalo (, ) en (1, 1) es o la dada por la ecuaci n o

f (x(z))

dx

x = th( de donde se deduce que

sh(z)), 2

x (1, 1) cuando z (, )

(H.26)

(H.27) x= 2 es una transformaci n que convierte el intervalo (, ) en (a, b). Tal transformaci n recibir el o o a nombre de doble exponencial

a + b + (b a) th( sh(z)) 2

80

LECCION H. DIFERENCIACION E INTEGRACION NUMERICA

Prctica g Para hacernos un idea de la transformaci n doble exponencial (H.26) proponemos a o ejecutar el siguiente listado con el fin de obtener su representaci n gr fica o a z=-2:0.001:2; x=tanh((pi/2)*sinh(z)); figure(1); plot(z,x); xlabel(z);ylabel(x) axis equal figure(2),plot(x,z), xlabel(x); ylabel(z), title(trans. inversa), axis equal Es f cil obtener el valor de la expresi n a o dx dz dx (b a) ch(z) = dz 4 ch2 ( sh(z)) 2 (H.28) cuando x = x(z) viene dado por (H.26), resultando

y llevando esta expresi n a (H.25) tenemos que mediante la transformaci n doble exponencial la o o b integral f (x) dx se transforma en
a

Tf (z)

dz, donde Tf (z) =

(b a) ch(z)

(H.29) f (x(z)) 2 sh(z)) 4 ch ( 2 Afortunadamente la anterior conversi n y c lculo de la integral infinita est implementada en o a a el fichero h_dblexp (ver [7], pg. 219). La sintaxis del citado comando es a h_dblexp(nombre_f,a,b,K,h,pintar) donde pintar es un par metro opcional que si es activado, es decir si pintar es distinto del vaco, a entonces se nos representan las funciones f y Tf . Adems, h corresponde al paso de integraci n y a o [K, K] al intervalo de integraci n donde calculamos la integral transformada por la regla de los o trapecios. Como ejemplo sirva la siguiente pr ctica a Prctica h a exp(x 2) , x [0, 1], de ella queremos realizar su 1 x2 integral. Para ello ejecutamos un listado semejante al de la pr ctica hf a Consideramos la funci n f (x) = o K=0.8; I(1)=h_dblexp(h40,0,1,K,0.2); KK(1)=K; for k=2:6 KK(k)=KK(k-1)*1.5; K=KK(k); I(k)=h_dblexp(h40,0,1,K,0.2); end; fprintf(K\t %f\t %f\t %f\t %f\t %f\t %f\n, KK.) fprintf(Integ.\t %f\t %f\t %f\t %f\t %f\t %f\n, I.) II=h_dblexp(h40,0,1,K,0.02) fprintf(Si converge, la integral vale %f\n,II) donde h40 es la funci n dada por el gui n o o

H.4. INTEGRACION NUMERICA EN UN DOMINIO BIDIMENSIONAL function f=h40(x) f=(exp(-x.^2))/sqrt(1-x.^2); Como resultado del listado anterior obtenemos K 0.800 1.200 1.800 2.700 4.050 6.075

81

Integ. 0.820894 0.954171 1.007650 1.013213 1.013219 1.013219 Si converge, la integral vale 1.013219 deducindose de todo ello que la integral impropia e una tolerancia de 1e 4.
0

exp(x2 ) dx toma el valor 1.01321 con 1 x2

Si adems queremos tener una representaci n gr fica de la funci n f (x) y de Tf (z), ejecutamos a o a o el comando h_dblexp(h40,0,1,1.3,0.2,0) Nota: Si nos damos cuenta en el listado anterior el valor m ximo de K para el que para el a K que aproximamos Tf (z) dz mediante K f (z) dz es para K = 6.075 la raz n de esto es o que para valores un poco mayores el ordenador se desborda ya que la transformaci n doble o exponencial obliga al ordenador a trabajar con numeros ms grandes de lo que est preparado a a el propio programa. Prctica i a Repetimos la pr ctica anterior con la funci n h25(x) = 1/x, si x = 0 y h25(x) = 1, a o

si x = 0. Ejecutamos, por tanto el mismo listado que en la pr ctica anterior con la salvedad a de que sustituimos h25 por h40 y obtenemos como resultado K 0.800 1.200 1.800 2.700 4.050 6.075

Integ. 2.799361 4.757909 9.273903 23.344968 90.440137 685.388927 Si converge, la integral vale 683.079195 1 de ello concluimos que 0 h25(x) dx no converge, por lo menos, hasta donde nosotros somos capaces de decidir. De hecho, la anterior integral es divergente. El listado de la funci n h25 es el expresado a continuaci n o o function f=h25(x) [m,n]=size(x); H=ones(m,n); R=(x==1);CR=1-R; xx=(x.*CR)+H.*R; f=1./xx;

H.4.

Integraci n numrica en un dominio bidimensional o e

El comando de Matlab dblquad permite calcular la integral doble de una funci n f (x, y) definida o sobre un rect ngulo acotado [a, b] [c, d] simplemente escribiendo a dblquad(@nombre_f,a,b,c,d, tol)

82

LECCION H. DIFERENCIACION E INTEGRACION NUMERICA

Si es un recinto de R2 contenido en el rect ngulo [a, b] [c, d] y denota la funci n caraca o ter stica de : (x, y) = entonces, la igualdad f (x, y) dx dy =
[a,b][c,d]

1 si

(x, y)

0 si (x, y) (x, y) f (x, y) dx dy

nos permitir el c lculo de integrales dobles en dominios acotados y limitados por curvas de las a a que se conoce o se puede calcular, al menos aproximadamente, sus expresiones impl citas cartesianas

C C

la unica precauci n ser incluir en el fichero m que define la funci n a integrar las condiciones que o a o definen el recinto . Como ejemplo realizamos las siguientes pr cticas a Prctica j a Calcular la integral I =

sen(x + y) dy dx

(H.30)

para el recinto de R2 limitado por las curvas C1 : x = 1; C2 : x = 3; C3 : y = 3 + ex/5 ; C4 : y = ln x

Para ello, sencillamente ejecutamos I=dblquad(@(x,y) sin(x+y).*(y-log(x)>=0).*(y-3-exp(x/5)<=0),1,3,0,10) obteniendo I= -2.6119. Prctica k El rea de un c a a rculo unitario es . La exactitud de un m todo num rico para la e e doble integraci n puede probarse con el c lculo de la integral : o a Area() =

dx dy

donde es el dominio definido por los puntos (x, y) que verifican x2 + y 2 2x, regi n que o es un circulo unitario de centro el punto (1, 0). Realizar la evaluaci n num rica de la doble o e integral anterior ejecutando

H.5.
CION E INTEGRACION SIMBOLICA I=dblquad(@(x,y) (x.^2+y.^2-2*x<=0),0,2,-1,1,tol) y observar la exactitud del resultado para diferentes tolerancias tol. Prctica l a

DERIVA 83

Calcular el volumen del solido situado en semiespacio z 0 y limitado por los cilindros

C1 : x2 + y 2 = 1, C2 : (x 1)2 + (y 1)2 = 1 y la superficie z = xy. Ejecutamos triplequad(@(x,y,z) (x.^2+y.^2<=1).*((x-1).^2+(y-1).^2<=1).*(z<=x.*y),0,1,0,1,0,1)

lo que da como respuesta ans=0.117884 lo que supone cometer un error superior a 8 diezmilsimas, lo que es esperable en el computo num rico de una integral triple. e e

H.5.

Derivacin e integraci n simb lica o o o


Realizamos en la ventana de comandos las siguientes operaciones %creacin o %derivada %derivada %integral %integral de una funcin simb lica o o de f segunda de f de f definida de f en [0,2]

Prctica m a

f=3*x^3+4x^2-x-33 df=diff(f) d2f=diff(f,2) int_f=int(f) int_def_f=int(f,0,2)

H.6.

Ejercicios
(0.2 puntos) Evaluar las siguientes integrales con una tolerancia menor

Prctica puntuable p a a la mil sima e


0

1. 4. 7. 10. 13. 16.

dx 2 1 + (230x 30)

2.

/2

sen(x) dx
0

3. 6. 9.

1 2

1 dx 2+x ln(1 + x) x dx

(2x cos(2x) (x 2)2 ) dx 5. dx 1 + sen2 (x) exp(2x) sen2 (x) dx x ln(x) dx 2 dx x2 4


0 4

dx 2 + cos(x) x exp(2x) dx

/2

8. 11. 14.
0

x x dx
/4

x0.001 dx 12.
0

tg(x) dx

1.5 2 1 0.35 0

100 sen(10/x2 ) dx 15. 1.6 2 dx 2 x2 4 1 1 x 1 17. cos(x2 ) dx exp(x) dx 18.


3 0 0

19.

x2 (x 1)2 (x 3)2 (x 4)2 dx 20.


1

e2x sen(3x) dx

84

LECCION H. DIFERENCIACION E INTEGRACION NUMERICA

Prctica puntuable q (0.2 puntos) Calcular las siguientes integrales impropias con una tolea rancia menor a la mil sima e exp(x) 0 1 x2 0 1 x dx e 4. ln(1 + ex ) dx 6. 1 + x2 5. 0 0 2 dx 1 /21 + x 1 cos x dx 7. dx 8. 9. x3/2 sen(1/x) dx 4 x 0 0 0 1+x 2 1 2x 1 ln x e 1/4 10. dx x sen x dx 11. 5 12. 0 1 dx 5 x 1 x2 0 1 1 x cos 2x cos x e 13. dx 15. dx dx 14. 3 1 + x2 x 1x 0 0 0 1. 2. 3. 16.
0 1

exp(x2 ) dx 1 + x2

tg(x) dx x0.7

, 3

xex (x 1)2

dx 17.
0

dx x2 + 9

18.

cos x x3

Prctica r De las funciones f y g conocemos sus expresiones tabulares en los puntos que se a detallan ms abajo. Se pide, calcular de la forma que se estime mejor, las integrales a
0 0.8

f (x) dx y
0

g(x) dx

a partir de los datos x f (x) 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8

2.1220 3.0244 3.2568 3.1399 2.8579 2.5140 2.1639 1.8358 x g(x) 0 0.25 0.50 0.75 1.0

0.9162 0.8109 0.6931 0.5596 0.4055

Prctica puntuable s (0.1 puntos) Calcular, cometiendo un error menor a la diezmil sima, las a e siguientes integrales bidimensionales 1. 3.
2

dx dx
0

sen(x + y) dy

2.

dx dx
0

+ y dy x + y dy x

0 0

sen x 0

exp(x2 y 2 ) dy 4.

0 2 1

20.5x

Prctica puntuable t (0.2 puntos) Se llama polinomio de Legendre de orden n al polinomio Pn a definido por la igualdad 1 Pn (x) = dn (H.31) (x 1) 2n n! dxn Una relaci n importante que verifican los polinomios de Legendre es la f rmula en recurrencia o o siguiente .
2 n

H.6. EJERCICIOS n 1

85

n 1. Deducir de ella y de las igualdades P0 (x) = 1, P1 (x) = x, la definici n de una funci n o o propia de Matlab, Pn (x) =h_legend(n), que nos calcule el polinomio Pn (x) a partir del dato n N. 2. Realizar una representaci n gr fica, en el intervalo [1, 1], de las funciones polinomiales o a Pn (x), n = 3, 5, 7, 10, y de sus ceros constatando que todas ellas poseen todos sus ceros en el citado intervalo. 3. Se llaman nodos de Legendre de orden n del intervalo [1, 1] a los n puntos {p1 < p2 < . . . < pn } caracterizados por ser las n ra ces del polinomio de Legendre de orden n, Pn (x). Se pide calcular los nodos de Legendre de [1, 1] para los ordenes n = 3, 5, 7, 10. En general se llaman nodos de Legendre del intervalo [a, b] a los obtenidos por la f rmula o a+b ba + 2 p , k = 1, 2, . . . , n (H.33) k 2 1) Considerar la funci n f (x) = 3x5 + 7x2 28x + 3 en el intervalo [1, 3]; los nodos o pk =

Pn (x) = 2n 1 xP (x) n1 n

P
n2

(x)

(H.32)

Prctica u a

de Legendre de orden 3 de dicho intervalo, p1 < p2 < p3 ; y el polinomio interpolador de grado 3 asociado a los datos (pi , f (pi )). Comprobar que, al menos con una tolerancia de 1e 7, se verifica la igualdad
1 3

f (x) dx =
1

Pf (x) dx

(H.34)

La igualdad anterior es un hecho general, de hecho se verifica que la integral de un polinomio de grado 2n 1 coincide con la integral de su polinomio interpolador de grado n obtenido respecto a los nodos de Legendre de orden n. 2) (apartado puntuable con 0.3 puntos) Se denomina m todo de integracin de GaussLegendre e o con n puntos a aquel que realiza los siguientes pasos con el fin de obtener una aproximaci n o b de a f (x) dx: Calcula los n puntos de Legendre p1 < p2 < . . . < pn del intervalo [a, b]. Calcula el polinomio interpolador f (x) de grado n asociado a los datos (pi , f (pi )). P Aproxima b f (x) dx por el valor b Pf (x) dx.
a a

Pues bien, se pide definir una funci n propia, I=h_gauss(nombre_f,a,b,n) que permita o b calcular la aproximaci n con n puntos de la integral a nombre_f(x) dx por el m todo de o e GaussLegendre. 3) (apartado puntuable con 0.15 puntos) Utilizar la funci n propia definida anteriormente o para calcular las aproximaciones con 4,8, y 16 puntos de las integrales 110 de la pr ctica hp. a Observar la exactitud obtenida con pocos puntos. 4) (apartado puntuable con 0.15 puntos) Como habremos observado una de las grandes ventajas del m todo de GaussLegendre es su exactitud con pocos puntos y otra ventaja es que e se puede aplicar tambi n sobre integrales singulares. En este apartado pedimos utilizar la e funci n propia definida en el punto 2 para el c lculo aproximado de las integrales singulares o a 15 de la pr ctica hq con 10 puntos observando si la exactitud obtenida es suficiente. a

86 Prctica puntuable v a

LECCION H. DIFERENCIACION E INTEGRACION NUMERICA (0.3 puntos) Definir una funci n propia, o

I=h_dblgau(nombre_f,nombre_c,nombre_d,a,b,m,n) que permita aproximar la integral bidimensional b d(x) f (x, y) dy dx por el m todo de Gauss e Legendre a partir de un mallado de m n puntos de Legendre. Utilizar la funci n propia o definida para calcular las integrales 12 de la pr ctica hs. a
a c(x)

S-ar putea să vă placă și