class_docstr: Frank copula.
  
  Dependence is symmetric.
  
  .. math::
  
      C_\theta(\mathbf{u}) = -\frac{1}{\theta} \log \left[ 1-
      \frac{ \prod_j (1-\exp(- \theta u_j)) }{ (1 - \exp(-\theta)-1)^{d -
      1} } \right]
  
  with :math:`\theta\in \mathbb{R}\backslash\{0\}, \mathbf{u} \in [0, 1]^d`.
class_docstr_tok: ["Frank","copula",".","Dependence","is","symmetric",".","..","math",":",":","C_\\theta","(","\\mathbf","{","u","}",")","=","-\\frac","{","1","}","{","\\theta","}","\\log","\\left","[","1-","\\frac","{","\\prod_j","(","1-\\exp","(","-","\\theta","u_j",")",")","}","{","(","1","-","\\exp","(","-\\theta",")","-1",")","^","{","d","-","1","}","}","\\right","]","with",":","math",":","`","\\theta\\in","\\mathbb","{","R","}","\\backslash\\","{","0\\","}",",","\\mathbf","{","u","}","\\in","[","0",",","1","]","^d","`","."]
code: def __init__(self, theta=None, k_dim=2):
      if theta is not None:
          args = (theta,)
      else:
          args = ()
      super().__init__(transforms.TransfFrank(), args=args, k_dim=k_dim)
  
      if theta is not None:
          if theta == 0:
              raise ValueError("Theta must be !=0")
      self.theta = theta
  
imports: import sys
  import numpy
  from scipy import stats, integrate, optimize
  from .None import transforms
  from .copulas import Copula
  from statsmodels.tools.rng_qrng import check_random_state
label_desc: Use image node_id 1 to create a new FrankCopula object from inherited base classes: ArchimedeanCopula with example: obj = FrankCopula(theta, k_dim)