Extrapolacion de Richardson

Roberto Andrés Martínez Merchán 2161881 Métodos numéricos EXTRAPOLACION DE RICHARDSON Introducción. En muchos problem

Views 110 Downloads 4 File size 385KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Roberto Andrés Martínez Merchán 2161881

Métodos numéricos

EXTRAPOLACION DE RICHARDSON

Introducción. En muchos problemas de aplicación se hace necesario la obtención de resultados numéricos, que además de ser buenos estimativos de valores reales, no impliquen un alto esfuerzo computacional. El proceso de obtener una estimación mejorada para el valor de derivadas, ecuaciones diferenciales, entre otros, con base a la aplicación de una o más formulas, empleando diferentes longitudes de intervalo se denomina Extrapolación.

La Diferenciación numérica. Es una técnica de análisis numérico que nos permite calcular una aproximación a la derivada de una función en un punto utilizando los valores y propiedades de ésta. La derivada de una función f en xo, esta definido de la siguiente manera:

Para valores pequeños de h, podemos aproximar la derivada de f en x o de la siguiente manera:

Sabemos que esta ecuación trae con ella un error asociado el cual se determina valiéndonos de la serie de Taylor, este trae consigo una determinación donde nacen las proposiciones ‘Diferenciación hacia delante’, ‘Diferenciación hacia atrás’ y ‘Diferenciación centrada’. Donde cada uno se comprende más fácilmente a continuación como:

a) Diferenciación hacia delante.

Donde a ∆fi se le conoce como la primera diferencia hacia adelante y a h se le llama el tamaño del paso o incremento; esto es, la longitud del intervalo sobre el cual se realiza la aproximación. O(h) es el error de truncamiento.

b) Diferenciación hacia atrás.

Truncando la ecuación después de la primera derivada y reordenando los términos se obtiene:

Donde el error es O(h).

c) Diferenciación centrada. Aquí se restan las expansiones por Taylor realizadas anteriormente, obteniendo así:

Observe que el error de truncamiento es del orden de h2 en contraste con las aproximaciones hacia adelante y hacia atrás. Por lo tanto, esta es una representación más exacta de la primera derivada.

Extrapolación de Richardson. Esta técnica mejora la precisión en el cálculo numérico de la derivada de una función, partiendo de la base de la serie de Taylor. Surge debido al querer bajar el error existente en los métodos usados con anterioridad. Este método se basa en utilizar dos estimaciones de la derivada para calcular una tercera aproximación, la cual será mucho más exacta. Para lograr esta exactitud utilizaremos la fórmula:

𝐷 ≅ 𝐷(ℎ2 ) +

1 ℎ (ℎ1 )2 −1 2

(1.01)

[𝐷(ℎ2 ) − 𝐷 (ℎ1 )]

Donde D (ℎ1 ) y D (ℎ2 ) son estimaciones de la derivada obtenidas usando dos tamaños de paso, h1 y h2. Cuando coinciden que ℎ2 = ℎ1⁄2 (que de ahora en adelante es lo que se buscará en la mayoría de los ejercicios a resolver) la ecuación (1.01) se convertirá en: Partiendo de la derivada centrada, la cual ya se ha visto anteriormente que genera mejores aproximaciones y teniendo los dos pasos ℎ, ℎ/2.

Ahora, para el paso igual a h.

(1) Para el paso igual a h/2.

(2) Multipliquemos a (1) por ¼ y restemos (2) entonces, 1 ′ 1 𝑓(𝑥𝑜 + ℎ) − 𝑓(𝑥𝑜 − ℎ) 1 𝑓 (𝑥𝑜) = + 𝐶(ℎ2 ) 4 4 2ℎ 4 −𝑓 ′ (𝑥𝑜) = 3

′(

− 𝑓 𝑥𝑜) = − 4

𝑓(𝑥𝑜 + ℎ/2) − 𝑓(𝑥𝑜 − ℎ/2) 1 + 𝐶(ℎ2 ) ℎ 4

1 𝑓(𝑥𝑜+ℎ)−𝑓(𝑥𝑜−ℎ) 4

2ℎ



+



𝑓(𝑥𝑜+2 )−𝑓(𝑥𝑜− 2 ) ℎ

(3)

Ahora, sea 𝑫𝒐(𝒉) =

𝒇(𝒙𝒐+𝒉)−𝒇(𝒙𝒐−𝒉) 𝟐𝒉

𝒉

y 𝑫𝒐 (𝟐) =

𝒉

𝒉

𝒇(𝒙𝒐+𝟐)−𝒇(𝒙𝒐−𝟐 ) 𝒉

, remplazando

en (3) tenemos:

3 1 ℎ − 𝑓 ′ (𝑥𝑜) = 𝐷𝑜(ℎ) − 𝐷𝑜( ) 4 4 2 Donde: 𝟒

𝟏

𝒉

𝒇′ (𝒙𝒐) = 𝟑 𝑫𝒐(𝒉) − 𝟑 𝑫𝒐 (𝟐) [1.02] NOTAS: Cuando los pasos dados coinciden con que son exactamente la mitad del anterior se usara la ecuación [1.02] y cuando no, la general [1.01]

Siendo este una de las fórmulas que usaremos para la estimación de la Extrapolación de Richardson, donde los pasos dados coinciden ser: ℎ2 = ℎ1⁄2

