ILIAS  Release_4_0_x_branch Revision 61816
 All Data Structures Namespaces Files Functions Variables Groups Pages
powerBestFitClass.php
Go to the documentation of this file.
1 <?php
30 if (!defined('PHPEXCEL_ROOT')) {
34  define('PHPEXCEL_ROOT', dirname(__FILE__) . '/../../../');
35 }
36 
37 require_once PHPEXCEL_ROOT . 'PHPExcel/Shared/trend/bestFitClass.php';
38 
39 
48 {
49  protected $_bestFitType = 'power';
50 
51 
52  public function getValueOfYForX($xValue) {
53  return $this->getIntersect() * pow(($xValue - $this->_Xoffset),$this->getSlope());
54  } // function getValueOfYForX()
55 
56 
57  public function getValueOfXForY($yValue) {
58  return pow((($yValue + $this->_Yoffset) / $this->getIntersect()),(1 / $this->getSlope()));
59  } // function getValueOfXForY()
60 
61 
62  public function getEquation($dp=0) {
63  $slope = $this->getSlope($dp);
64  $intersect = $this->getIntersect($dp);
65 
66  return 'Y = '.$intersect.' * X^'.$slope;
67  } // function getEquation()
68 
69 
70  public function getIntersect($dp=0) {
71  if ($dp != 0) {
72  return round(exp($this->_intersect),$dp);
73  }
74  return exp($this->_intersect);
75  } // function getIntersect()
76 
77 
78  private function _power_regression($yValues, $xValues, $const) {
79  $mArray = $xValues;
80  sort($mArray,SORT_NUMERIC);
81  $xValues = array_map('log',$xValues);
82  $yValues = array_map('log',$yValues);
83 
84  $this->_leastSquareFit($yValues, $xValues, $const);
85  } // function _power_regression()
86 
87 
88  function __construct($yValues, $xValues=array(), $const=True) {
89  if (parent::__construct($yValues, $xValues) !== False) {
90  $this->_power_regression($yValues, $xValues, $const);
91  }
92  } // function __construct()
93 
94 } // class powerBestFit