Для конкретного аналитического решения моего уравнения в частных производных оно может быть выражено в виде ряда Фурье, для которого я кодировал:
def wire_anal(x, y, L, N):
series = 0
for n in range(1, N):
series += (4000/((2*n)-1))*np.sin(((2*n)-1)*np.pi*x/L)*((np.sinh(((2*n)-1)*np.pi*y/L))/(np.sinh(np.pi*((2*n)-1))))
return series
когда я запускаю его для определенного значения, я хочу сказать:
print(wire_anal(0.25, 0, 0.5, 150))
Я получаю ошибку
RuntimeWarning: overflow encountered in sinh
Для более высоких терминов сказать:
print(wire_anal(0.25, 0.5, 0.5, 1500))
Вместо этого я получаю NaN
значение. Есть ли способ обойти эту проблему?