Я пытаюсь решить эти два уравнения, которые содержат результат интеграла в качестве одной из переменных, поэтому я написал код, чтобы попытаться получить ответ для каждого уравнения
Вот мой код:
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
Я не могу понять, что я делаю неправильно?