Пример #1
0
 def price_element_real(self,nu,tau,q_value):
     p1 = m.exp(-(nu**2-q_value**2)*tau/2)
     p2 = (q_value*m.gamma((nu+q_value)/2))/(4*self.eta_q(nu=nu,eigenval=q_value,b=self.b)*m.gamma(1+q_value))
     const = (2*self.k)**((nu+3)/2)*m.exp(-1/(4*self.k))
     w1 = m.whitw(-(nu+3)/2,q_value/2,1/(2*self.k))
     m1 = m.whitm((1-nu)/2,q_value/2,1/(2*self.b))
     return p1 * p2 * const * w1 * m1
Пример #2
0
 def price_element_imag(self,nu,tau,p_value):
     p1 = m.exp(-(nu**2+p_value**2)*tau/2)
     p2 = (p_value*m.gamma(complex(nu/2,p_value/2)))/(4*self.xi_p(nu=nu,eigenval=p_value,b=self.b)*m.gamma(complex(1,p_value)))
     const = (2*self.k)**((nu+3)/2)*m.exp(-1/(4*self.k))
     w1 = m.whitw(-(nu+3)/2,complex(0,p_value/2),1/(2*self.k))
     m1 = m.whitm((1-nu)/2,complex(0,p_value/2),1/(2*self.b))
     return p1 * p2 * const * w1 * m1
Пример #3
0
def psi(index, variable, b, a, beta):

    if b == 0:

        if beta < 0:
            return math.pow(variable, 0.5) * besseli(
                v(beta), sqrt(2 * index * q(a, beta, variable)))
        else:
            return math.pow(variable, 0.5) * besselk(
                v(beta), sqrt(2 * index * q(a, beta, variable)))
    else:

        if beta < 0:
            return math.pow(variable, beta + 0.5) * math.exp(
                0.5 * eps(b, beta) * h(b, a, beta, variable)) * whitm(
                    k(b, beta, index), m(beta), h(b, a, beta, variable))

        else:
            return math.pow(variable, beta + 0.5) * math.exp(
                0.5 * eps(b, beta) * h(b, a, beta, variable)) * whitw(
                    k(b, beta, index), m(beta), h(b, a, beta, variable))