Пример #1
0
 function testInvert()
 {
     $unit = Math_Matrix::makeUnit(4);
     $q = new Math_Matrix($this->data);
     $p = $q->clone();
     $q->invert();
     $p->multiply($q);
     $this->assertEquals($unit->getData(), $p->getData());
 }
Пример #2
0
echo "\nSolving another Ax = b\n";
$a = new Math_Matrix($adata);
$b = new Math_Vector($bdata);
$x = Math_Matrix::solve($a, $b);
echo "\nA\n" . $a->toString('%8.4f') . "\n";
echo "B " . $b->toString() . "\n";
echo "Solution " . $x->toString() . "\n";
echo "\nSolving with error correction\n";
$x = Math_Matrix::solveEC($a, $b);
echo "EC Solution " . $x->toString() . "\n";
$Adata = array(array(1, 1, 2), array(2, 3, 4));
$Bdata = array(array(-1, 3), array(-3, 4), array(-5, 2));
$A = new Math_Matrix($Adata);
$A1 = $A->clone();
$B = new Math_Matrix($Bdata);
$B1 = $B->clone();
$A1->multiply($B1);
$B->multiply($A);
echo $A1->toString() . "\n";
echo $B->toString() . "\n";
/*
echo "\n";
$data = array (
            array(1,0,1),
            array(1,1,1),
            array(1,1,0),
        );
$m = new Math_Matrix($data);
echo $m->toString()."\n";
$det = $m->determinant();
echo "Determinant = $det\n";
 function testMultiply()
 {
     $Adata = array(array(1, 1, 2), array(2, 3, 4));
     $Bdata = array(array(-1, 3), array(-3, 4), array(-5, 2));
     $ABdata = array(array(-14, 11), array(-31, 26));
     $BAdata = array(array(5, 8, 10), array(5, 9, 10), array(-1, 1, -2));
     $A = new Math_Matrix($Adata);
     $A1 = $A->clone();
     $B = new Math_Matrix($Bdata);
     $B1 = $B->clone();
     $A1->multiply($B);
     $B1->multiply($A);
     $AB = new Math_Matrix($ABdata);
     $BA = new Math_Matrix($BAdata);
     $this->assertEquals($A1->toString(), $AB->toString());
     $this->assertEquals($B1->toString(), $BA->toString());
 }