«RuntimeWarning: переполнение, обнаруженное в double_scalars в numpy» - PullRequest
0 голосов
/ 09 октября 2019

У меня проблема с частью моего кода. В частности, когда я запускаю приведенный ниже код, я получаю предупреждения «RuntimeWarning: переполнение, обнаруженное в double_scalars»
«RuntimeWarning: недопустимое значение, обнаруженное в multiply».
В результате получается массив A, который заполнен значениями NaN.

        import numpy as np
        N = 100 #number of waveguides
        S = 1000
        k_a = 1
        k_b = 2
        gamma = 1
        z_max =10 
        h= z_max/S #Iteration step
        A = np.zeros((1,N),dtype=complex)
        A[0][50] = 2.5 
        g = np.zeros((1,N),dtype = complex)
        field = np.zeros((1000,100),dtype = complex)
        for i in range(0,S):
           ak = A 
           g[0][0] = 1j*k_a*A[0][1]  + 1j*k_b*A[0][0]+1j*A[0][0]*gamma*(np.abs(A[0][0]))**2
           g[0][-1] = 1j*k_a*A[0][-2] + 1j*k_b*A[0][-1]+1j*A[0][-1]*gamma*(np.abs(A[0][-1]))**2

           for tr in range(1,N-2):
              g[0][tr] = 1j*k_a*(A[0][tr+1]+A[0][tr-1])+1j*k_b*A[0][tr]+1j*gamma*A[0][tr]*
              (np.abs(A[0][tr]))**2
              k1 = h*g
              A = ak + (0.5)*k1

Как я могу решить эту проблему? Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...