Пример #1
0
 function testSolveEC()
 {
     $adata = array(array(-4.0, 3.0, -4.0, -1.0), array(-2.0, 0.0, -5.0, 3.0), array(-1.0, -1.0, -3.0, -4.0), array(-3.0, 2.0, 4.0, -1.0));
     $bdata = array(-37.0, -20.0, -27.0, 7.0);
     $res = array(2.0, -2.0, 5.0, 3.0);
     $a = new Math_Matrix($adata);
     $b = new Math_Vector($bdata);
     $x = Math_Matrix::solveEC($a, $b);
     $t = $x->getTuple();
     $this->assertEquals($res, $t->data);
 }
Пример #2
0
        );
$bdata = array(0,4,2);
// solution: <4,-2,-2>
*/
$adata = array(array(-4, 3, -4, -1), array(-2, 0, -5, 3), array(-1, -1, -3, -4), array(-3, 2, 4, -1));
$bdata = array(-37, -20, -27, 7);
// solution: <2,-2,5,3>
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),
 function testSolveEC()
 {
     $adata = array(array(-4.0, 3.0, -4.0, -1.0), array(-2.0, 0.0, -5.0, 3.0), array(-1.0, -1.0, -3.0, -4.0), array(-3.0, 2.0, 4.0, -1.0));
     $bdata = array(-37.0, -20.0, -27.0, 7.0);
     $res = array(2.0, -2.0, 5.0, 3.0);
     $resVector = new Math_Vector($res);
     $a = new Math_Matrix($adata);
     $b = new Math_Vector($bdata);
     $x = Math_Matrix::solveEC($a, $b);
     $this->assertEquals($resVector->toString(), $x->toString());
 }