Este documento describe un algoritmo iterativo para calcular funciones mediante series infinitas. Se utiliza como ejemplo la función exponencial. Se añaden términos de la serie de Maclaurin uno a uno, calculando el error en cada paso. El proceso continúa hasta que el error aproximado cae por debajo de un umbral predefinido, asegurando al menos tres cifras significativas. El documento también presenta un algoritmo en MATLAB para implementar este método iterativo de forma genérica para cualquier función.
Algoritmo iterativo para cálculo de funciones exponenciales
1. Ejemplo 1 Algoritmo Computacional para Cálculos iterativos
1
Las estimaciones de error para los métodos iterativos
Planteamiento del problema. En matemáticas, a menudo las funciones se pueden
representar mediante series infinitas.
Por ejemplo, la función exponencial puede ser calculada utilizando
2 2
1 ...
2 3! !
n
x x x x
e x
n
(1.1)
Por lo tanto, a medida que se agregan más términos en la secuencia, la
aproximación se hace una estimación mejor y mejor del verdadero valor de la
x
e .
La ecuación (1.1) se llama una serie de Maclaurin.
Comenzando con la versión más simple, 1x
e , añadir los términos uno a la vez a
fin de estimar
0.5
e . Después de añadir cada nuevo término, calcular los errores
verdaderos y el error relativo porcentual aproximado en relación con las ecuaciones.
100
Error Relativo Aproximado
t
valor verdadero valor aproximado
valor verdadero
(1.2)
100
Error relativo porcentual
a
presente aproximación aproximacion anterior
presente aproximación
(1.3)
Respectivamente.
También es conveniente para relacionar estos errores al número de cifras
significativas en la aproximación.
Se puede demostrar que, si se cumple el siguiente criterio, se puede asegurar que
el resultado es correcto con las cifras al menos n significativas.
2. Ejemplo 1 Algoritmo Computacional para Cálculos iterativos
2
2
0.5 10 %n
s
(1.4)
Tenga en cuenta que el valor real es
0.5
1.648721e ... Añadir términos hasta que
el valor absoluto de la estimación del error aproximado a cae por debajo de un
criterio de error especificado previamente s conforme a tres cifras significativas.
En primer lugar, la ecuación. (1.4) puede ser empleado para determinar el criterio
de error que asegura un resultado que es correcto al menos a tres cifras
significativas:
2 3
0.5 10 % 0.05%s
Por lo tanto, vamos a añadir términos a la serie hasta a cae por debajo de este
nivel.
La primera estimación es simplemente con un único término. Por lo tanto, la primera
estimación es igual a 1. La segunda estimación se genera a continuación mediante
la adición del segundo término como se denota a continuación:
1x
e x
Para 0.5x
0.5
1 0.5 1.5e
Esto representa un error relativo porcentual verdadero de
1.648721 1.5
100% 9.02%
1.648721
t
La ecuación (1.3) se puede utilizar para determinar una estimación aproximada del
error, como
1.5 1
100% 33.3%
1.5
a
3. Ejemplo 1 Algoritmo Computacional para Cálculos iterativos
3
Debido a no es menor que el valor requerido de s , continuaríamos el cálculo
mediante la adición de un nuevo termino,
2
2!
x
, y repitiendo los cálculos de error. El
proceso continúa hasta que a s . Todo el cálculo se puede resumir como
Términos Resultado %t %a
1 1 39.3
2 1.5 9.02 33.3
3 1.625 1.44 7.69
4 1.645833333 0.175 1.27
5 1.648437500 0.0172 0.158
6 1.648697917 0.00142 0.0158
Por lo tanto, después de se incluyen seis términos, el error aproximado cae por
debajo de 0.05%s , y el cálculo se termina. Sin embargo, observe que, en lugar
de tres cifras significativas, el resultado es una precisión de cinco.
Es decir, se aseguran de que el resultado es al menos tan bueno como lo
especifican. Aunque, este no es siempre el caso para la ecuación. (1.3), es cierto la
mayor parte del tiempo.
Algoritmo computacional para Cálculos iterativos
Muchos de los métodos numéricos descritos en posteriores clases implican cálculos
iterativos de la clase ilustrada en el Ejemplo 1. Todos ellos implican la solución de
un problema matemático mediante el cálculo de aproximaciones sucesivas a la
solución a partir de una estimación inicial.
La aplicación informática de tales soluciones iterativas implica bucles. Existen dos
tipos de clase: conteos-controlados y bucles de decisión. La mayoría de las
soluciones iterativas utilizan bucles de decisión. Por lo tanto, en lugar de emplear
un número pre-especificado de iteraciones, el proceso típicamente se repite hasta
4. Ejemplo 1 Algoritmo Computacional para Cálculos iterativos
4
que una estimación de error aproximado cae por debajo de un criterio de detención
como como se muestra en el siguiente ejemplo 1.
La expansión de la serie se puede expresar como
0 !
nn
x
i
x
e
n
Un archivo-m que crearemos para aplicar esta fórmula se muestra en la figura
siguiente. La función se pasa el valor a ser evaluado x junto con un criterio es
de error de detención y un número máximo permitido de iteraciones maxit . Si el
usuario omite cualquiera de los dos últimos parámetros, la función asigna valores
predeterminados.
5. Ejemplo 1 Algoritmo Computacional para Cálculos iterativos
5
function [fx,ea,iter] = IterMeth(x,es,maxit)
% Maclaurin series of exponential function
% [fx,ea,iter] = IterMeth(x,es,maxit)
% input:
% x = value at which series evaluated
% es = stopping criterion (default = 0.0001)
% maxit = maximum iterations (default = 50)
% output:
% fx = estimated value
% ea = approximate relative error (%)
% iter = number of iterations
% defaults:
if nargin<2|isempty(es),es=0.0001;end
if nargin<3|isempty(maxit),maxit=50;end
% initialization
iter = 1; sol = 1; ea = 100;
% iterative calculation
while (1)
solold = sol;
sol = sol + x ^ iter / factorial(iter);
iter = iter + 1;
if sol~=0
ea=abs((sol - solold)/sol)*100;
end
if ea<=es | iter>=maxit,break,end
end
fx = sol;
end
Figura1. Un archivo-m para resolver un cálculo iterativo. Este ejemplo está
configurado para evaluar la expansión de la serie de Maclaurin para
x
e cómo
se describe en el Ejemplo 1
La función inicializa tres variables:
a. iter, que mantiene un registro del número de iteraciones,
b. Sol, que tiene la estimación actual de la solución, y
c. una variable, ea, que tiene el error relativo porcentual aproximado. Tenga
en cuenta que ea Inicialmente se establece en un valor de 100 para
asegurar que el bucle se ejecuta al menos una vez.
6. Ejemplo 1 Algoritmo Computacional para Cálculos iterativos
6
Estas inicializaciones son seguidas por un bucle de decisión que en realidad
implementa el cálculo iterativo. Antes de generar una nueva solución, el valor previo,
sol, primero se asigna a solold. A continuación, un nuevo valor del sol se calcula y
el contador de iteración se incrementa.
Si el nuevo valor del sol es distinto de cero, el error relativo porcentual, ea, se
determina.
A continuación, se ponen a prueba los criterios evaluados. Si ambos son falsos, el
bucle se repite. Si bien es cierto, el ciclo termina y la solución final se envía de nuevo
a la función que se llamó.
Cuando se implementa el archivo-M, se genera una estimación de la función
exponencial que se devuelve junto con el error aproximado y el número de
iteraciones. Por ejemplo,
1
e se puede evaluar como
>> format long
>> [approxval, ea, iter] = IterMeth(1,1e-6,100)
approxval =
2.718281826198493
ea =
9.216155641522974e-07
iter =
12
Podemos ver que después de 12 iteraciones, se obtiene un resultado de 2.7182818
con una estimación de error aproximado de
7
9.2162 10 %
. El resultado se puede
verificar utilizando la función incorporada de exp para calcular directamente el valor
exacto y el verdadero porcentaje relativo de error,
>> trueval=exp(1)
7. Ejemplo 1 Algoritmo Computacional para Cálculos iterativos
7
trueval =
2.718281828459046
>> et=abs((trueval- approxval)/trueval)*100
et =
8.316108397236229e-08
Como era el caso con el Ejemplo 1, se obtiene el resultado deseable de que el
verdadero error es menor que el error aproximado.