Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Procesamiento
1. Program PROCESS
real tiempo ,amplitud !valores del archivo de datos
real apc,bpc,cpc,anc,bnc,cnc !valores a interpolar
real tapc,tbpc,tcpc,tanc,tbnc,tcnc !valores a interpolar
real a1p,a2p,a3p,xmaxp,ymaxp !Parametros
de la ecuacion cuadratica
real a1n,a2n,a3n,xmaxn,ymaxn !Parametros
de la ecuacion cuadratica
real Periodopos,Periodoneg,dampingpos,dampingneg
real Amplitudmediapos,Amplitudmedianeg
real Amplitudmediapos1,Amplitudmedianeg1,Interceptopos,Interceptoneg !valor
de la amplitud exponencial
real pendientepos,interceptoposl,xcero,xceron,tcero,tceron !Interpolacion
lineal
real ymaxnp
dimension tiempo (100000),amplitud(10000)
!valores del archivo de datos
dimension apc(100000),bpc(100000),cpc(100000),anc(100000),bnc(100000),cnc
(100000) !valores a interpolar
dimension tapc(100000),tbpc(100000),tcpc(100000),tanc(100000),tbnc(100000),tcnc
(100000) !valores a interpolar
dimension a1p(100000),a2p(100000),a3p(100000),xmaxp(100000),ymaxp(100000)
!Parametros de la ecuacion cuadratica
dimension a1n(100000),a2n(100000),a3n(100000),xmaxn(100000),ymaxn(100000)
!Parametros de la ecuacion cuadratica
dimension
Periodopos(100000),Periodoneg(100000),dampingpos(100000),dampingneg(100000)
dimension Amplitudmediapos(100000),Amplitudmedianeg(100000)
dimension
Amplitudmediapos1(100000),Amplitudmedianeg1(100000),Interceptopos(100000),Interc
eptoneg(100000) !valor de la amplitud exponencial
dimension
apl(100000),bpl(100000),tapl(100000),tbpl(100000),pendientepos(100000),intercept
oposl(100000),xcero(100000),xceron(100000),tcero(100000),tceron(100000)
!Interpolacion lineal
dimension ymaxnp(100000)
CHARACTER(30) ARCHDAT
ARCHDAT="ANGULO.TXT"
OPEN(6,FILE=ARCHDAT,STATUS="OLD")
READ(6,*) N ! N es entero
!write(*,*) N
do i=1,n
READ(6,*) tiempo (i),amplitud(i)
!write(*,*) tiempo (i),amplitud(i)
!write(*,10)tiempo(i),amplitud(i)
!10 format(/'El tiempo es:',5x,f15.3,'[Seg]',/,'la amplitud es:',5x,f13.3,'[ª]')
! , o ,/, para saltar, f15.3 numero de caracteres y decimales
end do
k=0
t=0
do m=1,n-1
if (amplitud(m).gt.0.0.and.amplitud(m+1).lt.0.0)then
k=k+1
apl(k)=amplitud(m)
2. bpl(k)=amplitud(m+1)
tapl(k)=tiempo(m)
tbpl(k)=tiempo(m+1)
!INTERPOLACION LINEAL
pendientepos(k)=(bpl(k)-apl(k))/(tbpl(k)-tapl(k))
interceptoposl(k)= apl(k)- pendientepos(k)*tapl(k)
xcero(k)=-interceptoposl(k) / pendientepos(k)
!Write(*,*)xcero(k)
else if(amplitud(m).lt.0.0.and.amplitud(m+1).gt.0.0)then
t=t+1
apl(t)=amplitud(m)
bpl(t)=amplitud(m+1)
tapl(t)=tiempo(m)
tbpl(t)=tiempo(m+1)
!INTERPOLACION LINEAL
pendientepos(t)=(bpl(t)-apl(t))/(tbpl(t)-tapl(t))
interceptoposl(t)= apl(t)- pendientepos(t)*tapl(t)
xceron(t)=-interceptoposl(t) / pendientepos(t)
!Write(*,*)xceron(t)
end if
end do
!Write(*,*)k,t
write(*,*)'la interceccion con la abcisa para los positivos es: '
ll=1
do i=1,k-1
tcero(ll)=xcero(i+1)-xcero(i)
ll=ll+1
Write(*,*)tcero(ll-1)
end do
write(*,*)'la interceccion con la abcisa para para los negativos: '
kk=1
do i=1,t-1
tceron(kk)=xceron(i+1)-xceron(i)
kk=kk+1
Write(*,*)tceron(kk-1)
end do
k=0 !contador de el numero de valores maximos
l=0 !contador de el numero de valores minimos
do i=1,n-2
if (amplitud(i).gt.0.0)then
if
(amplitud(i+1).ge.amplitud(i).and.amplitud(i+1).gt.amplitud(i+2))then
k=k+1
apc(k)=amplitud(i)
bpc(k)=amplitud(i+1)
cpc(k)=amplitud(i+2)
tapc(k)=tiempo(i)
tbpc(k)=tiempo(i+1)
tcpc(k)=tiempo(i+2)
!BUSCAR LOS PARAMETROS DE LA ECUACION CUADRATICA
a3p(k)=(2/(tcpc(k)-tapc(k)))*(((cpc(k)-apc(k))/(tcpc(k)-
tapc(k)))-((bpc(k)-apc(k))/(tbpc(k)-tapc(k))))
a2p(k)= ((bpc(k)-apc(k))/(tbpc(k)-tapc(k)))-a3p(k)*(tbpc(k)
3. +tapc(k))
a1p(k)= apc(k)- ((bpc(k)-apc(k))/(tbpc(k)-tapc(k)))*tapc(k)+
a3p(k)*tapc(k)*tbpc(k)
!ENCONTRAR EL MAXIMO DE LA FUNCION
xmaxp(k)=-a2p(k)/(2*a3p(k))
ymaxp(k)=a1p(k)+a2p(k)*xmaxp(k)+a3p(k)*xmaxp(k)*xmaxp(k)
!write(*,*)xmaxp(k),ymaxp(k),k
end if
else
if(amplitud(i+1).le.amplitud(i).and.amplitud(i+1).lt.amplitud(i+2))then
l=l+1
anc(l)=amplitud(i)
bnc(l)=amplitud(i+1)
cnc(l)=amplitud(i+2)
tanc(l)=tiempo(i)
tbnc(l)=tiempo(i+1)
tcnc(l)=tiempo(i+2)
!BUSCAR LOS PARAMETROS DE LA ECUACION CUADRATICA
a3n(l)=(2/(tcnc(l)-tanc(l)))*(((cnc(l)-anc(l))/(tcnc(l)-
tanc(l)))-((bnc(l)-anc(l))/(tbnc(l)-tanc(l))))
a2n(l)= ((bnc(l)-anc(l))/(tbnc(l)-tanc(l)))-a3n(l)*(tbnc(l)
+tanc(l))
a1n(l)= anc(l)- ((bnc(l)-anc(l))/(tbnc(l)-tanc(l)))*tanc(l)+
a3n(l)*tanc(l)*tbnc(l)
!ENCONTRAR EL MAXIMO DE LA FUNCION
xmaxn(l)=-a2n(l)/(2*a3n(l))
ymaxn(l)=a1n(l)+a2n(l)*xmaxn(l)+a3n(l)*xmaxn(l)*xmaxn(l)
!write(*,*)xmaxn(l),l
end if
end if
end do
write(*,*)'Las maximas amplitudes para los positivos son: '
j=1
do i=1,k-1
Periodopos(j)=xmaxp(i+1)-xmaxp(i)
dampingpos(j)=log(ymaxp(i+1)/ymaxp(i))/Periodopos(j)
!AMPLITUD PROMEDIO
Amplitudmediapos(j)=(ymaxp(i+1)+ymaxp(i))/2
Interceptopos(j)=exp(log(ymaxp(i))-dampingpos(j)*xmaxp(i))
!AMPLITUD CON LA FUNCION EXPONENCIAL
Amplitudmediapos1(j)=exp(log(Interceptopos(j)) +dampingpos(j)*(xmaxp(i)+
(xmaxp(i+1)-xmaxp(i))/2))
!write(*,*)'El T ent.Ampl es: La ampl exp es: La ampl med es: el decremento
es: '
!write(*,*)Periodopos(j),Amplitudmediapos1(j),Amplitudmediapos(j),dampingpos(j)
j=j+1
end do
write(*,*)'Las maximas amplitudes para los negativos: '
j=1
do i=1,l-1
Periodoneg(j)=xmaxn(i+1)-xmaxn(i)
dampingneg(j)=log(ymaxn(i+1)/ymaxn(i))/ Periodoneg(j)
!AMPLITUD PROMEDIO
Amplitudmedianeg(j)=(ymaxn(i+1)+ymaxn(i))/2
4. Interceptoneg(j)=exp(log(-ymaxn(i))-dampingneg(j)*xmaxn(i))
!AMPLITUD CON LA FUNCION EXPONENCIAL
Amplitudmedianeg1(j)=-exp(log(Interceptoneg(j)) +dampingneg(j)*(xmaxn(i)+
(xmaxn(i+1)-xmaxn(i))/2))
!write(*,*)'El T ent.Ampl es: La ampl exp es: La ampl med es: el decremento
es: '
!write(*,*)Periodopos(j),Amplitudmedianeg1(j),Amplitudmedianeg(j),dampingneg(j)
j=j+1
end do
!POSITIVO
promediox=0
promedioy=0
do i=1,k
promediox=promediox+(xmaxp(i)/k)
ymaxp(i)=log(ymaxp(i))
promedioy=promedioy+(ymaxp(i)/k)
end do
do i=1,k
diferenciax=xmaxp(i)-promediox
diferenciaxcuadrado=diferenciax**2
diferenciay=ymaxp(i)-promedioy
!write(*,*)ymaxp(i),diferenciax,diferenciay,diferenciaxcuad
difxdify=diferenciax*diferenciay
end do
pendientependiente=difxdify/diferenciaxcuadrado
pinterceptointercepto=promedioy-pendientependiente*promediox
pinterceptointercepto=exp(pinterceptointercepto)
write(*,*)promedioy,pendientependiente,pinterceptointercepto
!NEGATIVO
promedioxn=0
promedioyn=0
do j=1,l
promedioxn=promedioxn+(xmaxn(j)/k)
!CAMBIANDO A POSITIVO LOS NEGATIVOS
ymaxnp(j)=log(-ymaxn(j))
promedioyn=promedioyn+(ymaxnp(j)/k)
end do
do j=1,l
diferenciaxn=xmaxn(j)-promedioxn
diferenciaxcuadradon=diferenciaxn**2
diferenciayn=ymaxnp(j)-promedioyn
!write(*,*)ymaxp(i),diferenciax,diferenciay,diferenciaxcuad
difxdifyn=diferenciaxn*diferenciayn
end do
pendientependienten=difxdifyn/diferenciaxcuadradon
pinterceptointercepton=promedioyn-pendientependienten*promedioxn
pinterceptointercepton=exp(pinterceptointercepton)
write(*,*)promedioyn,pendientependienten,pinterceptointercepton
do
while(pinterceptointercepto.lt.pinterceptointercepton)!.or.pendientependienten.g
t.pendientependiente)
!POSITIVO
5. promediox=0
promedioy=0
do i=1,k
promediox=promediox+(xmaxp(i)/k)
ymaxp(i)=exp(ymaxp(i))
ymaxp(i)=log(ymaxp(i))
promedioy=promedioy+(ymaxp(i)/k)
ymaxp(i)=ymaxp(i)-0.018
end do
do i=1,k
diferenciax=xmaxp(i)-promediox
diferenciaxcuadrado=diferenciax**2
diferenciay=ymaxp(i)-promedioy
difxdify=diferenciax*diferenciay
end do
pendientependiente=difxdify/diferenciaxcuadrado
pinterceptointercepto=promedioy-pendientependiente*promediox
pinterceptointercepto=exp(pinterceptointercepto)
!NEGATIVO
promedioxn=0
promedioyn=0
do j=1,l
ymaxn(j)=-(ymaxn(j))
ymaxn(j)=log(ymaxn(j))
end do
do j=1,l
promedioxn=promedioxn+(xmaxn(j)/l)
promedioyn=promedioyn+(ymaxn(j)/k)
!CAMBIANDO A POSITIVO LOS NEGATIVOS
ymaxn(j)=ymaxn(j)-0.018
end do
do j=1,l
diferenciaxn=xmaxn(j)-promedioxn
diferenciaxcuadradon=diferenciaxn**2
diferenciayn=ymaxnp(j)-promedioyn
difxdifyn=diferenciaxn*diferenciayn
end do
pendientependienten=difxdifyn/diferenciaxcuadradon
pinterceptointercepton=promedioyn-pendientependienten*promedioxn
pinterceptointercepton=exp(pinterceptointercepton)
write(*,*)1,promedioy,pendientependiente,pinterceptointercepto
write(*,*)2,promedioyn,pendientependienten,pinterceptointercepton
!pause
end do
6. !coeficiente3=0
!coeficiente4=0
!coeficiente5=0
!coeficiente6=0
!coeficiente7=0
!REGRESION DE LOS VALORES DADOS POR EL INCLINOMETRO
!do i=1,k
!coeficiente1=coeficiente1+xmaxp(i)*Amplitudmediapos(i)
!coeficiente2=coeficiente2+tiempo(i)
!coeficiente3=coeficiente3(1)+Amplitudmediapos(i)
!coeficiente4=coeficiente4+tiempo(i)**2
!coeficiente5=(coeficiente5+tiempo(i))**2
!coeficiente6=coeficiente6+Amplitudmediapos(i)**2
!coeficiente7=(coeficiente7+Amplitudmediapos(i))**2
!coeficientecorr=(N*coeficiente1-coeficiente2*coeficiente3)/(((N*coeficiente4-
coeficiente5)**0.5)*((N*coeficiente6-coeficiente7)**0.5)
!coeficientecorr=coeficientecorr**2
!end do
end
7. !coeficiente3=0
!coeficiente4=0
!coeficiente5=0
!coeficiente6=0
!coeficiente7=0
!REGRESION DE LOS VALORES DADOS POR EL INCLINOMETRO
!do i=1,k
!coeficiente1=coeficiente1+xmaxp(i)*Amplitudmediapos(i)
!coeficiente2=coeficiente2+tiempo(i)
!coeficiente3=coeficiente3(1)+Amplitudmediapos(i)
!coeficiente4=coeficiente4+tiempo(i)**2
!coeficiente5=(coeficiente5+tiempo(i))**2
!coeficiente6=coeficiente6+Amplitudmediapos(i)**2
!coeficiente7=(coeficiente7+Amplitudmediapos(i))**2
!coeficientecorr=(N*coeficiente1-coeficiente2*coeficiente3)/(((N*coeficiente4-
coeficiente5)**0.5)*((N*coeficiente6-coeficiente7)**0.5)
!coeficientecorr=coeficientecorr**2
!end do
end