Calcular \( e^{x} \) usando series de Maclaurin para \( x = 0.5 \) usando tres cifras significativas: $$ \begin{equation*} e^{x} = \frac{x^{0}}{0!} + \frac{x^{1}}{1!} + \frac{x^{2}}{2!} + \frac{x^{3}}{3!} + \cdots \end{equation*} $$
El error prefijado \( \epsilon_{s} \) será: $$ \begin{equation*} \epsilon_{s} = \frac{10^{2 - 3}}{2} \cdot 100\% = 0.05\% \end{equation*} $$
Calculando \( \epsilon_{t} \) $$ \begin{equation*} \epsilon_{t} = \frac{1.648721 - 1}{1.648721} \cdot 100\% = 39.35\% \end{equation*} $$
Calculando \( \epsilon_{a} \) $$ \begin{equation*} \epsilon_{a} = \frac{1 - 0}{1} \cdot 100\% = 100\% \end{equation*} $$
Calculamos \( \epsilon_{t} \) $$ \begin{equation*} \epsilon_{t} = \frac{1.648721 - 1.5}{1.648721} \cdot 100\% = 9.02\% \end{equation*} $$
Calculamos \( \epsilon_{a} \) $$ \begin{equation*} \epsilon_{a} = \frac{1.5 - 1}{1.5} \cdot 100\% = 33.33\% \end{equation*} $$
Mediante el siguiente programa se calculará los errores de aproximación:
x = 0.5
valor_actual = 0.0
@printf("%s \t %s \t %s \t %12s\n", "iteración", "exp(0.5)", "ϵₜ %", "ϵₐ %")
for i = 0:5
valor_anterior = valor_actual
valor_actual = valor_actual + (x^i)/factorial(i)
et = ((exp(x) - valor_actual)/exp(x))*100
ea = ((valor_actual - valor_anterior) / valor_actual)*100
@printf("%d \t %16f \t %f \t %f\n", i+1, valor_actual, et, ea)
iteración exp(0.5) ϵₜ % ϵₐ %
1 1.000000 39.346934 100.000000
2 1.500000 9.020401 33.333333
3 1.625000 1.438768 7.692308
4 1.645833 0.175162 1.265823
5 1.648438 0.017212 0.157978
6 1.648698 0.001416 0.015795
función MetodoIterativo(valor, es, iteración_máxima)
iteración = 1
solución_actual = valor
ea = 100
hacer
iteración = iteración + 1
solución_anterior = solución_actual
solución_actual = ...
si solución_actual != 0
ea = abs((solución_actual - solución_anterior) / solución_actual) * 100
fin si
hasta (ea <= es) o (iteración >= iteración_máxima)
fin hacer
MetodoIterativo = solución_actual
fin MetodoIterativo
function exponencial(x, es, i_max)
i = 0
valor_actual = 0
while true
valor_anterior = valor_actual
valor_actual = valor_actual + (x^i)/factorial(i)
i = i + 1
if valor_actual != 0
ea = ((valor_actual - valor_anterior) / valor_actual)*100
end
if (ea <= es) || (i >= i_max)
println("iteración = ", i) # solo para comprobar
println("ea = ", ea) # solo para comprobar
println("et = ", ((exp(x) - valor_actual)/exp(x))*100) # solo para comprobar
break
end
end
return valor_actual
end
exponencial (generic function with 1 method)
exponencial(1, 1e-6, 100)
iteración = 12
ea = 9.216155641522974e-7
et = 8.316106763523326e-8
2.718281826198493