class_docstr: Trigonometric 2 objective function.
  
  This class defines the Trigonometric 2 [1]_ global optimization problem. This
  is a multimodal minimization problem defined as follows:
  
  .. math::
  
      f_{\text{Trigonometric2}}(x) = 1 + \sum_{i=1}^{n} 8 \sin^2
                                     \left[7(x_i - 0.9)^2 \right]
                                     + 6 \sin^2 \left[14(x_i - 0.9)^2 \right]
                                     + (x_i - 0.9)^2
  
  Here, :math:`n` represents the number of dimensions and
  :math:`x_i \in [-500, 500]` for :math:`i = 1, ..., n`.
  
  *Global optimum*: :math:`f(x) = 1` for :math:`x_i = 0.9` for
  :math:`i = 1, ..., n`
  
  .. [1] Jamil, M. & Yang, X.-S. A Literature Survey of Benchmark Functions
  For Global Optimization Problems Int. Journal of Mathematical Modelling
  and Numerical Optimisation, 2013, 4, 150-194.
code: def __init__(self, dimensions=2):
      Benchmark.__init__(self, dimensions)
  
      self._bounds = list(zip([-500.0] * self.N, [500.0] * self.N))
      self.custom_bounds = [(0, 2), (0, 2)]
  
      self.global_optimum = [[0.9 for _ in range(self.N)]]
      self.fglob = 1.0
      self.change_dimensionality = True
  
imports: from numpy import abs, asarray, cos, exp, arange, pi, sin, sum, atleast_2d
  from .go_benchmark import Benchmark
label_desc: Use image node_id 1 to create a new Trigonometric02 object from inherited base classes: Benchmark with example: obj = Trigonometric02(dimensions)