怎样用Python计算有间断点的三重积分?

我们需要计算

对于

我们可将其转换为

对这个式子,在r=q时为间断点,不能计算。
但是对于代码

from scipy.integrate import tplquad

def integrate_of_the_function(vector_lambda, q_square):
    '''
    g(q) = \int{\left(\frac{1}{\lvert \vec{n}\rvert^2 - q^2} \right)}\mathrm{d}^{3}\vec{n}

    :return: value
    '''
    value_and_abserr = tplquad(g,
                               -vector_lambda[0], vector_lambda[0],
                               lambda z: -vector_lambda[2], lambda z: vector_lambda[2],
                               lambda x, z: -vector_lambda[1], lambda x, z: vector_lambda[1])
    return value_and_abserr[0]

函数integrate_of_the_function(vector_lambda, q_square),不能越过间断点。
我只能求在[-(q - dx), (q - dx)]上的积分,对于在圆外的就不会求了。圆内的代码如下:

def test_integrate_of_the_function(vector_lambda, q_square):
    '''
    g(q) = \int{\left(\frac{1}{\lvert \vec{n}\rvert^2 - q^2} \right)}\mathrm{d}^{3}\vec{n}

    :return: value
    '''
    dx = q_square / (10 * 10)
    inner_value_and_abserr = tplquad(g,
                               -(q_square - dx), q_square - dx,
                               lambda x: -(q_square ** 2 - x ** 2) ** 0.5,
                               lambda x: (q_square ** 2 - x ** 2) ** 0.5,
                               lambda x, y: -(q_square ** 2 - x ** 2 - y ** 2) ** 0.5,
                               lambda x, y: (q_square ** 2 - x ** 2 - y ** 2) ** 0.5)
        value_and_abserr = inner_value_and_abserr + outter_value_and_abserr
    return value_and_abserr[0]

https://blog.csdn.net/qq_44675837/article/details/102942165