<?php
require_once('./matrix.class.php');
echo '<h2>Example of matrix:<img src="./example.png"/></h2>';
echo'<pre>';
$hous=new Matrix(array(array(4,-30,60,-35),array(-30,300,-675,420),array(60,-675,1620,-1050),array(-35,420,-1050,700)));
echo '<h2>Calculation of the determinant</h2>';
var_dump($hous->getDet());
echo '<h2>Calculation of eigenvalues</h2>';
var_dump($hous->getEigens());
echo '<h2>Calculation of the inverse</h2>';
var_dump($hous->lu_reversed());
echo '<h2>Different factorizations </h2>';
echo '<h3>LU factorization </h3>';
$op=$hous->ludcmp2();
// var_dump($op);
$u=Matrix::Op($op['L'],$op['U'],'*');
var_dump($u);
echo '<h3>Cholesky factorization </h3>';
$op=$hous->CholeskyLLTdcmp();
// var_dump($op);
$u=Matrix::Op($op,$op->transposed(),'*');
var_dump($u);
echo '<h3>Singular values decomposition </h3>';
$svd=$hous->svdcmp();
// var_dump($svd);
$a=Matrix::Op(Matrix::Op($svd['U'],$svd['W'],'*'),$svd['V']->transposed(),'*');
var_dump($a);
echo '<h3>QR factorization </h3>';
$op=$hous->householdertransformations();
// var_dump($op);
$u=Matrix::Op($op['Q'],$op['R'],'*');
var_dump($u);
echo '<h2>Eigenvalues calculation </h2>';
$hous=new Matrix(array(array(2,-2,0),array(1,5,3),array(-2,1,4)));// must not use deflation on this because of complex eigenvalues
var_dump($hous->getEigens());
$hous=new Matrix(array(array(2,0,1,2),array(0,2,2,3),array(-1,0,0,1),array(3,1,-1,2)));// must not use deflation on this because of complex eigenvalues
var_dump($hous->getEigens());
$hous=new Matrix(array(array(5,4,2,1),array(0,1,-1,1),array(-1,-1,3,0),array(1,1,-1,2)));//but on this yes even if it is not symmetric
var_dump($hous->getEigens());
var_dump($hous->deflation());
var_dump($hous->inverseandshift(3));
var_dump($hous->inversepowerIteration());
|