Está en la página 1de 5

UNIVERSIDAD TECNOLÓGICA DE PANAMÁ

FACULTAD DE INGENIERÍA MECÁNICA


LICENCIATURA EN INGENIERÍA MECÁNICA

LABORATORIO DE METODOS NUMERICOS

“ERRORES Y PROPAGACION DE ERRORES”

POR:
ANA K. SÁNCHEZ

CEDULA:
E-8-148821

PROF. ILKA BANFIELD

INSTRUCTOR. ELVIS GARCIA

GRUPO;
1IM111

SEGUNDO SEMESTRE 2017


Introducción

Al utilizar ordenadores usamos tipos nativos de lenguaje de programación


causando que la representación numérica decimales este limitada a
alrededor de 20 cifras, causando un margen de error arbitrario. Sim
embargo se pueden utilizar algoritmos para trabajar con cierto grado de
precisión, aunque estos tendrán un porcentaje de error que se expandirá
con los cálculos y que si no se controla llevaran soluciones erróneas.
Tenemos que asegurar que los algoritmos estén bien planteados y que
converjan con un número finito de operaciones y con el menor volumen
posibles de cálculos, para ello abran que tomarse en cuenta los errores de
representación y redondeo para cada algoritmo.
Los errores de representación se referirán l hecho de que algunas
fracciones decimales no pueden representarse con fracciones binarias, por
lo que necesario truncarlas. El error de redondeo se refiere a los decimales
dejados por fuera durante ese truncamiento.
Primera parte.

a) Escriba el código que se muestra a continuación


b) Ejecute el código
v=-1.0
for i in range(201):
print acos(v)
v += 0.01

1. ¿Qué ocurre durante la ejecución? Explique las causas de este


comportamiento.
a. no corre el programa por no haber importado la librería math.
b. Corre el programa con error pues los decimales no están
truncandos y acarrean un error que al llegar a los últimos grados
del angulo se hace demasiado grande y se sale del rango de la
función acos.

2. Corrija el problema.
import math
v=-1.0
for i in range(201):
print ("angulo en radianes:",round(v,3))
print ("angulo en grados:",math.degrees(v))
print ("acosv(v)=",math.acos(round(v,3)))
v += 0.01
segunda parte.
1. Utilizando la función decimal()(precisión por defecto de 28
digitos)escriba el algoritmo

para computar la raíz de un número real según los métodos establecidos


anteriormente ,

donde se imprima el valor de la raíz y el resultado del error para 10


iteraciones.
print("introduzca un numero real:")

s=input()
s=float(s)

print("introduzca una posible raiz:")


xn=input()

xn=float(xn)

for i in range(10):

x=(xn+(s/xn))/2
e= (s-(xn)*(xn))/(2*xn)

print ("interacion",i+1)
print ("Xn=",xn)
print ("Xn+1=",x)

print("Error=",e)
xn=x
2. cambie la estructura del algoritmo para poder obtener el resultado de la
raíz en función de
un error relativo menor a 1.0 × 10−10 , y llevar el conteo de las iteraciones
requeridas para
cumplir el objetivo.

print("introduzca un numero real:")


s=input()
s=float(s)

print("introduzca una posible raiz:")


xn=input()
xn=float(xn)

e=(s-(xn)*(xn))/(2*xn)
n=0
while(abs(e)>10**-10):

x=(xn+(s/xn))/2
e= (s-(xn)*(xn))/(2*xn)

n=n+1
print ("interacion",n)
print ("Xn=",xn)

print ("Xn+1=",x)
print("Error=",e)

xn=x

También podría gustarte