Oszilazioak |
Osziladoreak (II) |
Higiduraren ekuazioa | |
Orri honetako adibidean, energia potentzialaren Ep(x) adierazpena serie gisa gara daiteke oreka egonkorreko posizioaren inguruan, baina termino koadratikoa nulua da eta garapena hirugarren ordenako terminoan hasten da.
Higiduraren ekuazioaMalgukietako bakoitzak blokeari egiten dion F indarra honela adieraz daiteke:
Eta indar erresultantea hau da:
Hortaz, higiduraren ekuazioa:
Ekuazio hau ebazteko prozedura numerikoak beharrezkoak dira, baina horretarako, hasierako baldintzak finkatu behar dira: t=0, x=A, eta v=dx/dt=0. Hemen A oszilazioaren anplitudea izango da.
Oszilazioen periodoaDemagun partikularen energia potentziala ezaguna dela: Ep(x), eta energia totala ere bai: E. Energiaren kontserbazio-printzipioaren arabera:
Periodoa da, lau bider blokeak behar duen denbora jatorritik desplazamendu maximoko posizioraino joateko, alegia, A anplituderaino. Orduan, oszilazioen P periodoa kalkulatzeko, honako integrala ebatzi behar da:
Izan ere, desplazamendu maximoko posizioan, blokearen abiadura nulua da: v=dx/dt=0. Eta A anplitudea kalkulatzeko, ekuazio transzendente bat ebatzi behar da: Ep(A)=E. Partikularen energia potentziala, bi malguki elastikoen eraginpean, honela adieraz daiteke:
Eta funtzio matematiko hori serie gisa gara daiteke:
Lehen bi terminoak nuluak dira oreka-posizioan eta, oszilazio txikiak badira, x<<l0 eta u<<1, hirugarren terminoan motz daiteke:
Baina u2 x4-ren proportzionala da. Azkenik, periodoaren formula honela berridatz daiteke:
Egin dezagun aldagai aldaketa:
Eta integrala honela berridazten da:
Integral horren emaitza Euler-en Г funtzioaren menpe adierazten da (ikus ezazu erreferentzietan aipatutako artikulua)
SaiakuntzaAukeran idatz daiteke:
Berria botoia sakatu.
Hasi botoia sakatu. Anplitudea 0 eta 1.0 tartean baldin badago, programak partikularen higidura-ekuazioa prozedura numerikoekin ebazten du. Partikula oszilatzen hasten da ezkerretik eskumara, bi malgukien eraginez, eta bektore urdin batek adierazten du uneoro jasaten duen indarra. Leihatilaren eskumako aldean grafiko batek energia potentziala erakusten du: Ep(x). Zuzen beltz horizontalak energia totala adierazten du, eta zenbakiz ere ematen da. Zuzenki bertikalak bi zati ditu: zati gorriak energia potentziala adierazten du eta zati urdinak energia zinetikoa. 1 adibidea: Demagun k=60, m=1 eta anplitudea A=0.3 Bi malgukien luzera naturala hau da: l0=1.0 Osziladorearen energia totala: Oszilazio txikien hurbilketan ere, energia totalak horixe ematen du: Oszilazio txikien hurbilketan, hona hemen P periodoa.
Aldiz, programa interaktiboak, ekuazio diferentziala prozedura numerikoez ebatzita, honako balioa ematen du: P= 3.22. (» %1-eko aldea) 2 adibidea: Demagun k=60, m=1 eta anplitudea A=0.7 (anplitude handi samarra). Oszilazio txikien hurbilketan, energia totalak hauxe ematen du: Oszilazio txikien hurbilketan, hona hemen P periodoa: Aldiz, programa interaktiboak, ekuazio diferentziala prozedura numerikoez ebatzita, honako balioa ematen du: P=1.55.(» %12-ko aldea)
|
Berria botoia sakatu ondoren, eraman ezazu, saguaz, bloke gorria hasierako posiziora.
Soluzio analitikoaHigiduraren ekuazioa hau da:
Baina, oszilazio txikiak badira, x<<l0 , orduan ekuazio diferentziala berridatz daiteke:
Hasierako baldintzak honakoak dira: t=0, partikularen posizioa x=A, eta abiadura nulua, v=dx/dt=0
Ekuazio diferentzial hori integra daiteke, eta abiadura lortzen da:
Partikula x=+A posiziotik abiatzen denez eta, hasieran, jatorrirantz desplazatzen denez, abiadura negatiboa dauka periodoaren lehen laurdenean:
Partikularen x posizioa lortzeko t denboraren menpe, berriro integratu beharra dago:
Aldagai aldaketa egin dezagun:
Eta integral hori berridatzi egiten da:
Lehen espezieko integral eliptikoa honela definitzen da:
Eta aldagai aldaketa eginez: z=sinφ,
Dei diezaiogun "am u" alderantzizko funtzioari φ(u) z=sinφ= sin am u =sn u horrela definitzen da "sn" funtzio eliptikoa. Eta era berean idatz daiteke: cos am u= cn u Funtzio eliptiko bi horiek erlazionatuta daude: sn2 u+cn2 u=1 Eta gure kasu honetan:
Beraz, z aldagai lagungarria ezagututa (z=sn u), x atera daiteke:
Higiduraren periodoaPeriodo laurden bat osatzeko behar duen denbora hau da:
Eta aldagai aldaketa eginez: x=Acosφ
Azken terminoa lehen espezieko integral eliptiko osoa
da, eta
Irudiak erakusten du nola P periodoa A anplitudearen menpe aldatzen den, nahiz eta k/m erlazio bera izan:
SaiakuntzaAukeran idatz daiteke: Aukeran idatz daiteke:
Berria botoia sakatu.
Hasi botoia sakatu. Programak partikularen higidura-ekuazioa ebazten du prozedura numerikoekin, cn funtzio eliptikoa erabiliz (ikus bedi programazio kodea). Partikula oszilatzen ikusten da ezkerretik eskumara, bi malgukien eraginez, eta bektore urdinak aldiuneko indarra adierazten du. Leihatilaren eskumako aldean grafiko batek partikularen posizioa erakusten du: x(t). |
Berria botoia sakatu ondoren, eraman ezazu, saguaz, bloke gorria hasierako posiziora.
Mohazzabi P. Theory and examples of intrinsically nonlinear oscillators. Am. J. Phys. 72 (4) April 2004, pp. 492-498
Detcheva V., Spassov V., A simple nonlinear oscillator: analytical amd numerical solution. Phys. Educ. 28 (1993) pp. 39-42
Puig Adam P., Curso teórico práctico de Cálculo Integral aplicado a la Física y Técnica. Editorial Biblioteca Matemática 1972, págs. 71-76
public class Eliptica { final double CA=0.0003; // The accuracy is the square of CA. public double sn; public double cn; public double dn; public Eliptica() { sn=dn=cn=0.0; } void sncndn(double uu, double emmc){ //Returns the Jacobian elliptic functions sn(u; kc), cn(u; kc), and dn(u; kc). Here uu = u, while //emmc = k2 c . double a,b,c=0.0,d=0.0,emc,u; double[] em=new double[14]; double[] en=new double[14]; int i,ii,l=0; boolean bo; emc=emmc; u=uu; if (emc!=0.0) { bo=(emc < 0.0); if (bo) { d=1.0-emc; emc /= -1.0/d; u *= (d=Math.sqrt(d)); } a=1.0; dn=1.0; for (i=1;i<=13;i++) { l=i; em[i]=a; en[i]=(emc=Math.sqrt(emc)); c=0.5*(a+emc); if (Math.abs(a-emc) <= CA*a) break; emc *= a; a=c; } u *= c; sn=Math.sin(u); cn=Math.cos(u); if (sn!=0.0) { a=cn/sn; c *= a; for (ii=l;ii>=1;ii--) { b=em[ii]; a *= c; c *= dn; dn=(en[ii]+a)/(b+a); a=c/b; } a=1.0/Math.sqrt(c*c+1.0); sn=(sn >= 0.0 ? a : -a); cn=c*sn; } if (bo) { a=dn; dn=cn; cn=a; sn /= d; } } else { cn=1.0/cosh(u); dn=cn; sn=tanh(u); } } double cosh(double x){ return((Math.exp(x)+Math.exp(-x))/2); } double tanh(double x){ return((Math.exp(x)-Math.exp(-x))/(Math.exp(x)+Math.exp(-x))); } } //objeto Eliptica obj=new Eliptica(); //posición del oscilador obj.sncndn((x0*Math.sqrt(cte)*t/lonMuelle),0.5); x=x0*obj.cn; t+=dt; |
Press W. H., Teukolsky S. A., Vetterling W. T., Flannery B. P. Numerical Recipes in C, Second edition, Special functions. Elliptic integrals and Jacobian Elliptic functions, Chapter 6º. pp. 269-270. Cambridge University Press.
Honako orri honen egileak kode hau egokitu du C lengoaiatik Java lengoaiara.