Sobre la PRACTICA 4. • Unas pocas lineas de código bastan para reunir la información necesaria sobre las derivadas del integrando f (t) ; como el error de Simpson depende de su derivada 4a., se observan las derivadas hasta ese orden; el procedimiento más cómodo es hacer diferencias sucesivas de los valores f (t) , sobre todo para una función cuyas derivadas se complican rápidamente, como es el caso: %-------------------------------f = inline('sqrt(1-k^2*sin(t).^2)'); h=0.01; t = 0:h:pi/2; % las abscisas de la Tabla ft = f(0.8,t); % valores de f for k=1:4 ft = diff(ft/h); % aproxima la derivada de orden k maxf(k) = max(abs(ft)); % max |D^k f(x)| observada subplot(2,2,k), plot(t,0*t,t(k+1:end),ft,'r') end maxf % = 0.4000 1.0660 2.1011 9.8900 %-------------------------------- (se ha añadido la gráfica de f en el subplot 1) derivada 1 derivada 2 1 1.5 1 0.5 0.5 0 0 !0.5 !0.5 0 0.5 1 1.5 2 !1 0 0.5 derivada 3 1 1.5 2 1.5 2 derivada 4 2.5 5 2 0 1.5 1 !5 0.5 0 0 0.5 1 1.5 2 !10 0 0.5 1 • Con esta información, habı́a que empezar por contestar la siguiente pregunta: si al usar luego la Tabla se va a hacer interpolación lineal entre sus valores para aproximar cualquier valor intermedio, ¿qué error máximo tendrá esa interpolación? El error de la interpolación lineal entre dos puntos xk , xk+1 = xk + h para la función E , es igual a E !! (ξ)W (x)/2 y será máximo cerca del centro de ese intervalo, donde W tiene su máximo, si la E !! no varı́a mucho; como E es la integral de f , ya hemos visto que E !! = f ! es casi constante en cada intervalo de medida h = 0.01 , y alcanza un max |f ! | ≈ 0.4 ; por lo tanto el error de interpolación será |E !! (ξ)| W (x)/2 ≤ 0.4 (h/2)2 /2 = 5.E-6 y no más de 5 decimales se conservan al interpolar: esa es la precisión razonable a usar en la Tabla, para no producir una falsa ilusión de precisión a quien interpole. • Con h = 0.01 , el error del Punto Medio al aproximar E(kh, 0.8) será aproximadamente la suma !k errk = i=1 f !! (mi )h3 /24 ≈ f ! (kh) h2 /24 ya que, como hemos visto, f ! (0) = 0 ; y como |f ! | = 0.4 en el peor caso, el tamaño de ese error será |errk | ≤ 0.4 · h2 /24 = 1.7E-6 , que es bueno de sobra para nuestros fines. 1 Por lo tanto, usando los valores de f,h ya introducidos antes, el código que produce la TABLA es: %-------------------------------m = (h/2):h:(pi/2); % nodos Punto Medio fm = f(0.8,m); % valores f_i E = [0, cumsum(h*fm)]; % TABLA %-------------------------------- • Pero ahora es MUY barato verificar que el error es el previsto, y observar como evoluciona. Basta para ello repetir la integración con doble número de intervalos; como eso debe dividir aproximadamente los errores por 22 = 4 , la diferencia Eh (a) − Eh/2 (a) entre un valor antiguo y el correspondiente nuevo, será ≈ 3/4 del error de aquel, lo que nos permite extrapolar para estimar esos errores. %-------------------------------m2 = (h/4):(h/2):(pi/2); % doble de nodos Punto Medio fm2 = f(0.8,m2); E2 = cumsum(fm2*h/2); % doble Tabla, con errores/4 E22 = E2(2:2:end); errest = (E(2:end)-E22)*4/3; % error estimado de E maxerrest = max(abs(errest)) % = 1.6667e-006 %-------------------------------- Se confirma la previsión: 1.67E-6 donde habı́amos previsto 1.7E-6. Podemos de paso comparar los “peores valores interpolados” (en los centros de los intervalos de tamaño h) con los correspondientes Eh/2 , recordando que éstos aún tienen errores ≈ 1/4 de los que acabamos de estimar: %-------------------------------Eint = E(2:end)-diff(E)/2; % peores valores interpolados E21 = E2(1:2:end); errint = Eint-E21-errest/4; % sus errores (corregidos) %-------------------------------- En el gráfico se ha añadido E(t) en el lado izquierdo, y se comparan a la derecha los dos errores mencionados; se observa la proporción de ambos con f ! (cuya gráfica se ve a la izquierda), y algo muy interesante que ya era posible deducir de las fórmulas de error: los signos de ambos errores son opuestos, y en consecuencia esos errores se restan; en lugar de tener tamaño ≈ 3 veces mayor que el de la integral, el error de esos “peores” valores interpolados resulta por ese motivo sólo doble: !6 derivada 1 x 10 1.5 2 1 0 0.5 !2 0 !4 !0.5 0 0.5 1 1.5 2 !6 0 error estimado: azul 0.5 1 1.5 2 error de interpolados: rojo derivada 3 derivada 4 2.5 es ésta: si damos la Tabla con5 valores más precisos, como los que salen al La curiosa moraleja duplicar los nodos, los errores de los valores interpolados, si no estamos cerca de los extremos de un intervalo, ¡se harán 2mayores! Esto confirma de manera más rotunda que 5 dı́gitos eran los adecuados para esa Tabla, y que no hacı́a falta más esfuerzo de0cálculo. 1.5 1 !5 0.5 0 0 0.5 1 1.5 2 2 !10 0 0.5 1 1.5 2