Saya telah menulis kode untuk mencari determinan matriks 10X10. Kode ini memberikan hasil yang tepat hingga matriks 9X9. Namun untuk matriks 10X10 memberikan error berikut
"Penggunaan nilai yang tidak diinisialisasi dalam perkalian ‹*> pada baris 23
Pembagian ilegal dengan nol pada baris 21"
Saya juga mencoba matriks 11X11, tetapi memberikan jawaban yang salah.
Mengapa kode ini memberikan kesalahan seperti itu...
Berikut kodenya:
#!/usr/bin/perl
use strict;
use warnings;
my @x1=(
[5, 6, 3, 2, 4, 9, 3, 5, 4, 2],
[12, 9, 8, 3, 3, 0, 6, 9, 3, 4],
[8, 6, 5, 8, 9, 3, 9, 3, 9, 5],
[6, 4, 3, 0, 6, 4, 8, 2, 22, 8],
[8, 3, 2, 5, 2, 12, 7, 1, 6, 9],
[5, 9, 3, 9, 5, 1, 3, 8, 4, 2],
[3, 10, 4, 16, 4, 7, 2, 12, 9, 6],
[2, 12, 9, 13, 8, 3, 1, 16, 0, 6],
[3, 6, 8, 5, 12, 8, 4, 19, 8, 5],
[2, 5, 6, 4, 9, 10, 3, 11, 7, 3]
);
# Matrix of nxn
for (my $i=0;$i le 9;$i++) {
for (my $j=0;$j le 9;$j++) {
if($j>$i) {
my $ratio = $x1[$j][$i]/$x1[$i][$i];
for(my $k = 0; $k le 9; $k++){
$x1[$j][$k] -= $ratio * $x1[$i][$k];
}
}
}
}
my $det1 = 1;
for(my $i = 0; $i le 9; $i++){
$det1 *= $x1[$i][$i];
}
printf $det1," ";
@x1
Anda jika Anda ingin bekerja dengan matriks, katakanlah, 11x11. dan, kenapale 9
, tapi bukan<=9
? - person varnie   schedule 10.07.2015$i le 9
berlaku untuk semua nilai$i
dari 0 hingga 89. Gunakan$i <= 9
sebagai gantinya. - person r3mainer   schedule 10.07.2015