public function testSubMatrices() { $c = MatrixFactory::fromArray(array(array(-2, 1, -1), array(-3, -6, -2))); $this->assertEquals($c->getArray(), $this->X->sub($this->Y)->getArray()); }
public function testMatrixFromOneRowArray() { $array = array(1, 2, 3); $matrix = MatrixFactory::fromArray($array); $this->assertEquals(array($array), $matrix->getArray()); }
/** * * @static * @param Matrix $C * @param Matrix $P * @param Matrix $b * @return Matrix */ public static function LUP_solve($C, $P, $b) { // TODO : Проверка входных $n = $C->getRowsCount(); $y = array(); for ($i = 0; $i < $n; $i++) { $sum = 0; for ($j = 0; $j < $i; $j++) { $sum += $C->getElem($i, $j) * $y[$j]; } $y[$i] = $b->getElem($P[$i], 0) - $sum; } $x = array(); for ($i = $n - 1; $i >= 0; $i--) { $sum = 0; for ($j = $i + 1; $j < $n; $j++) { $sum += $C->getElem($i, $j) * $x[$j]; } $x[$i] = ($y[$i] - $sum) / $C->getElem($i, $i); } return MatrixFactory::fromArray($x)->T(); }