Para la determinación del error se debe conocer el valor real exacto de la derivada en el punto evaluado, éste dependerá de los pasos h que se puedan tomar. 𝐸𝑟𝑟𝑜𝑟 𝑟𝑒𝑙𝑎𝑡𝑖𝑣 𝑝𝑜𝑟𝑐𝑒𝑛𝑡𝑢𝑎𝑙 = |

𝑉𝑟𝑒𝑎𝑙 − 𝑉𝑟𝑖𝑐ℎ𝑎𝑟𝑑𝑠𝑜𝑛 𝑉𝑟𝑒𝑎𝑙

| ∗ 100

En resumen, cuando se tiene la relación mencionada entre los pasos h1 y h2, se tiene lo siguiente.

4 1 𝑓 ′ (𝑥𝑜) = 𝐷𝑜(ℎ2) − 𝐷𝑜(ℎ1) 3 3 Donde: 𝐷𝑜(ℎ) =

𝑓(𝑥𝑜+ℎ)−𝑓(𝑥𝑜−ℎ) 2ℎ

;

Ejercicio. Calcular la primera derivada de 𝑓 (𝑥 ) = 0.5𝑥 4 + 0.25𝑥 3 + 0.75𝑥 2 − 𝑥 + 3.2, en el punto xo =0.5 teniendo pasos h1=0.5 y h2=0.25. Determinar el error que se comete en cada estimación de la derivada sabiendo que el valor exacto de la primera derivada evaluada en ese punto es 0.1875.

Solución. Se tiene que los pasos se relacionan mediante h2=h1/2, por lo que usamos la segunda situación presentada. Entonces, h2=0.5/2=0.25 Reemplazando. Para h1=0.5 𝑓 (0.5 + 0.5) − 𝑓(0.5 − 0.5) 𝑓(1) − 𝑓 (0) = 2(0.5) 1 4 3 2 (0.5(0.5) + 0.25(0.5) + 0.75(0.5) − 0.5 + 3.2) − (0.5(0)4 + 0.25(0)3 + 0.75(0)2 − 0 + 3.2) = 1 𝐷𝑜(0.5) =

𝐷𝑜(0.5) =

𝐸𝑝 = 𝑎𝑏𝑠(

3.7 − 3.2 = 0.5 1

(0.1875 − 0.5) ) ∗ 100 = 166.6% 0.1875

Para h2=0.25 𝑓(0.5 + 0.25) − 𝑓 (0.5 − 0.25) 𝑓 (0.75) − 𝑓(0.25)) = 2(0.25) 0.5 (0.5(0.75)4 + 0.25(0.75)3 + 0.75(0.75)2 − 0.75 + 3.2) − (0.5(0.25)4 + 0.25(0.25)3 + 0.75(0.25)2 − 0.25 + 3.2) = 0.5 𝐷𝑜(0.25) =

𝐷𝑜(0.25) =

𝐸𝑝 =

3.1355 − 3.0027 = 0.2656 0.5

(0.1875 − 0.2656) ∗ 100 = 41.65% 0.1875

Ahora aplicando la siguiente formula:

4 1 4 1 𝑓 ′(𝑥𝑜 = 0.5) = 𝐷𝑜(ℎ2) − 𝐷𝑜(ℎ1) = 𝑓 ′ (0.5) = (0.2656) − (0.5) 3 3 3 3 𝑓′(𝑥𝑜 = 0.5) = 0.18746 𝐸𝑟𝑟𝑜𝑟 𝑅𝑒𝑙𝑎𝑡𝑖𝑣𝑜 𝑃𝑜𝑟𝑐𝑒𝑛𝑡𝑢𝑎𝑙 =

|(0.1875 − 0.18746)| ∗ 100 = 0.05% 0.1875

Vemos que el error que se genera es mínimo, se puede atribuir a cifras que se pierden en los cálculos. Para las funciones que no son polinomios esta estimación también funcionaria, pero con un poco más de probabilidad de que el error sea mayor.

Bibliografía. • • •

https://sites.google.com/site/procesosnumericoslrl20151/segundaentrega/metodos-iterativos Métodos numéricos para ingenieros. 5ed. -Steven C. Chapra & Raymond P. canale. https://www.lawebdelprogramador.com/foros/Matlab/1490651-metodoextrapolacion-de-richardson-para-derivacion-numerica.html

Pasos para la programación en Matlab del método: 1. Asegurarse de tener todas las ventanas limpias (Command Windows, Workspace…). 2. Hacer simbólica la letra x en Matlab la cual será nuestra variable. 3. Solicitar al usuario la función a trabajar. 4. Solicitar al usuario el punto (xo) donde se quiere conocer su primera derivada en la función. 5. Solicitar los pasos que se tomaran, se debe hacer claridad en que estos se ingresan de mayor a menor. 6. Determinar las aproximaciones D(h1) y D(h2). 7. Verificar si coinciden con que h2=h1/2. 8. En caso de que sí coincidan: a. Evaluar las aproximaciones calculadas anteriormente en la función [1.02]. b. Conociendo el valor real de la función evaluada en el punto y el de la evaluación realizada en el punto anterior, calcular el error porcentual que este pueda generar. 9. Al estos no coincidir: a. Ingresar los valores de h1 y h2 junto con el de las aproximaciones en la función general [1.01]. b. Conociendo el valor real de la función evaluada en el punto y el de la evaluación realizada en el punto anterior, calcular el error porcentual que este pueda generar. 10. Imprimir los resultados encontrados; el valor de xo en la primera derivada de la función y el error.