class_docstr: Morris test function.
  
  20-dimensional function (usually evaluated on `[0, 1]^20`):
  
      f(x) = sum_{i=1}\^20 beta_i w_i + sum_{i<j}\^20 beta_ij w_i w_j
      + sum_{i<j<l}\^20 beta_ijl w_i w_j w_l + 5w_1 w_2 w_3 w_4
  
  Proposed to test sensitivity analysis methods
docstr: Args:
      noise_std: Standard deviation of observation noise.
      negate: Return negative of function.
docstr_tok: ["Args",":","noise_std",":","Standard","deviation","of","observation","noise",".","negate",":","Return","negative","of","function","."]
code: def __init__(
      self, noise_std: Optional[float] = None, negate: bool = False
  ) -> None:
      r"""
      Args:
          noise_std: Standard deviation of observation noise.
          negate: Return negative of function.
      """
      self._optimizers = None
      self.dim = 20
      self._bounds = [(0, 1) for _ in range(self.dim)]
      self.si = [
          0.005,
          0.008,
          0.017,
          0.009,
          0.016,
          0,
          0.069,
          0.1,
          0.15,
          0.1,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
      ]
      super().__init__(noise_std=noise_std, negate=negate)
  
imports: import math
  from typing import List, Optional, Tuple
  import torch
  from botorch.test_functions.synthetic import SyntheticTestFunction
  from torch import Tensor
label_desc: Use image node_id 1 to create a new Morris object from inherited base classes: SyntheticTestFunction with example: obj = Morris(noise_std, negate)