Проблема итерации Python - PullRequest
0 голосов
/ 18 марта 2019
ai = 1.0

# potentiall edit the 0.7 as I believe this is speciic to the De Sitter Universe
phi0 = (mp * (1/(H_0_true**(2) * 0.7))**(1/alpha))

for i in del_t_range:
    #friedmann equation which is updated every iteration with new values of scale factor
    H = (H_0_true * m.sqrt(((w_m/(ai**3)) + (w_r/(ai**4)) + (w_v) + (w_c/(ai**2)))))

    #H values needed for analysis purposes
    H_vals.append(H)
    time.append(i)

    #finite difference differentiation method for universe expansion
    del_a = ai * H * del_t
    a_val = ai + del_a
    a.append(a_val)
    ai = a_val

    ############################# ISSUE ###########################

    #field potential calculation 
    V = (phi0 / mp)**(-alpha)

    #appended to use for graphing
    V_vals.append(V)

    #print(V)

    #differentiation of the potential wrt the field
    V_dash = alpha * (phi0 / mp)**(-alpha - 1.0)

    #print(V_dash)
    #finite differnce of time derivative of phi
    y_val = yi - (3 * H * yi - V_dash) * del_t

    #print(y_val)
    # needed for graphing
    y_list.append(y_val)

    # used for updating values of phi
    phi_val = phi0 + (yi * del_t)
    phi_list.append(phi_val)

    # Energy Density calculations
    rho_phi = 0.5 * (y_val / mp)**(2) + (V / mp**(4)) * (1 / tp)**(2)

    #calculation required to sort out units
    rho_phi_true = rho_phi / mp**(2)

    #Used for graphing
    rho_phi_vals.append(rho_phi_true)

    # updates values for next iteration of loop
    phi0 = phi_val
    yi = y_val

Следующий код зациклен, поэтому я могу получить обновленные значения для переменных phi0, rho_phi, yi, V и V_dash. Каждое из обновленных значений затем добавляется в списки Python и наносится на график. Тем не менее, у меня, похоже, возникла проблема с обновлением моего значения для phi0, хотя я и написал, что новое значение phi0 равно phi_val в конце цикла. Значения для phi0 на каждой итерации остаются неизменными. Например,

[1.0011701031373587e+30, 1.0011701031373587e+30, 1.0011701031373587e+30, 1.0011701031373587e+30, ...]

Приношу свои извинения, если я был расплывчатым или запутанным, пожалуйста, дайте мне знать, если есть какие-либо проблемы. Большое спасибо! : -)

...