Está en la página 1de 22

Ejercicios del libro

Mateo Mejı́a1 , Ariel Serpa2 , Gabriel Ligardo2 , and Andrés


Miranda1
1
Ingenierı́a Mecatrónica
2
Ingenierı́a Electrónica

August 2023

Problema 2-53
La fuerza que impulsa el flujo de los fluidos es la diferencia de presión; una bomba
trabaja elevando la presión de un fluido (convirtiendo el trabajo mecánico de su
eje en energı́a de flujo). Se determina que una bomba de gasolina consume 3.8
kW de potencia eléctrica cuando está trabajando. Si la diferencia de presiones
entre la descarga y la succión de la bomba es 7 kPa, y los cambios de velocidad
y altura son despreciables, determine el flujo volumétrico máximo posible de la
gasolina

Resolución
ṁ ∆P ∆V 2
V̇ = Ė = ṁ ∗ e e=( + + g ∗ ∆z)
ρ ρ 2
El ejercicio dice que los cambios de velocidad y altura son despreciables por lo
que entonces la energia que contiene el fluido es solo la energia de flujo

∆P ∆P ρ ∗ Ė
e=( ) Ė = ṁ ∗ ṁ =
ρ ρ ∆P
ρ∗Ė
∆P Ė
V̇ = = (1)
ρ ∆P
Para suponer el mayor flujo volumétrico supodremos que no hay perdida de
potencia por ende Ė sera igual a 3.8kW
˙
3.8kW m3
V̇ = = 0.543
7kP a s

1
Problema 2-64
Las necesidades de vapor de agua en una fábrica se satisfacen con una caldera
cuyo consumo nominal de calor es 5.5∗106 Btu/h. Se determina que la eficiencia
de combus- tión de la caldera es 0.7, mediante un analizador portátil de gases.
Después de ajustar la caldera, la eficiencia de combus- tión sube a 0.8. En un
año, la caldera opera sin interrupciones 4.200 horas. Suponiendo que el costo
unitario de la energı́a es $4.35/10 6 Btu, calcule el ahorro de energı́a y de costos,
por ajustar la combustión de la caldera

Resolución

# La salida de calor de la caldera


# es igual a ( el aporte de la Caldera ) ( la eficiencia de Combusti ó n )
Cn =5.5*(10**6) # consumo nominal
efi1 =0.7 # eficiencia
efi2 =0.8 # eficiencia
Cue =4.35/(10**6) # costo por unidad de energ ı́ a
hop =4200 # horas de operaci ó n
Rendimiento = Cn * efi1
# la tasa de aporte de calor para la caldera despu é s de ajustar es
Rendimiento2 = Rendimiento / efi2
# Ahorro en la caldera
C_ahorrada = Cn - Rendimiento2
# Ahorro de energ ı́ a = ( C_ahorrada )( horas de operaci ó n )
Ahorro_energia = C_ahorrada * hop
Ahorro_notacion = format ( Ahorro_energia , " .2 e " )
# Utilizamos la funci ó n ‘ format ‘ para convertir el valor a
# notaci ó n cient ı́ fica ; 2 e = dos digitos despues del punto decimal
# Imprimimos el resultado
print ( " Los ␣ ahorro ␣ de ␣ energia ␣ fueron : " , Ahorro_notacion )
# Los ahorros de costos
# ( Ahorros de Energ ı́ a ) ( el costo por unidad de energ ı́ a )
Ahorro_costos = Ahorro_energia * Cue
Ahorron = Ahorro_costos /1000
print ( " Los ␣ ahorro ␣ de ␣ costos ␣ fueron : " , Ahorron )

Output :
Los ahorro de energia fueron : 2.89 e +09
Los ahorro de costos fueron : 12 .5 60 62 50 000 00 01 6

2
Problema 2-65
Reconsidere el problema 2-64. Usando el software EES (u otro), estudie los
efectos del costo unitario de la energı́a y la eficiencia de combustión sobre la
energı́a anual utilizada y los ahorros en costos. Suponga que la eficiencia varı́a
de 0.7 a 0.9 y que el costo unitario varı́a de $4 a $6 por millón de Btu. Grafique
la energı́a anual utilizada y los ahorros en costos contra la eficiencia para precios
unitarios de $4, $5 y $6 por millón de Btu, y explique los resultados

Resolución
from matplotlib import pyplot as plt
import numpy as np
efi = np . arange (0.7 ,0.9 ,0.001)
# energia de anual
eah = ( Cn -( Cn * efi1 / efi ))* hop ;
plt . figure ()
plt . plot ( efi , eah )
plt . grid ( True )
plt . xlabel ( ’ Eficiencia ␣ del ␣ proceso ␣ " n " ␣ ’) ,
plt . ylabel ( ’ Energia ␣ ahorrada ␣ BTU / a ~
n o ’)

plt . title ( ’ Grafica ␣ de ␣ eficiencia ␣ vs ␣ Energia ␣ ahorrada ’)

Output :

