ILIAS  eassessment Revision 61809
 All Data Structures Namespaces Files Functions Variables Groups Pages
powerBestFitClass.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 = 'power';
42 
43 
44  public function getValueOfYForX($xValue) {
45  return $this->getIntersect() * pow(($xValue - $this->_Xoffset),$this->getSlope());
46  } // function getValueOfYForX()
47 
48 
49  public function getValueOfXForY($yValue) {
50  return pow((($yValue + $this->_Yoffset) / $this->getIntersect()),(1 / $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.' * X^'.$slope;
59  } // function getEquation()
60 
61 
62  public function getIntersect($dp=0) {
63  if ($dp != 0) {
64  return round(exp($this->_intersect),$dp);
65  }
66  return exp($this->_intersect);
67  } // function getIntersect()
68 
69 
70  private function _power_regression($yValues, $xValues, $const) {
71  foreach($xValues as &$value) {
72  if ($value < 0.0) {
73  $value = 0 - log(abs($value));
74  } elseif ($value > 0.0) {
75  $value = log($value);
76  }
77  }
78  unset($value);
79  foreach($yValues as &$value) {
80  if ($value < 0.0) {
81  $value = 0 - log(abs($value));
82  } elseif ($value > 0.0) {
83  $value = log($value);
84  }
85  }
86  unset($value);
87 
88  $this->_leastSquareFit($yValues, $xValues, $const);
89  } // function _power_regression()
90 
91 
92  function __construct($yValues, $xValues=array(), $const=True) {
93  if (parent::__construct($yValues, $xValues) !== False) {
94  $this->_power_regression($yValues, $xValues, $const);
95  }
96  } // function __construct()
97 
98 } // class powerBestFit