Home » Ciencia

Category Archives: Ciencia

Nuevo artículo, fecha: San Isidro 2017

1-s2.0-S0096300316307366-gr9

Nuevo artículo aceptado: Extending linear finite elements to quadratic precision on arbitrary meshes, Daniel Duque, Pep Español, Jaime Arturo de la Torre (UNED, los dos últimos). Descargable gratuitamente hasta fin de febrero.

Fecha de "publicación" (en papel, supongo): 15 de mayo de 2017. ¡San Isidro!

 

Share

Ahora aprendiendo … DFT y FFT

Las transformadas de Fourier discretas, versión general (DFT) y rápida (FFT).

Para ver si puedo resolver problemas en el espacio de Fourier.

¡Los prefactores lían mucho!

De momento, en python llevo hecho esto: una transformación 1D directa e inversa:

 

import matplotlib.pyplot as plt
import numpy as np
from math import pi

T=10
N=256
t = np.linspace(0,T,N)
ft= 3 * np.sin(2*pi*3.6*t + 2)+1
fo = np.fft.fft( ft ) / N
fo = np.fft.fftshift(fo)

fo[0]

freq = np.fft.fftfreq( N, float(T)/N )
freq = np.fft.fftshift(freq)

#plt.plot(freq, sp.real, freq, sp.imag)
plt.plot(freq, abs( fo ) )

plt.show()

ft2 = N * np.fft.ifft( fo )
 

 

Cálculo de la segunda derivada a través de la transformada, 1D:

import matplotlib.pyplot as plt
import numpy as np
from math import pi

T=10
N=256
om=0.6

t = np.linspace( 0 , T , N , endpoint=False )
ft= 3 * np.sin( 2*pi* om *t + 2)+1
fo0 = np.fft.fft( ft ) / N
fo  = np.fft.fftshift( fo0 )

fo0[0]

freq0 = np.fft.fftfreq( N, float(T)/N )
q     =  2*pi* freq0

freq  = np.fft.fftshift( freq0 )


ddfo = – q**2 * fo0

#plt.plot(freq, sp.real, freq, sp.imag)
plt.plot(freq, abs( fo ) )

plt.show()

ft2 = N * np.fft.ifft( fo0 )

ddft = N * np.fft.ifft( ddfo )
 

Transformada directa e inversa en 2D:

import matplotlib.pyplot as plt
import numpy as np
from math import pi

L=10
N=64

[x, y] = np.meshgrid( np.linspace(0,L,N),
                      np.linspace(0,L,N))

kx=0.2 #2.2
ky=0.7 #1.7

f = np.sin( 2*pi* ( kx * x + ky * y ) ) + np.random.uniform(0, 1, x.shape)

# plt.pcolor(x,y,f)


fou0 = np.fft.fft2( f ) / (N*N)
fou  = np.fft.fftshift( fou0 )

freq = np.fft.fftfreq( N, float(L)/N )
freq = np.fft.fftshift(freq)

[fx , fy] = np.meshgrid( freq, freq )

plt.pcolor(fx,fy,abs(fou) )

#plt.plot(freq, sp.real, freq, sp.imag)
#plt.plot(freq, abs( fo ) )

plt.show()

f2 = N * N * np.fft.ifft2( fou0 )

plt.pcolor(x,y,f)
plt.pcolor(x+L,y,f2.real)
 

 

 

Share

Numerología

 

¡Primera entrega sobre numerología!

Por mucho que me guste xkcd, esta vez creo que el chiste no tiene sentido.

El problema, en mi opinión, es que 2:53 no tiene mucho que ver con el número 253.

Factoring the time

¿Por qué no?

Cada uno es libre de divertirse como quiera, pero una persona tan formada como Randall Munroe debería darse cuenta de lo siguiente:

  • Hay 60 minutos en una hora
  • Las horas comienzan desde un origen arbitrario
  • No tiene sentido "factorizar" una hora (al menos, cuesta encontrarlo)

Hablaré de todo esto en futuras entregas, pero de momento adelanto mi tesis: nada de un número que tenga como origen una elección arbitraria convencional puede considerarse una propiedad interesante de un número.

Adios a las "horas curiosas" como 2:22.

Y, por supuesto, a las fechas como el 22 del 2. Por no hablar de las 2:22 del 22 del 2 del 2222. No significa nada.

Ojo, una de las convenciones arbitrarias es el propio sistema de numeración en base 10.

 

Share