\n"; // Prikaz matrice for ($i=1; $i<=$brredova; $i++) { echo "\n"; for ($j=1; $j<=$brkolona; $j++) { printf("", $mat[$i][$j]); } echo "\n"; } echo "\n
%3.7f
\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('', $boja[($brmat%2)], $kolona); } if ( ($brmat+1)||"; } echo "\n
%3.7f
'; } } 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; } ?>