\n";
// Prikaz matrice
for ($i=1; $i<=$brredova; $i++) {
echo "\n";
for ($j=1; $j<=$brkolona; $j++) {
printf("%3.7f | ", $mat[$i][$j]);
}
echo "\n
";
}
echo "\n
\n
\n";
return 1;
}
/*
Prikaz kvadratne matrice -- wrapper funkcija
*/
function prikazi_kmatricu(&$mat, $n) {
prikazi_matricu($mat, $n, $n);
return 1;
}
/*
Uporedni prikaz dve matrice
*/
function prikazi_uporedo($matrice, $brredova) {
$boja=array('FFFF00', '40FF00');
echo "
\n";
for ($i=1; $i<=$brredova; $i++) {
echo "\n";
for ($brmat=0; $brmat $kolona) {
printf('%3.7f | ', $boja[($brmat%2)], $kolona);
}
if ( ($brmat+1)||';
}
}
echo "\n |
";
}
echo "\n
\n
\n";
return 1;
}
/*
Izbacivanje elementa $izbaci iz niza oznacenog sa $niz
*/
function izbaci_kolonu($izbaci, $niz) {
$noviniz=array();
for ($i=0; $i";
$tmp=$tmp+$mat1[$i][$k]*$mat2[$k][$j];
//echo "Tmp: $tmp
";
}
$c[$i][$j]=$tmp;
$tmp=0;
}
}
return $c;
}
/*
Oduzimanje matrica, od svakog elementa matrice $mat1 se oduzimaju odgovarajuci
elementi matrice $mat2. Vraca se matrica koja predstavlja razliku $mat1-$mat2.
Kao parametri se prosledjuju broj redova i kolona matrice $mat1 ( a samim tim i $mat2)
*/
function oduzmi_m(&$mat1, &$mat2, $brredova, $brkolona) {
$c=array();
for ($i=1; $i<=$brredova; $i++) {
for ($j=1; $j<=$brkolona; $j++) {
$c[$i][$j]=$mat1[$i][$j]-$mat2[$i][$j];
}
}
return $c;
}
/*
Vraca inverznu matricu $matrice cije su dimenzije $dimenzija
*/
function vrati_inverznu(&$matrica, $dimenzija) {
$inverzna=array();
for ($i=1; $i<=$dimenzija; $i++) {
for ($j=1; $j<=$dimenzija; $j++) {
if ( $i==$j ) {
$inverzna[$i][$j]=1;
} else {
$inverzna[$i][$j]=0;
}
}
}
while ( !proveri_jedinicnu($matrica, $dimenzija) ) {
for ($j=1; $j<=$dimenzija; $j++) {
$k=$j+1;
for ($i=$j+1; $i<=$dimenzija; $i++) {
while ( $matrica[$j][$j]==0 && ($k<=$dimenzija) ) {
if ( $matrica[$k][$j]!=0 ) {
saberi_redove($matrica, $dimenzija, $k, $j, 1);
saberi_redove($inverzna, $dimenzija, $k, $j, 1);
}
$k++;
}
if ( $matrica[$i][$j]!=0 ) {
$faktor=-$matrica[$i][$j]/$matrica[$j][$j];
// echo "Sabiram red $j sa redom $i faktor je: $faktor";
saberi_redove($matrica, $dimenzija, $j, $i, $faktor);
saberi_redove($inverzna, $dimenzija, $j, $i, $faktor);
//prikazi_kmatricu($matrica, $dimenzija);
}
}
}
//echo "
Odavde pocinje sredjivanje
";
for ($i=$dimenzija; $i>0; $i--) {
if ($faktor = proveri_red($matrica, $dimenzija, $i) ) {
podeli_red($matrica, $dimenzija, $i, $faktor);
podeli_red($inverzna, $dimenzija, $i, $faktor);
}
for ($k=1; $k<$i; $k++) {
$faktor=-$matrica[$k][$i]/$matrica[$i][$i];
saberi_redove($matrica, $dimenzija, $i, $k, $faktor);
saberi_redove($inverzna, $dimenzija, $i, $k, $faktor);
//prikazi_kmatricu($matrica, $dimenzija);
}
}
}
return $inverzna;
}
?>