I'm trying to code a fourier transform integration in Python for earthquake calculations. In my code I've already obtained a list of acceleration values (UD_Acc) and the next step was to integrate those values to find an acceleration spectrum but you can ignore what I just wrote, is just so that you understand that I'll put a piece of the code here, but there's a previous part. In this section the code looks like this:
for k in range(0, nf):
w = 2.0 * np.pi * k * df
ctemp = [0]
for i in range(0, n):
tt = (i - 1) * dt1
ctemp.append(ctemp[i - 1] + UD_Acc[i] * exp(w * tt) * dt1)
FT_UD = ctemp
print(FT_UD)
I'm trying to test pieces of the code to see if it works and in this step the result was this one:
3.100296447573319e+286, 1.5579007542075108e+287, 7.02508382861519e+287, 3.534820181719304e+288,
1.9048570553209693e+289, 9.698002767425852e+289, 4.622661096039162e+290, 2.1478266516508165e+291,
1.0966932872477815e+292, 6.0483530668672015e+292, 3.1353936060179655e+293, 1.478980963008126e+294,
6.992411539372276e+294, 3.6827556115504487e+295, 1.8834318622915946e+296, 8.75696893029608e+296,
4.370164744682199e+297, 2.2443725876035813e+298, 1.1097046168139748e+299, 5.967481992892405e+299,
3.198441446792076e+300, 1.5169019424112824e+301, 6.790646982399279e+301, 3.3237208773654086e+302,
1.8459510382883334e+303, 9.72602102297841e+303, 4.457353975198039e+304, 2.1248722813745752e+305,
1.1280036233573973e+306, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf,
inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf,
inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf,
inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf,
inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, nan, nan,
nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,
nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,
nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,
nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,
(actually it was way bigger, but I'm putting just a fragment here) I don't know what nam and inf means. I interrupted the process because it was taking a while. Edit: I just saw that nan stands for "not a number" but why I get that here?
Why use a list structure when you need to calculate a number? Try this instead:
for k in range(0, nf):
w = 2.0 * np.pi * k * df
ctemp = 0
for i in range(0, n):
tt = (i - 1) * dt1
ctemp += UD_Acc[i] * exp(w * tt) * dt1)
FT_UD = ctemp
print(FT_UD)