3
pu = np . arange (4 ,6 ,0.2) # precio unitario
# costo de energia
cote = Ahorro_energia * hop * pu /10**6;
plt . figure ()
plt . plot ( pu , cote )
plt . grid ( True )
plt . xlabel ( ’ costo ’) ,
plt . ylabel ( ’ costo ␣ de ␣ energia ␣ ahorrada ’)
plt . title ( ’ grafica ␣ de ␣ T ␣ atm ␣ vs ␣ T ’)

Output :

4
Problema 2-69
En cierta ubicación, el viento sopla constantemente a 7 m/s. Determine la
energı́a mecánica del aire por unidad de masa y el potencial de generación
de potencia de un aerogenerador con hojas de 80 m de diámetro en ese sitio.
También determine la generación efectiva de potencia suponiendo una eficiencia
total de 30 por ciento. Tome la densidad del aire como 1.25 kg/m3

Resolución

import numpy as np
import matplotlib . pyplot as plt
import math
# Datos
hojas = 40 # m de radio
v = 7#m/s
eff = 0.30 # %
densidad_aire = 1.25 # kg / m3
# --------------------------
# La masa del aire tiende a ser despreciable por tanto la energ ı́ a mec á nica
# del aire por unidad de masa se restringe a la energ ı́ a cin é tica por unidad
# de masa
# Potencial de generaci ó n de energ ı́ a es igual a
# densidad x á rea x dX / dt x E = densidad * Pi * radio ^2 * V * E
E = 1/2*( v **2)
P = densidad_aire * math . pi * (( hojas )**2) * v * E
Gen = eff *( P )
print ( " En ␣ la ␣ ubicaci ó n ␣ el ␣ viento ␣ posee ␣ una ␣ energ ı́ a ␣ mec á nica ␣ por ␣ unidad ␣ de
masa ␣ de ␣ {:.2 f }J , ␣ cuya ␣ generaci ó n ␣ de ␣ potencia ␣ con ␣ un ␣ generador ␣ de ␣ hojas ␣ de
80 m ␣ es ␣ {:.2 f } kW , ␣ no ␣ obstante ␣ si ␣ la ␣ eficiencia ␣ del ␣ sistema ␣ es ␣ 30% ␣ es
igual ␣ a ␣ {:.2 f } kW " . format (E , P /1000 , Gen /1000))

Output :
En la ubicaci ó n el viento posee una energ ı́ a mec á nica por unidad de
masa de 24.50 J , cuya generaci ó n de potencia con un generador de hojas de
80 m es 1077.57 kW , no obstante si la eficiencia del sistema es 30% es
igual a 323.27 kW

5
2-70
Reconsidere el problema 2-69. Usando el software EES (u otro), investigue el
efecto de la velocidad del viento y el diámetro de envergadura de hojas sobre la
generación eólica de potencia. Suponga que la velocidad varı́a de 5 a 20 m/s en
incrementos de 54 m/s, y que el diámetro varı́a de 20 a 120 m en incrementos
de 20 m. Tabule los resultados, y explique su importancia

Resolución
import numpy as np
import matplotlib . pyplot as plt
import math

# Del ejercicio anterior conocemos lo siguiente :

Diametro = np . arange (20 , 120+20 , 20) # m


g = 9.81 # m / s2
Velocidad = np . arange (5 , 20+5 , 5) # m / s
# Nota : Al haber una incongruencia en los incrementos del ejercicio
# los tomaremos de 5 m / s
eff = 0.30 # %
densidad_aire = 1.25 # kg / m3

# Se calcula el area del circulo con los distintos diametros


AreaCirculo = ( np . pi * Diametro **2)/4

# ---- Comprobar areas con distintos diametros - - - -


# ValoresD = len ( Diametro )
#i = 0
# while i < ValoresD :
# print ( f " Area del circulo con diametro de { Diametro [ i ]}:
# { AreaCirculo [ i ]:.2 f } m2 ")
# i += 1
# print ()

# Formula : Densidad del aire * Area del circulo * Velocidad .


# Primero hacemos el producdo de las areas y las velocidades
# debido a que son dos arreglos de distinto tama ~no.
AxV = AreaCirculo [: , np . newaxis ] * Velocidad
flujoDeMasa = densidad_aire * AxV

# ---- Comprobar valores de flujo de masa - - - -


# print ( flujoDeMasa ) # Kg / s
# print ()

6
# Calculo de potencia
w_dot_max = ( flujoDeMasa * Velocidad **2)/2000 # Conversion ( m ^2/ s ^2 , kJ / kg )
potencia = w_dot_max * eff

# Distribucion de la tabla
tabla_filas = []
for i , diametro_actual in enumerate ( Diametro ):
print ( f " Diametro :{ diametro_actual :.2 f } ␣ m " )
for j , v in enumerate ( Velocidad ):
print ( f " Velocidad :{ Velocidad [ j ]:.2 f }
␣ ␣ ␣ ␣ ␣ ␣ m / s ␣ --->␣ Potencia : ␣ { potencia [i , ␣ j ]:.2 f } ␣ kW " )
print ()

# Grafica
for i , diametro_actual in enumerate ( Diametro ):
plt . plot ( Velocidad , potencia [ i ] ,
label = f ’ Diametro : ␣ { diametro_actual :.2 f } ␣ m ’)

plt . title ( " Relaci ó n ␣ entre ␣ velocidad ␣ y ␣ potencia ␣ para ␣ distintos ␣ di á metros " )
plt . xlabel ( " Velocidad ␣ ( m / s ) " )
plt . ylabel ( " Potencia ␣ [ kW ] " )
plt . grid ()
plt . legend ()
plt . show ()

Output

7
Grafica de ajuste polinomial para factores Z de
diferentes gases

Figure 1: Comparación de factores Z para varios gases

Resolucı́on
Grafica para Tr = 2

import numpy as np
import matplotlib . pyplot as plt
from numpy . polynomial . polynomial import Polynomial

x_data = [
0.087465795 ,0.2055993 ,0.313936822 ,
0.44889578 ,0.678226392 , 0.805760317 ,0.94402096 ,1.199996277 ,
1.446082538 ,1.702057854 ,1.869380689 ,
1.948120847 ,2.194207107 ,2.459955139 ,
2.56829266 ,2.706087936 ,2.961993448 ,3.208079708 ,4.152891793]
y_data = [
0.992434988 ,0.990543735 ,0.984869976 ,0.984869976 ,0.975413712 ,
1.009456265 ,0.971631206 ,0.965957447 ,0.964066194 ,0.958392435 ,0.958392435 ,0
0.956501182 ,0.956501182 ,0.950827423 ,0.950827423 ,0.950827423 ,
0.94893617 , 0.954609929
]

8
# Definir una funci ó n polin ó mica de grado 2
def polynomial_fit (x , a , b , c ):
return a * x **2 + b * x + c

# Ajustar la funci ó n a los datos


params , covariance = curve_fit ( polynomial_fit , x_data , y_data )

# Generar una gr á fica con los datos y la ecuaci ó n ajustada


plt . scatter ( x_data , y_data , label = ’ Datos ’)
x_fit = np . linspace ( min ( x_data ) , max ( x_data ) , 100)
y_fit = polynomial_fit ( x_fit , * params )
plt . plot ( x_fit , y_fit , color = ’ red ’ , label = ’ Ecuaci ó n ␣ ajustada ␣ ( grado ␣ 2) ’)
plt . xlabel ( ’X ’)
plt . ylabel ( ’Y ’)
plt . legend ()
plt . ylim (0.94 , 1.02) # Restringir los valores en el eje y
plt . show ()

9
Gráficas para Tr = 1.5

# Dataset 2. Polinomica
import numpy as np
from scipy . optimize import curve_fit
import matplotlib . pyplot as plt

# Datos proporcionados
x_data = [
0.215651235 , 0.461853837 , 0.461993448 , 0.688487742 , 0.737933024 ,
0.826492433 , 0.93476015 , 0.935062638 , 1.013779528 , 1.181102362 ,
1.161673275 , 1.26996426 , 1.397847211 , 1.447315761 , 1.545834031 ,
1.693355485 , 1.693588169 , 1.841109622 , 1.811838015 , 1.880642579 ,
1.939907113 , 1.998822621 , 2.107206679 , 2.146786173 , 2.215614006 ,
2.23508963 , 2.510912865 , 2.648638335 , 2.767027792 , 2.924508107 ,
3.081779006 , 3.08201169 , 3.229649485 , 2.402854563 , 2.875528192 ,
3.269252248 , 3.613740437 , 3.396995588 , 3.505030621 , 3.564295155 ,
3.859570745 , 3.987290817 , 3.899243313 , 4.066193853 , 4.331941885 ,
4.332174569 , 4.489119711 , 4.587637981 , 4.980989743 , 5.118947897 ,
5.384323635 , 5.591086354 , 5.758223041
]
y_data = [
0.973522459 , 0.962174941 , 0.950827423 , 0.941371158 , 0.922458629 ,
0.924349882 , 0.924349882 , 0.899763593 , 0.901654846 , 0.901654846 ,
0.880851064 , 0.878959811 , 0.88463357 , 0.863829787 , 0.856264775 ,
0.86572104 , 0.846808511 , 0.856264775 , 0.835460993 , 0.843026005 ,
0.826004728 , 0.837352246 , 0.827895981 , 0.810874704 , 0.816548463 ,
0.83356974 , 0.81465721 , 0.820330969 , 0.797635934 , 0.797635934 ,
0.81465721 , 0.795744681 , 0.795744681 , 0.797635934 , 0.778723404 ,
0.776832151 , 0.776832151 , 0.793853428 , 0.812765957 , 0.795744681 ,
0.795744681 , 0.81465721 , 0.771158392 , 0.80141844 , 0.80141844 ,
0.78250591 , 0.826004728 , 0.818439716 , 0.846808511 , 0.83356974 ,
0.863829787 , 0.858156028 , 0.873286052
]

# Funci ó n polin ó mica para el ajuste


def polynomial_func (x , a , b , c ):
return a * x ** 2 + b * x + c

# Ajuste de curva utilizando curve_fit


params , covariance = curve_fit ( polynomial_func , x_data , y_data )

# Par á metros del ajuste


a_fit , b_fit , c_fit = params

10
# Crear una l ı́ nea para la gr á fica del ajuste
x_fit = np . linspace ( min ( x_data ) , max ( x_data ) , 100)
y_fit = polynomial_func ( x_fit , a_fit , b_fit , c_fit )

# Graficar los datos y el ajuste


plt . plot ( x_data , y_data , ’o ’ , label = ’ Datos ’)
plt . plot ( x_fit , y_fit , ’ - ’ , label = f ’ Ajuste : ␣ { a_fit :.6 f } x ^2 ␣ + ␣ { b_fit :.6 f } x
+ ␣ { c_fit :.6 f } ’)
plt . xlabel ( ’ Eje ␣ x ’)
plt . ylabel ( ’ Eje ␣ y ’)
plt . title ( ’ Ajuste ␣ Polin ó mico ␣ ( Grado ␣ 2) ␣ a ␣ los ␣ Datos ’)
plt . legend ()
plt . grid ( True )
plt . show ()

11
Gráfica para Tr = 1.3

# dataset 3. Polinomica
import numpy as np
from scipy . optimize import curve_fit
import matplotlib . pyplot as plt

# Datos proporcionados
x_data = [
0.225586828 , 0.462226131 , 0.462412278 , 0.541198972 , 0.659541892 ,
0.728672214 , 0.856787848 , 0.955189777 , 1.004704864 , 0.955538802 ,
1.103339476 , 1.142895702 , 1.211514119 , 1.241413972 , 1.261331695 ,
1.438310903 , 1.458391504 , 1.527382216 , 1.616104503 , 1.685095214 ,
1.734307813 , 1.82316971 , 1.734610301 , 1.980696562 , 2.098946408 ,
2.099179092 , 2.050059567 , 2.266641537 , 2.345428231 , 2.306267568 ,
2.483200238 , 2.66055174 , 2.74922749 , 2.719886078 , 2.788364885 ,
2.975558906 , 3.083942965 , 3.103814151 , 3.221482288 , 3.251195994 ,
3.349621191 , 3.566040282 , 3.654529886 , 3.644454683 , 3.782668789 ,
3.772500512 , 4.018563504 , 3.999018075 , 4.166108226 , 4.175718062 ,
4.274306137 , 4.353092831 , 4.53975168 , 4.667704436 , 4.824998604 ,
4.962654269 , 5.031528639 , 5.483865714 , 5.611702128 , 5.926337 ,
6.467186947 , 6.889880121
]
y_data = [
0.965957447 , 0.931914894 , 0.91678487 , 0.913002364 , 0.894089835 ,
0.875177305 , 0.861938534 , 0.863829787 , 0.839243499 , 0.835460993 ,
0.822222222 , 0.807092199 , 0.829787234 , 0.799527187 , 0.780614657 ,
0.795744681 , 0.763593381 , 0.756028369 , 0.744680851 , 0.737115839 ,
0.737115839 , 0.714420804 , 0.712529551 , 0.710638298 , 0.69929078 ,
0.680378251 , 0.672813239 , 0.669030733 , 0.665248227 , 0.64822695 ,
0.66713948 , 0.652009456 , 0.644444444 , 0.629314421 , 0.663356974 ,
0.64822695 , 0.638770686 , 0.623640662 , 0.659574468 , 0.644444444 ,
0.644444444 , 0.653900709 , 0.661465721 , 0.680378251 , 0.646335697 ,
0.672813239 , 0.672813239 , 0.661465721 , 0.680378251 , 0.69929078 ,
0.686052009 , 0.682269504 , 0.710638298 , 0.710638298 , 0.725768322 ,
0.737115839 , 0.739007092 , 0.773049645 , 0.78250591 , 0.808983452 ,
0.848699764 , 0.892198582
]

# Funci ó n polin ó mica para el ajuste


def polynomial_func (x , a , b , c , d ):
return a * x ** 3 + b * x ** 2 + c * x + d

# Ajuste de curva utilizando curve_fit


params , covariance = curve_fit ( polynomial_func , x_data , y_data )

12
# Par á metros del ajuste
a_fit , b_fit , c_fit , d_fit = params

# Crear una l ı́ nea para la gr á fica


x_fit = np . linspace ( min ( x_data ) , max ( x_data ) , 100)
y_fit = polynomial_func ( x_fit , a_fit , b_fit , c_fit , d_fit )

# Graficar los datos y el ajuste


plt . plot ( x_data , y_data , ’o ’ , label = ’ Datos ’)
plt . plot ( x_fit , y_fit , ’ - ’ , label = f ’ Ajuste : ␣ { a_fit :.6 f } x ^3 ␣ +
{ b_fit :.6 f } x ^2 ␣ +{ c_fit :.6 f } x ␣ + ␣ { d_fit :.6 f } ’)
plt . xlabel ( ’ Eje ␣ x ’)
plt . ylabel ( ’ Eje ␣ y ’)
plt . title ( ’ Ajuste ␣ Polin ó mico ␣ ( Grado ␣ 3) ␣ a ␣ los ␣ Datos ’)
plt . legend ()
plt . grid ( True )
plt . show ()

13
Gráfica para Tr = 1.2

# dataset 4. Polinomica
import numpy as np
from scipy . optimize import curve_fit
import matplotlib . pyplot as plt

# Datos proporcionados
x_data = [
0.087675211 , 0.2356853 , 0.294833492 , 0.36401035 , 0.452616295 ,
0.452825711 , 0.561395916 , 0.620637181 , 0.69949368 , 0.729137581 ,
0.847596843 , 0.965869958 , 0.985764412 , 1.064713985 , 1.153436273 ,
1.212444854 , 1.192992498 , 1.212840416 , 1.232665066 , 1.301562704 ,
1.360850505 , 1.469025148 , 1.459368776 , 1.489012677 , 1.45974107 ,
1.558236072 , 1.637115839 , 1.696101152 , 1.745476629 , 1.686607658 ,
1.844367193 , 2.011759833 , 2.179408425 , 2.090895553 , 1.962942797 ,
2.307547328 , 2.464934569 , 2.465330132 , 2.563545913 , 2.66197111 ,
2.819311815 , 3.03596359 , 3.075100985 , 3.163660394 , 3.242377283 ,
3.517688613 , 3.586493178 , 3.655460621 , 3.724241917 , 4.05853856 ,
4.15691722 , 4.324053908 , 4.373243238 , 4.471482288 , 4.687854843 ,
4.845102474 , 5.277824315 , 5.789030361 , 5.995537127 , 6.742707693
]
y_data = [
0.975413712 , 0.945153664 , 0.937588652 , 0.914893617 , 0.913002364 ,
0.895981087 , 0.871394799 , 0.856264775 , 0.846808511 , 0.837352246 ,
0.808983452 , 0.795744681 , 0.778723404 , 0.761702128 , 0.75035461 ,
0.754137116 , 0.735224586 , 0.721985816 , 0.710638298 , 0.710638298 ,
0.691725768 , 0.69929078 , 0.684160757 , 0.674704492 , 0.653900709 ,
0.64822695 , 0.636879433 , 0.642553191 , 0.629314421 , 0.614184397 ,
0.591489362 , 0.585815603 , 0.559338061 , 0.553664303 , 0.553664303 ,
0.544208038 , 0.55177305 , 0.519621749 , 0.536643026 , 0.536643026 ,
0.547990544 , 0.538534279 , 0.557446809 , 0.559338061 , 0.561229314 ,
0.58392435 , 0.591489362 , 0.585815603 , 0.595271868 , 0.623640662 ,
0.627423168 , 0.642553191 , 0.644444444 , 0.659574468 , 0.672813239 ,
0.691725768 , 0.720094563 , 0.769267139 , 0.784397163 , 0.854373522
]

# Funci ó n polin ó mica para el ajuste


def polynomial_func (x , a , b , c , d , e ):
return a * x ** 4 + b * x ** 3 + c * x ** 2 + d * x + e

# Ajuste de curva utilizando curve_fit


params , covariance = curve_fit ( polynomial_func , x_data , y_data )

# Par á metros del ajuste


a_fit , b_fit , c_fit , d_fit , e_fit = params

14
# Crear una l ı́ nea para la gr á fica del ajuste
x_fit = np . linspace ( min ( x_data ) , max ( x_data ) , 100)
y_fit = polynomial_func ( x_fit , a_fit , b_fit , c_fit , d_fit , e_fit )

# Graficar los datos y el ajuste


plt . plot ( x_data , y_data , ’o ’ , label = ’ Datos ’)
plt . plot ( x_fit , y_fit , ’ - ’ , label = f ’ Ajuste : ␣ { a_fit :.6 f } x ^4 ␣ + ␣ { b_fit :.6 f } x ^3 ␣ +
plt . xlabel ( ’ Eje ␣ x ’)
plt . ylabel ( ’ Eje ␣ y ’)
plt . title ( ’ Ajuste ␣ Polin ó mico ␣ ( Grado ␣ 4) ␣ a ␣ los ␣ Datos ’)
plt . legend ()
plt . grid ( True )
plt . show ()

15
Grafica para Tr = 1.1

# dataset 5. Polinomica
import numpy as np
import matplotlib . pyplot as plt

# Datos proporcionados
x_data = [
0.305234452 , 0.087721748 , 0.413734852 , 0.463133598 , 0.492940377 ,
0.56190782 , 0.601580388 , 0.700191731 , 0.720016381 , 0.789169971 ,
0.828633123 , 0.858370097 , 0.878218015 , 0.917704436 , 0.95728393 ,
1.006729212 , 1.065970477 , 1.135054262 , 1.086051079 , 1.145269075 ,
1.20437073 , 1.214422665 , 1.23431712 , 1.254118501 , 1.323179018 ,
1.353032334 , 1.431725954 , 1.363107537 , 1.461602539 , 1.4323542 ,
1.501577595 , 1.580457363 , 1.620060125 , 1.698800283 , 1.777819661 ,
1.846531152 , 1.866448875 , 1.974530444 , 2.063322537 , 2.230505761 ,
2.289467806 , 2.368207963 , 2.427170008 , 2.525478863 , 2.663204334 ,
2.771402245 , 2.790854601 , 2.948288379 , 3.036615104 , 3.361208838 ,
3.567482921 , 3.656019061 , 4.236029672 , 4.38348132 , 5.071736379 ,
5.740213324
]
y_data = [
0.892198582 , 0.971631206 , 0.873286052 , 0.858156028 , 0.835460993 ,
0.829787234 , 0.805200946 , 0.790070922 , 0.778723404 , 0.757919622 ,
0.75035461 , 0.733333333 , 0.720094563 , 0.710638298 , 0.693617021 ,
0.674704492 , 0.659574468 , 0.644444444 , 0.627423168 , 0.614184397 ,
0.610401891 , 0.593380615 , 0.576359338 , 0.566903073 , 0.553664303 ,
0.527186761 , 0.530969267 , 0.508274232 , 0.502600473 , 0.479905437 ,
0.453427896 , 0.442080378 , 0.423167849 , 0.423167849 , 0.400472813 ,
0.415602837 , 0.396690307 , 0.411820331 , 0.394799054 , 0.406146572 ,
0.413711584 , 0.413711584 , 0.421276596 , 0.430732861 , 0.436406619 ,
0.442080378 , 0.460992908 , 0.464775414 , 0.485579196 , 0.502600473 ,
0.536643026 , 0.540425532 , 0.597163121 , 0.612293144 , 0.670921986 ,
0.737115839
]

# Funci ó n polin ó mica para el ajuste


def polynomial_func (x , a , b , c , d , e , f , g ):
return a * x ** 6 + b * x ** 5 + c * x ** 4 + d * x ** 3 + e * x ** 2 + f

# Ajuste de curva utilizando curve_fit


params , covariance = curve_fit ( polynomial_func , x_data , y_data )

# Par á metros del ajuste


a_fit , b_fit , c_fit , d_fit , e_fit , f_fit , g_fit = params

16
# Crear una l ı́ nea para la gr á fica del ajuste
x_fit = np . linspace ( min ( x_data ) , max ( x_data ) , 100)
y_fit = polynomial_func ( x_fit , a_fit , b_fit , c_fit , d_fit , e_fit , f_fit , g_fi

# Graficar los datos y el ajuste


plt . plot ( x_data , y_data , ’o ’ , label = ’ Datos ’)
plt . plot ( x_fit , y_fit , ’ - ’ , label = f ’ Ajuste ␣ Polin ó mico ␣ ( Grado ␣ 6) ’)
plt . xlabel ( ’ Eje ␣ x ’)
plt . ylabel ( ’ Eje ␣ y ’)
plt . title ( ’ Ajuste ␣ Polin ó mico ␣ ( Grado ␣ 6) ␣ a ␣ los ␣ Datos ’)
plt . grid ()
plt . legend ()

17
Grafica para Tr = 1.0

# dataset 6. Media movil , periodo : 2


import numpy as np
import matplotlib . pyplot as plt

# Datos proporcionados
x_data = [
0.1572709 , 0.077949033 , 0.028596824 , 0.206390425 , 0.226424489 ,
0.216465628 ,0.305234452 , 0.256114927 , 0.295647884 , 0.325384859 ,
0.355098565 , 0.39465479 ,0.404660189 , 0.453965861 , 0.463971259 ,
0.562815286 , 0.592575529 , 0.592831481 , 0.612609594 , 0.642253495 ,
0.66214795 , 0.701611102 , 0.731348076 , 0.741330206 ,0.771113717 ,
0.761503881 , 0.820791683 , 0.830843618 , 0.850714804 , 0.860766739 , ←-
0.851226708 , 0.910421437 , 0.890876008 ,
0.950512835 , 0.950838592 , 0.970756315 , 0.961169747 , 0.981273617 ,
0.96184453 , 0.99165131 , 0.972222222 , 0.982320694 ,
0.982530109 , 0.982716256 , 1.041887716 , 0.963333706 , 1.061828708 ,
1.120767484 , 1.179589918 , 1.268172595 , 1.582877273 ,
1.631926993 , 1.6611986 , 1.90700564 ,2.015296625 , 2.083868506 ,
2.34929078 , 2.408043409 , 2.870223004 , 3.057137805 ,
3.037080471 , 3.459657303 , 3.548286517 , 4.010163623 ,
4.167411254 , 4.364168575 ,
5.07171311 , 6.51705106
]
y_data = [
0.918676123 , 0.965957447 , 0.977304965 , 0.926241135 , 0.89787234 ,
0.907328605 ,0.892198582 , 0.88463357 , 0.871394799 , 0.854373522 ,
0.839243499 , 0.824113475 ,0.810874704 , 0.803309693 , 0.790070922 ,
0.756028369 , 0.737115839 , 0.716312057 ,0.708747045 , 0.69929078 ,
0.682269504 , 0.674704492 , 0.657683215 , 0.646335697 ,
0.625531915 , 0.606619385 , 0.587706856 , 0.570685579 , 0.555555556 ,
0.538534279 ,0.513947991 , 0.502600473 , 0.491252955 , 0.443971631 ,
0.41749409 , 0.39858156 ,
0.377777778 , 0.343735225 , 0.322931442 , 0.300236407 , 0.279432624 ,
0.258628842 , 0.241607565 , 0.226477541 , 0.217021277 , 0.201891253 ,
0.196217494 , 0.205673759 ,0.224586288 , 0.224586288 , 0.245390071 ,
0.258628842 , 0.279432624 , 0.300236407 ,
0.298345154 , 0.324822695 , 0.351300236 , 0.375886525 ,
0.409929078 , 0.41749409 ,
0.447754137 , 0.50070922 , 0.496926714 , 0.555555556 , 0.574468085 ,
0.582033097 , 0.672813239 , 0.795744681
]

18
# Calcular la l ı́ nea de tendencia de media m ó vil de periodo 2
window = 2
y_smoothed = np . convolve ( y_data , np . ones ( window )/ window , mode = ’ valid ’)

# Crear valores x correspondientes a la l ı́ nea de tendencia


x_smoothed = x_data [ window -1:]

# Graficar los datos originales y la l ı́ nea de tendencia de media m ó vil


# NOTA : Debido a la naturaleza de la media m ó vil , el n ú mero de puntos en la l ı́
plt . plot ( x_data , y_data , ’o ’ , label = ’ Datos ␣ Originales ’)
plt . plot ( x_smoothed , y_smoothed , ’r - ’ , label = ’L ı́ nea ␣ de ␣ Tendencia ␣ de ␣ Media ␣ M ó v
plt . xlabel ( ’ Eje ␣ x ’)
plt . ylabel ( ’ Eje ␣ y ’)
plt . title ( ’L ı́ nea ␣ de ␣ Tendencia ␣ de ␣ Media ␣ M ó vil ␣ de ␣ Periodo ␣ 2 ’)
plt . legend ()
plt . show ()

19
Ensayo sobre cifras significativas
Mateo Mejı́a1 , Ariel Serpa2 , Gabriel Ligardo2 , and Andrés
Miranda1
1
Ingenierı́a Mecatrónica
2
Ingenierı́a Electrónica

August 2023

1. Observaciones acerca de los dı́gitos significa-


tivos
El concepto de cifra significativa es un aspecto particularmente confuso en el
análisis de incertidumbres, ya que implica consideraciones matemáticas y fı́sicas.
En términos generales, nuestro interés radica en establecer una noción de rele-
vancia fı́sica (basada en la experimentación y no solo en lo numérico) para una
cifra especı́fica presente en una expresión numérica. Esto, por supuesto, estará
influenciado por la medición en cuestión y será determinado por su incertidum-
bre experimental precisa. En esencia, podemos definir una cifra significativa
como aquella que proporciona información clara y necesaria sobre una medida
experimental particular, sin añadir ambigüedad ni redundancia. En general, un
manejo correcto de las cifras significativas se puede resumir en las siguientes
“reglas”:
1. Todas las cifras diferentes de cero que expresen cantidades iguales o supe-
riores a la incertidumbre experimental son significativas (4123 4 cifras; 0.
4123 4 cifras).
2. Los ceros son significativos cuando se encuentran entre dos cifras diferen-
tes.
3. Los ceros a la izquierda de una cifra diferente de cero no son significativos
ya que únicamente indican la posición de la coma decimal y pueden ser
anulados mediante un cambio de unidades

4. Los ceros a la derecha de cifras no nulas pueden o no ser significativos,


dependiendo de la incertidumbre experimental (0,023000g 2 cifras si apre-
ciamos el mg; y 5 cifras si apreciamos el g; 230 2 cifras; 230, 3 cifras; 230,0
4 cifras).

1
Cabe recalcar de nuevo que estas reglas son nociones generales para el manejo
de estas cifras es muy importante saber la naturaleza de los datos ¿Cómo los
obtuvimos? ¿De dónde los obtuvimos? ¿Para que los obtuvimos? ¿Qué buscamos
analizar con ellos? Son en base a estas preguntas que el investigador o en su
defecto el sujeto que maneja los datos debe aplicar el tratamiento que crea
correcto a estos datos. Sino suceden casos como el siguiente:

1.1. Errores en el Reporte de Cifras Significativas en Re-


vistas Quirúrgicas y Médicas en 2017
El propósito de este artı́culo fue examinar la consistencia de reportar cifras
significativas en manuscritos, con base en reglas matemáticas establecidas. Se
enfocaron en tres categorı́as diferentes de errores de cifras significativas, especı́fi-
camente aquellos que involucran cálculos, aquellos relacionados con informar la
precisión de los hallazgos como intervalos de confianza y desviaciones estándar,
y aquellos relacionados con el número de dı́gitos en los valores de P informados.
A diferencia del pasado, cuando los cálculos podı́an ser tediosos y engorrosos,
los investigadores ahora pueden ingresar datos sin procesar en una computadora
y recibir lo que parece ser un resultado final, sin comprender la naturaleza y
la lógica de los cálculos realizados. Esta dependencia en el análisis de softwa-
re sin la formación adecuada se pueden introducir suposiciones inaplicables o
una interpretación y presentación incorrecta de los resultados. Esto potencia el
informe erróneo de cifras significativas en los informes estadı́sticos al permitir
que los investigadores no comprendan la calidad de sus datos. pasarse por al-
to y puede ampliarse extremadamente, lo que conduce a hallazgos diluidos o
falsos. La información precisa de los hallazgos estadı́sticos es necesaria en to-
da investigación, y los errores simples permiten que los hallazgos verdaderos se
malinterpreten. Pequeños errores en el número de cifras significativas pueden
exagerar o diluir la precisión real de los resultados, o peor aún, anular hallazgos
reales a los ojos del lector. Los informes estándar incluyen alguna indicación de
precisión, que tı́picamente refleja el refinamiento de la medición, y se caracteriza
usando cifras significativas.1, 4, 5, 7, 8, 9 Por convención, solo se informa un
dı́gito incierto y los resultados se informan con más de un dı́gito incierto, ya sea
intencionalmente o por negligencia, tergiversará la certeza genuina de las me-
diciones y dará lugar a interpretaciones erróneas. Se revisaron los manuscritos
elegibles de seis revistas quirúrgicas y una médica preeminente publicadas entre
enero y diciembre de 2017 en busca de errores al informar las cifras significativas
de los hallazgos estadı́sticos publicados. Los diarios; Journal of Vascular Sur-
gery (JVS), Annals of Vascular Surgery (AVS), European Journal of Vascular
and Endovascular Surgery (EJVES), Surgery, Journal of the American College
of Surgeons (JACS) y Journal of the American Medical Association Surgery
(JAMA Cirugı́a) Se revisaron un total de 1675 artı́culos publicados en las siete
revistas entre enero y diciembre de 2017.De estos 730 (44 %) contenı́an un error
en una o más categorı́as de error. Hubo un total de 890 casos de categorı́a de
error, lo que representa una tasa de error del 53 %. Proporcionalmente, AVS de-
mostró la tasa de error más alta (68 %), en comparación con NEJM, que tuvo la

2
tasa de error más baja (25 %). Los errores de reporte de cifras significativas son
frecuentes en la investigación médica. Algunas revistas tienen más del 70 %, una
vez ajustados, de sus artı́culos publicados con uno o más tipos de error según
lo definido en este estudio. Desafortunadamente, estos errores son evidentes, ya
que dos observadores tuvieron una concordancia de 90 % para encontrarlos y
muestran una solidez moderada en la prueba kappa de confiabilidad entre ob-
servadores de Cohen. Las desviaciones estándar y los intervalos de confianza son
el tipo de error más frecuente entre revisores y autores.

1.2. Estandarización de métricas para confiabilidad de las


cifras significativas
Normalmente para evitar mediciones erróneas como por ejemplo la medición
de propiedades intrı́nsecas de elementos a la hora de investigar se recurre a
entidades que tengan medidas estandarizadas las cuales ofrecen un gran nivel
de confianza en el número de cifras significativas que tengan. Algunos ejemplos
de estas entidades son:
ASTM: Sociedad Estadounidense para Pruebas y Materiales
ISO: Organización Internacional de Normalización
IEC: Comisión Electrotécnica Internacional
IEEE: Instituto de Ingenieros Eléctricos y Electrónicos
BSI: Instituto de Normas Británicas
AFNOR: Asociación Francesa de Normalización
DIN: Instituto Alemán de Normalización
JIS: Normas Industriales Japonesas
ANSI: Instituto Nacional Estadounidense de Estándares.

Referencias
Varela, L.M. (2004). De la medición de magnitudes fı́sicas: unidades, cifras
significativas e incertidumbres de medida. Departamento de Fı́sica de la Mate-
ria Condensada. Facultad de Fı́sica. Universidad de Santiago de Compostela.
E-15782. Santiago de Compostela. España.

Leaphart, D., Cronley, A. (2019). Errors in Reporting Significant Figures


in Surgical and Medical Journals in 2017. Journal of Surgical Research, 243,
567–573. https://doi.org/10.1016/j.jss.2019.07.006

American Society for Testing and Materials, Standards for Metric Practice.
ASTM E 380-79

También podría gustarte