Práctica Guía 4

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 5

PRACTICA GUIA 4: Errores

Nombre: Hayro Jerry Vilca Condori

Código:220745

NOTA: en cada código pegar código y un ejemplo

1. (4pts) Cree una función que calcule los 3 tipos de errores.


%El parámetro "a" debe ser completado con el valor real
%El parámetro "b" debe ser completado con el valor aproximado
function [A,R,P]=Errores(a,b)
A=abs(a-b);
R=abs(a-b)/a;
P=abs(a-b)/a*100;
fprintf('Los errores son:\n');
fprintf('Error Absoluto = %f \n',A);
fprintf('Error Relativo = %f \n',R);
fprintf('Error Relativo Porcentual = %f%%\n',P);
end

2. (4pts) Ejecute la función 1. Responder: ¿Cuál es la épsilon de la máquina con la cual


trabajas? Y compare con el resultado de la función incorporada eps.
function e = epsilon()
%Determina el epsilon de la máquina
%Hayro Jerry VIlca Condori
%25/05/2023
%Ejemplo
% >>epsilon
e = 1
while (e + 1) > 1
e = e/2;
end
e = 2*e;
end
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.

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)

Número a Sumar Suma


100000 1.000000000000000e+10
10000 1.000000000000000e+09
10 1000000
1 100000
0.1 1.000000000001885e+04
0.001 1.000000000001134e+02
0.0001 9.999999999990033
0.00001 0.999999999998084

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.

function Suma = sumaNumero(num)


%Hayro Jerry Vilca Condori
%28/05/2023
%Muestra el Error de redondeo, en un gran número de cálculos independientes
%Datos
% num : Número a sumar
%Resultado:
% >>sumaNumero(1)
% >>sumaNumero(0.00001)
Suma = 0;
for k=1:100000
Suma = Suma + num;
end
end

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).

También podría gustarte