Почему я не получаю ответ в поплавке? - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь решить эти два уравнения, которые содержат результат интеграла в качестве одной из переменных, поэтому я написал код, чтобы попытаться получить ответ для каждого уравнения

Вот мой код:

from sympy import *
from sympy import sqrt
from scipy.integrate import quad
from scipy.constants import c
from scipy.constants import pi

from constants import N_O
from constants import N_S
from constants import I_MAX
from constants import R_SP
from constants import X

# x = Symbol('x')

R_l_u = N_O * sqrt(0.5 * (1 + X)) - N_S * sqrt(1 - 0.5 * (N_O / N_S) ** 2 * (1 - X))
R_l_d = N_O * sqrt(0.5 * (1 + X)) + N_S * sqrt(1 - 0.5 * (N_O / N_S) ** 2 * (1 - X))
R_r_u = N_S * sqrt(0.5 * (1 + X)) - N_O * sqrt(1 - 0.5 * (N_O / N_S) ** 2 * (1 - X))
R_r_d = N_S * sqrt(0.5 * (1 + X)) + N_O * sqrt(1 - 0.5 * (N_O / N_S) ** 2 * (1 - X))
R = (R_l_u / R_l_d) ** 2 + (R_r_u / R_r_d) ** 2
T = 1 - R


def F(x):
    f_1 = (1 - (N_O / N_S) ** 2) * x * (3 - x)
    f_2 = (N_O / N_S) * (1 - x) * (2 * (1 + x) - (N_O / N_S) ** 2 * (1 - x ** 2)) ** 0.5 + R() * x
    f_3 = 1 + R() ** 2 + 4 * R() * (1 - 0.5 * (N_O / N_S) ** 2 * (3 - x))
    return (f_1 + f_2) / f_3


def Fz_int(x):
    return 1 + R * x - T ** 2 * F(x)


def Fr_int(x):
    return R * sqrt(1 - x ** 2) - T ** 2 * F(x)


def F_z(x):
    return (N_O / c) * I_MAX * pi * R_SP ** 2 * quad(Fz_int(x), -1, 1)


def F_r(x):
    return (2 * N_O / c) * I_MAX * R_SP ** 2 * quad(Fr_int(x), -1, 1)


print(F_z)
print(F_r)

Но когда я запускаю программу, я получаю ответ:

<function F_z at 0x000001873E8AE3A8>
<function F_r at 0x000001873E8AEA68>

Process finished with exit code 0

Я не могу понять, что я делаю неправильно?

...