이산 퓨리에 변환을 사용하여 함수의 근사값을 얻으려고합니다.이 함수의 2M + 1 값이 주어졌습니다.이산 푸리에 변환을 사용한 삼각 보간
내가 계수와 근사에 대한 몇 가지 표현을 본 적이 있지만 내가 원래하려고했던 사람이 있었다 (12)와 I 링크에 대해 사과 * http://www.chebfun.org/docs/guide/guide11.html
에로 (13),하지만 분명히 StackOverflow는 라텍스를 지원하지 않습니다.
나는 계수를 주어진 근사값을 계산하는 함수와 계수를 계산하는 함수를 가지고 있지만 이전 함수도 반환합니다. 일부 값으로 테스트했지만 결과가 전혀 맞지 않았습니다. 필자는 둘 다 numpy.fft.fft와 비교했습니다. 계수가 일치하지 않고 첫 번째 함수로 fft를 전달해도 좋은 근사값이 나오지 않으므로 계수 만 문제가되지는 않습니다. 내가 당신의 코드를 이해 확실하지 않다
def model(cks, x):
n = len(cks)
assert(n%2 == 1)
M = (n-1)//2
def soma(s):
soma = 0
for i in range(n):
m = -M + i
soma += cks[i]*cmath.exp(1j*m*s)
return soma
soma = np.vectorize(soma)
return soma(x)
def fourier(y):
n = len(y)
assert(n%2 == 1)
M = (n-1)//2
def soma(k):
soma = 0
for i in range(n):
t = 2*math.pi*i/n
soma += y[i]*cmath.exp(-1j*k*t)
return (1/n)*soma
cks = np.zeros(n, dtype='complex')
for i in range(n):
j = -M + i
cks[i] = soma(j)
return cks, (lambda x: model(cks,x))