Está en la página 1de 7

Mecánica computacional

Tarea 1

Jorge Andrés Palomino Palacios

Universidad Tecnológica de Pereira


Facultad de Ingeniería Mecánica
Ingeniería Mecánica
Pereira
2023
Conclusiones de los métodos
1. En los métodos de bisección y de Falsa posición la convergencia se da
en más iteraciones por lo que a la memoria del computador le cuesta
más llegar a la convergencia con una tolerancia de 0.001, en la cual la
aproximación es bastante acertada.

2. Otra observación importante es que entre más grande sea el intervalo en


los métodos de bisección y de Falsa posición, las iteraciones van a
aumentar, sin embargo en esta actividad aunque el valor del límite
superior del intervalo aumento bastante, las iteraciones solamente
aumentaban entre 1 y 10 más con respecto al límite superior inicial (en
este caso b=2000).

3. Un factor muy importante a tener en cuenta es que los intervalos en los


dos primeros métodos debe contener a la raíz que se va a calcular, en
caso contrario el método falla y se da una falsa convergencia, por lo que
se hace necesario tener una idea del valor real de la raíz que se va a
calcular.

4. El método más rápido y (a mi parecer) el mejor de los tres es el de


Newton Raphson, ya que converge mucho más rápido que los anteriores
dos métodos por lo que a la memoria del computador le cuesta un poco
menos.

5. Algo muy importante a tener en cuenta y que se observó en la actividad


es que en el método de Newton Raphson el valor inicial debe estar a la
izquierda del valor real, por lo que al igual que en los anteriores dos
métodos, se hace necesario tener una aproximación inicial del valor real.
Códigos en phyton
Método de bisección
# Metodo de biseccion
from math import *
Tol = 0.001
a = 0.01
b = 2000 # se escogio este intervalo ya que el factor de
rugosidad esta en el orden de estos valores
fr = (a+b)/2 # Valor medio de los intervalos
Er = 100 # Se coloca un error inicial grande para entrar al
ciclo while
i = 0 # iteraccion 0
# Datos del problema
L = 0.2 # longitud en m
ro = 1.23 # densidad en kg/m^3
viscosidad_D = 1.79e-5 # viscocidad dinamica en pa.s
D = 0.005 # Diametro de la tuberia en metros
V = 40 # velocidad en m/s
E = 0.0015e-3 # rugosidad absoluta en m

# A continuacion se va a calcular el Re mediante la siguiente ecuacion

Re = (ro*V*D)/viscosidad_D # Numero de Reynolds adimensional

# y mediante la siguiente eq se calculara un valor inicial de f

# fr = 0.316/(Re)**(0.25) # factor de friccion inicial

while Er > Tol: # Mientras se cumpla esta condicion el while se seguira


ejecutando
def f(x):
return -1/sqrt(x) - 2*log10(0.0000015/(3.7*0.005) +
2.51/(13743.01676*sqrt(x)))

# en esta parte se evalua la funcion en los puntos a,b y x


f_a = f(a)
f_b = f(b)
f_x = f(fr)

ab = f_a*f_b
ax = f_a*f_x
xb = f_x*f_b

if ax > 0:
a = fr
if xb > 0:
b = fr

x0 = fr
fr = (a+b)/2
Er = abs((fr-x0)/fr)*100
i = i+1

print("el factor de friccion es", fr)


print("la convergencia se logra en la iteracción", i)
DeltaP = fr*L*ro*(V**2)/(2*D)
print(f"La caida de presión es:{DeltaP} Pa")

Resultados obtenidos

Metodo de Falsa Posición


# Metodo de Falsa posición
from math import *
Tol = 0.001
a = 0.01
b = 2000 # se escogio este intervalo ya que el factor de
rugosidad esta en el orden de estos valores
fr = (a+b)/2 # Valor medio de los intervalos
Er = 100 # Se coloca un error inicial grande para entrar al
ciclo while
i = 0 # iteraccion 0
# Datos del problema
L = 0.2 # longitud en m
ro = 1.23 # densidad en kg/m^3
viscosidad_D = 1.79e-5 # viscocidad dinamica en pa.s
D = 0.005 # Diametro de la tuberia en metros
V = 40 # velocidad en m/s
E = 0.0015e-3 # rugosidad absoluta en m

# A continuacion se va a calcular el Re mediante la siguiente ecuacion


Re = (ro*V*D)/viscosidad_D # Numero de Reynolds adimensional

# y mediante la siguiente eq se calculara un valor inicial de f


while Er > Tol: # Mientras se cumpla esta condicion el while se seguira
ejecutando
def f(x):
# ecuacion con la que se encontrara el factor de friccion
return -1/sqrt(x) - 2*log10(0.0000015/(3.7*0.005) +
2.51/(13743.01676*sqrt(x)))

f_a = f(a)
f_b = f(b)
xi = (a*f(b)-b*f(a))/(f(b)-f(a))
f_x = f(fr)

ab = f(a)*f(b)
ax = f(a)*f(b)
bx = f(b)*f(fr)

if ax > 0:
a = fr

if bx > 0:
b = fr

x0 = fr
x = (a*f(b)-b*f(a))/(f(b)-f(a))
Er = abs((x-x0)/fr)*100
i = i+1

print("el factor de fricción es:", fr)


print("Se logra la convergencia en iteracion", i)
DeltaP = fr*(L*ro*(V**2))/(2*D)
print(f"La caida de presión es:{DeltaP} Pa")

Resultados obtenidos
En el último momento surgieron problemas, por lo que en este apartado no se
pudieron mostrar los resultados.
Metodo de Newton Raphson
# Metodo de Newton_Raphson
from math import *
Tol = 0.001
Er = 100 # Se coloca un error inicial grande para entrar al
ciclo while
i = 0 # iteraccion 0

# Datos del problema


L = 0.2 # longitud en m
ro = 1.23 # densidad en kg/m^3
viscosidad_D = 1.79e-5 # viscocidad dinamica en pa.s
D = 0.005 # Diametro de la tuberia en metros
V = 40 # velocidad en m/s
E = 0.0015e-3 # rugosidad absoluta en m

# A continuacion se va a calcular el Re mediante la siguiente ecuacion


Re = (ro*V*D)/viscosidad_D # Numero de Reynolds adimensional

fr = 0.316/(Re)**(0.25) # factor de friccion inicial para este metodo

while Er > Tol:


def f1(x):
# ecuacion con la que se encontrara el factor de friccion
return -1/sqrt(x) - 2*log10(0.0000015/(3.7*0.005) +
2.51/(13743.01676*sqrt(x)))

def f2(x):
# ya que se presentaron problemas con la libreria symoy, se
programo otra funcion la
# cual es la derivada de f1
return (1.47826*sqrt(x) + 1.12627)/(2.25254*x**(3/2)+x**2)

x0 = fr
# Este valor que va tomando la variable cada vez se acerca mas a la
raiz de la funcion y por ende al valor real
fr = fr-(f1(fr)/f2(fr))
Er = abs((fr-x0)/fr)*100
i = i+1

print("el factor de fricción es:", fr)


print("Se logra la convergencia en iteracion", i)
DeltaP = fr*(L*ro*(V**2))/(2*D)
print(f"La caida de presión es:{DeltaP}")
Resultados obtenidos

También podría gustarte