Práctica Guía 4
Práctica Guía 4
Práctica Guía 4
Código:220745
3. (4pts) Edite la función 1, para determinar en qué iteración se logró encontrar la épsilon
de la máquina.
function e = epsilon()
%Determina el epsilon de la máquina
%Hayro Jerry Vilca Condori
%25/05/2023
%Ejemplo
% >>epsilon
e = 1;
i = 0;
while (e + 1) > 1
i = i + 1;
e = e/2;
end
e = 2*e;
fprintf('El valor de epsilon es %d \n',e)
fprintf('El valor de epsilos se calculó en la iteración %f',i)
end
4. (4pts) Ejecute la función 2, realice un análisis y explique si tiene lógica los resultados
obtenidos. (cambiar el formato de salida a formato largo)
Comentario:
El épsilon de la máquina con la que trabajo es de 2.220446049250313e-16 y tanto el
algoritmo programado como la función “eps” muestran resultados iguales, y no es
inusual ya que ambos están diseñados para calcular el mismo dato.Al analizar los
resultados obtenidos en el ejercicio de suma repetitiva, podemos observar un patrón
interesante en función del valor de entrada num.
Cuando se utilizan números pequeños para num, como 0.1 o 0.00001, los resultados
obtenidos pueden parecer incorrectos o inexactos, puesto que muestran valores
diferentes a los lógicamente esperados, ya que este proceso representa la definición
matemática de la operación de la multiplicación (en este caso multiplicar por 100000).
Podemos explicar esto debido a la acumulación de errores de redondeo que ocurren
durante las repeticiones del bucle. Los números pequeños están más cerca del épsilon
de la máquina y, por lo tanto, son más sensibles a los errores de redondeo. A medida
que se suman repetidamente, los errores de redondeo se acumulan y pueden afectar
significativamente el resultado final. Sin embargo, cuando se utilizan números más
grandes para num, los resultados tienden a ser más precisos y coherentes. Esto se debe
a que los números más grandes tienen una mayor separación entre ellos (y también del
épsilon del computador) y, por lo tanto, los errores de redondeo tienen menos impacto
relativo en el resultado final.
5. (4pts) Escribir una función que permita calcular 𝑒 𝑥 utilizando la serie de Maclaurin;
dado un “x” y una tolerancia prefijada (n) utilizando el bucle for: (Pegar código y
ejecutar un ejercicio Ej. S = ejemplofun(1,9)
function S = Maclaurin(x,n)
S = 0;
for k = 0:(n-1)
S = S + x^k / factorial(k);
end
fprintf('Para la serie de Maclaurin con x=%f y una precisión de %.f es:\n',x,n)
fprintf('%d',S)
end
Comentario:
Dado que el valor de “x” puede ser cualquier número, no se le restringirá en decimales para el
comentario a diferencia de la precisión (“n”) que debe ser un número entero y positivo, donde
se le debe colocar para el primer valor con “n-1”, que esa es la primera precisión que se tiene
en la Serie considerada en la posición 𝑃0 .
Así también, ya que el valor de “e1” debería mostrar el mismo valor de “e” ya que se eleva a la
unidad; ya que para el ejemplo se trabaja con una precisión de n=9 entonces podemos decir
que hay 9 términos en la serie y el resultado se aproxima bastante al valor real de “e”, sin
embargo, sigue fallando en los decimales (en este caso, falla a partir de la 5ta cifra decimal).