Пример #1
0
 function testSolve()
 {
     $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::solve($a, $b);
     $t = $x->getTuple();
     $this->assertEquals($res, $t->data);
 }
Пример #2
0
/*
$adata = array(
            array(1,1,1),
            array(1,-2,2),
            array(1,2,-1)
        );
$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";
Пример #3
0
<?php

// performs matrix functions to fit a template to a 3-point delineation
require_once $_SERVER['DOCUMENT_ROOT'] . '/include/main_func.php';
auth();
include_once "Math/Matrix.php";
$temPoints = $_POST['temPoints'];
$eyeclicks = $_POST['eyeclicks'];
$original = array(array($temPoints[0]['x'], $temPoints[0]['y'], 1.0), array($temPoints[1]['x'], $temPoints[1]['y'], 1.0), array($temPoints[2]['x'], $temPoints[2]['y'], 1.0));
$m = new Math_Matrix($original);
$xnew = array($eyeclicks[0]['x'], $eyeclicks[1]['x'], $eyeclicks[2]['x']);
$ynew = array($eyeclicks[0]['y'], $eyeclicks[1]['y'], $eyeclicks[2]['y']);
$xvector = new Math_Vector($xnew);
$yvector = new Math_Vector($ynew);
$m1 = $m->cloneMatrix();
$x = @Math_Matrix::solve($m1, $xvector);
$a = round($x->get(0), 3);
$b = round($x->get(1), 3);
$c = round($x->get(2), 3);
$m2 = $m->cloneMatrix();
$y = @Math_Matrix::solve($m2, $yvector);
$d = round($y->get(0), 3);
$e = round($y->get(1), 3);
$f = round($y->get(2), 3);
$variables = array('a' => $a, 'b' => $b, 'c' => $c, 'd' => $d, 'e' => $e, 'f' => $f, 'fitPoints' => $_POST['fitPoints']);
echo json_encode($variables);
exit;
 function testSolve()
 {
     $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::solve($a, $b);
     $this->assertEquals($resVector->toString(), $x->toString());
 }