LaboratoriodeFsicadeOndas,Oscilacionesy
ptica
Prctica:PenduloSimple
Integrantes
LuisMiguelCastiblancoJuanCamiloCastrillonAndrsCardonaMuoz
In[52]: #matplolibparameterstogetnicerexports
fromIPython.displayimportset_matplotlib_formats
set_matplotlib_formats('png','pdf')
#Commonimports
importmatplotlib.pyplotasplt
importnumpyasnp
#Fitfunctionimport
fromscipy.statsimportlinregress
fromscipy.optimizeimportcurve_fit
%matplotlibinline
Objetivos
Entenderyconcluiracercadelosfactoresqueafectanelperiododeunpndulo
Analizaryaplicarlosconceptosaprendidosenlasoucindesituacionesrelacionadasconelpndulo
simple
Materiales
3cuerposdemasasdiferentes
balanza(noutilizada)
hilo(incluidoenelsoporteuniversal)
metro
transportador
soporteuniversal
cronmetro
Varillaeje(incluidaenelsoproteuniversal)
ProcedimientoYResultados
Experiencia1:
comovariaelperiodovariandolaamplitudangular
Paraestaexperiencia,mantenerconstantelalongituddelhiloylamasadelcuerpo
Luego,suspenderelpndulodelavaillaeje
Desplazarlamasadesdesuposicindeequilibriohastaunaamplitudangularde5
Medireltiempoquegastalamasaenhacer10oscilaciones
Repetirlaexperiencia2vecesmas
Calcularelperiodoyregistrelosdatos
Repetirparaunaamplitudde10
Datosobtenidos:
Estosdatosfuerontomadosconunalongitudde57,5cmyunamasade90,20gr
Para5:
In[53]: t_5=np.array([15.15,15.38,15.34])#tiemposobtenidospara10oscilacionesc
on5ensegundos
In[54]: defaverage(num):#definimosunafuncinparacalculareltiempopromedio
total=sum(num)
total=float(total)
returntotal/len(num)
In[55]: t_5prom=round(average(t_5),2)#funcinround(rendondealosdecimales)
print("tiempoPromediopara5=",t_5prom)
tiempoPromediopara5=15.29
In[56]: T_5prom=t_5prom/10#periodopromedio(10:numerodeoscilaciones)
print("Periodopromediopara5=",T_5prom)
Periodopromediopara5=1.529
Para10
In[57]: t_10=np.array([15.31,15.47,15.19])#tiemposobtenidospara10oscilaciones
con10ensegundos
In[58]: t_10prom=round(average(t_10),2)
print("tiempoPromediopara10=",t_10prom)
tiempoPromediopara10=15.32
In[59]: T_10prom=t_10prom/10#periodopromedio(10:numerodeoscilaciones)
print("Periodopromediopara10=",T_10prom)
Periodopromediopara10=1.532
Experiencia2:
Comovariaelperiodoalvariarlamasaoscilante
Paraestaexperiencia,mantenerconstantelaamplituddelangulode10ydelhilo
Adicionarlamenormasaalpendulo,medireltiempoquedemoraencompletar10oscilaciones
Repetirlaexperiencia2vecesmas
Cambiarlamasayrepetirlospasosanteriores
Calcularelperiodoyregistrelosdatosencadacaso
Datosobtenidos:
Estosdatosfuerontomadosconunalongitudde57,5cm
Masa1:109,93gr
In[60]: t_m1=np.array([15.28,15.41,15.28])#tiemposparalamasa1ensegundos
t_m1_prom=round(average(t_m1),2)
print("tiempopromedioparalamasa1=",t_m1_prom)
tiempopromedioparalamasa1=15.32
In[61]: T_m1_prom=t_m1_prom/10#periodopromedioparalamasa1
print("Periodopromedioparalamasa1=",T_m1_prom)
Periodopromedioparalamasa1=1.532
Masa2:139,3gr
In[62]: t_m2=np.array([15.15,15.41,15.15])#tiemposparalamasa2ensegundos
t_m2_prom=round(average(t_m2),2)
print("tiempopromedioparalamasa2=",t_m2_prom)
tiempopromedioparalamasa2=15.24
In[63]: T_m2_prom=t_m2_prom/10#periodopromedioparalamasa2
print("Periodopromedioparalamasa2=",T_m2_prom)
Periodopromedioparalamasa2=1.524
Masa3:189,87gr
In[64]: t_m3=np.array([15.31,15.47,15.47])#tiemposparalamasa3ensegundos
t_m3_prom=round(average(t_m3),2)
print("tiempopromedioparalamasa3=",t_m3_prom)
tiempopromedioparalamasa3=15.42
In[65]: T_m3_prom=t_m3_prom/10#periodopromedioparalamasa3
print("Periodopromedioparalamasa3=",T_m3_prom)
Periodopromedioparalamasa3=1.542
Experiencia3
Variacindelperiodoalvariarlalongituddelpendulo
Sedebemantenerconstantelamasayamplituddelangulo
Iniciarlasoscilacionesconunalongitudde30cm
Medireltiempoquetardaelpenduloenrealizar10oscilaciones
Calcularelperiodoyrepetiraumentandolalongituden10cm5vecesmas
Datosobtenidos:
Estosdatosfuerontomadosconunamasade90,20grdadaladisposicindelhiloenelsoporteuniversal,se
tomaronlongitudesdeestelomascercanasposiblealaspedidasenlagua
In[66]: L_list=np.array([29.5,40.5,49.5,60.3,70.3,80.2])#longitudesdelpendulo
encm
t_list=np.array([11.28,13.13,14.28,15.56,16.97,18.03])#tiemposparacada
longitud(10oscilaciones)
T_list=t_list/10#Periodosporcada
oscilacin
Anlisisderesultados
Experiencia1:
Laecuacintericadelperiodoenunpendulosimplees:
l
T = 2
g
Dichaecuaconnodependedelaamplituddelngulo,asque,podemoscalcularunperiodoterico,y
compararloconlosresultadosobtenidos:L = 57, 5cm
cm
g = 980
2
s
57, 5
T terico = 2
980
In[76]: importmath
T_teo=round((2*math.pi*math.sqrt(57.5/980.665)),3)
print("Periodotericopara57,5cm=",T_teo)
print("Periodopromedioexperimentalpara5=",T_5prom)
print("Periodopromedioexperimentalpara10=",T_10prom)
Periodotericopara57,5cm=1.521
Periodopromedioexperimentalpara5=1.529
Periodopromedioexperimentalpara10=1.532
Calculamoslosporcentajesdeerror:
valor te rico valor experimental
Error = 100
valor te rico
In[77]: Error_5=round(((abs(T_teoT_5prom)/T_teo)*100),2)
print("%errorpara5=",Error_5,"%")
Error_10=round(((abs(T_teoT_10prom)/T_teo)*100),2)
print("%errorpara10=",Error_10,"%")
%errorpara5=0.53%
%errorpara10=0.72%
Elerrorentrelosvalorestericoyexperimentalesenesminimo
Experiencia2:
Siguiendoconelmismoconceptodelaexperiencia1,calculamoselporcentajedeerrorrespectoalos
valoresexperimentalesregistradosenlaexperiencia2,dadoquelalongituddelacuerdanocambi,el
periodotericoserigualenqueenlaexperiencia1
In[78]: Error_m1=round(((abs(T_teoT_m1_prom)/T_teo)*100),2)
print("%errorparalamasa1=",Error_m1,"%")
Error_m2=round(((abs(T_teoT_m2_prom)/T_teo)*100),2)
print("%errorparalamasa2=",Error_m2,"%")
Error_m3=round(((abs(T_teoT_m3_prom)/T_teo)*100),2)
print("%errorparalamasa3=",Error_m3,"%")
%errorparalamasa1=0.72%
%errorparalamasa2=0.2%
%errorparalamasa3=1.38%
elerroresmnimo
Experiencia3:
Laecuacintericadelperiodosiesdependdientedelalongituddelacuerda,porloqueesnecesario
realizarunagrficaparaobservarelcomportamientodelosdatosobtenidos
In[79]: fig=plt.figure(figsize=(16,9))
plotCAM=plt.plot(L_list,T_list,'*r',markersize=20,label='Periodovs.
Longitud')
plt.legend(loc=0,fontsize=30)
plt.xlabel('Longitud$L\,[cm]$',fontsize=35)
plt.ylabel('Periodo$T\,[s]$',fontsize=35)
plt.title('Experiencia3',fontsize=40)
plt.xticks(fontsize=25)
plt.yticks(fontsize=25)
plt.grid(True)
plt.tight_layout()
plt.show()
Losdatosanterioresdebenseguirunatendenciasemiparablicacondirectrizvertical,descritaporla
ecuacontericadelperiodo:
L
T = 2
g
Envezdecalcularunporcentajedeerrorparacadavalordelperiodoobtenido,sevaarealizarunaregresin
linealconlosdatosexperimentales,dedondesedespejarelvalordelaaceleracindebidaalagravead,y
compararlaconelvalortericoreportadoenlaliteratura.Peroprimeroesnecesariorealizarelsiguiente
cambiodevariable(sugeridoenlaguadelaboratorio):
sea.
2
O = T
Elelevaralcuadradolosvaloresdelavariabledependienteimplicarealizarlamismaoperacinaambos
ladosdelaecuacin,entonces,nuestraecuacindelperiodoquedadelasiguenteforma:
2
4
O = L
g
Estaecuacinsitienelaformadeunalinearecta,conpendientemigualam =
4
In[85]: O_list=T_list**2#aplicamoselcambiodevariableadadaelementodelalista
deperiodos
In[86]: m,b,r_value,_,_=linregress(L_list,O_list)
print("Pendiente=",m)
print("Intercepto=",b)
print("Coeficientecorrelacin=",r_value)
Pendiente=0.038857390846
Intercepto=0.12544913393
Coeficientecorrelacin=0.999342581095
Graficamoslosdatosylaregresinlineal
In[87]: fig=plt.figure(figsize=(16,9))
plotCAM=plt.plot(L_list,O_list,'Pb',markersize=20,label='$T^{2}\,v
s.\,L$')
plotCAM=plt.plot(L_list,m*L_list+b,'g',linewidth=5,label='Regre
sinlineal')
plt.legend(loc=0,fontsize=30)
plt.xlabel('Longitud$L\,[cm]$',fontsize=35)
plt.ylabel('$Periodo^{2}T^{2}\,[s^{2}]$',fontsize=35)
plt.title('Regresinlinealdatosexperiencia3',fontsize=40)
plt.xticks(fontsize=25)
plt.yticks(fontsize=25)
plt.grid(True)
plt.tight_layout()
plt.show()
Elvalordelapendientedelaregresinlinealcorrespondea 4g .despejamosg:
2
4
m =
g
2
4
g =
m
In[83]: g_exp=((math.pi*2)**2)/m
print("aceleracingravitacionalexperimental=",g_exp,"cm/s^2")
aceleracingravitacionalexperimental=1015.98220428cm/s^2
Comparamoselvalorexperimentalconeltericoreportadoenlaliteratura:
valor terico valor experimental
Error = 100
valor te rico
(Ref.Cengel,Y.A.,&Boles,M.(2011).Termodinmica.McGrawHill.)
cm
V alor T e rico = 980, 665
2
s
In[84]: Error_g=round((((abs(980.655g_exp))/980.655)*100),2)
print("%deerrorenelvalordeg=",Error_g,"%")
%deerrorenelvalordeg=3.6%
Conclusiones
Delasexperiencias1y2,secompruebaqueelperiodoenunpendulosimplenoesdependienteni
delaamplitudangularnidelamasaquecuelgadeeste,puesloserroresobtenidossonmnimos.
Delaexperiencia3,setienequelaaceleracindelagravedadobtenidadelaregresinlineal,a
simplevista,variarespectoalatericareportada,sinembargoelerrorespequeo,aunque,elvalor
esperadodeberasermenoralterico,pueslosdatosfueronobtenidosenunlugarqueesta2200
metrossobreelniveldelmarelhechodequelaalturaaumente,hacequelaaceleracindisminuya,
puessealejamsdelcentrodelatierra.
Delaexperiencia3esevidentelautilidaddeunpendulosimplecomounodevariosmtodospara
determinarelvalordelaaceleracingravitacional(ignorandoelporcentajedeerror),solopor
mencionarotrosmtodos,ellanzaruncuerpoencadalibreencondicionescontroladastambin
permiteencontrarelvalordeg.
Loserroresobtenidossonbastantepequeos,loquepermiteafirmarquelaprcticafuerealizada
conunaexactitudaceptable,peroresultarelevantedecirqueloserroresobtenidosestndadospor
elhechodequecadaintegrantedellaboratoriomanipulcadaunodelosmaterialesyregistrlos
datosobtenidosparalaelaboracindeesteinforme,loculllevaadecir,quecadaintegrantetrabaj
conunaprecisindiferente.
In[]: