MCordingley\LinearAlgebra\Matrix::inverse PHP Метод

inverse() публичный Метод

public inverse ( ) : self
Результат self
    public function inverse() : self
    {
        $this->checkSquare();
        $size = $this->getRowCount();
        $transpose = $this->transpose();
        $aTa = $transpose->multiplyMatrix($this);
        $padded = $aTa->pad($size);
        $inverted = $this->recursiveSolveInverse($padded);
        $trimmed = $inverted->sliceRows(0, $size)->sliceColumns(0, $size);
        return $trimmed->multiplyMatrix($transpose);
    }

Usage Example

Пример #1
0
 public function testInverse()
 {
     $matrix = new Matrix([[1, 2, 3], [0, 1, 4], [5, 6, 0]]);
     $inverse = $matrix->inverse();
     static::assertEquals(-24, $inverse->get(0, 0));
     static::assertEquals(18, $inverse->get(0, 1));
     static::assertEquals(5, $inverse->get(0, 2));
     static::assertEquals(20, $inverse->get(1, 0));
     static::assertEquals(-15, $inverse->get(1, 1));
     static::assertEquals(-4, $inverse->get(1, 2));
     static::assertEquals(-5, $inverse->get(2, 0));
     static::assertEquals(4, $inverse->get(2, 1));
     static::assertEquals(1, $inverse->get(2, 2));
 }