ILIAS  eassessment Revision 61809
 All Data Structures Namespaces Files Functions Variables Groups Pages
logarithmicBestFitClass.php
Go to the documentation of this file.
1 <?php
29 require_once(PHPEXCEL_ROOT . 'PHPExcel/Shared/trend/bestFitClass.php');
30 
31 
40 {
41  protected $_bestFitType = 'logarithmic';
42 
43 
44  public function getValueOfYForX($xValue) {
45  return $this->getIntersect() + $this->getSlope() * log($xValue - $this->_Xoffset);
46  } // function getValueOfYForX()
47 
48 
49  public function getValueOfXForY($yValue) {
50  return exp(($yValue - $this->getIntersect()) / $this->getSlope());
51  } // function getValueOfXForY()
52 
53 
54  public function getEquation($dp=0) {
55  $slope = $this->getSlope($dp);
56  $intersect = $this->getIntersect($dp);
57 
58  return 'Y = '.$intersect.' + '.$slope.' * log(X)';
59  } // function getEquation()
60 
61 
62  private function _logarithmic_regression($yValues, $xValues, $const) {
63  foreach($xValues as &$value) {
64  if ($value < 0.0) {
65  $value = 0 - log(abs($value));
66  } elseif ($value > 0.0) {
67  $value = log($value);
68  }
69  }
70  unset($value);
71 
72  $this->_leastSquareFit($yValues, $xValues, $const);
73  } // function _logarithmic_regression()
74 
75 
76  function __construct($yValues, $xValues=array(), $const=True) {
77  if (parent::__construct($yValues, $xValues) !== False) {
78  $this->_logarithmic_regression($yValues, $xValues, $const);
79  }
80  } // function __construct()
81 
82 } // class logarithmicBestFit