LU decomposition: Difference between revisions

m
→‎{{header|Perl 6}}: Named matrices more appropriately
m (→‎{{header|Perl 6}}: minor tweaks, remove some superstitious parentheses)
m (→‎{{header|Perl 6}}: Named matrices more appropriately)
Line 1,868:
)
-> @test {
say-it 'OriginalA Matrix', @test;
say-it( $_[0], @($_[1]) ) for 'P Matrix', 'AAP Matrix', 'L Matrix', 'U Matrix' Z, lu @test;
}
 
Line 1,876:
my $n = +@a;
my @P = pivotize @a;
my @AAP = mmult @P, @a;
my @L = matrix-ident $n;
my @U = matrix-zero $n;
Line 1,882:
for ^$n -> $j {
if $j >= $i {
@U[$i][$j] = @AAP[$i][$j] - [+] map { @U[$_][$j] * @L[$i][$_] }, ^$i
} else {
@L[$i][$j] = (@AAP[$i][$j] - [+] map { @U[$_][$j] * @L[$i][$_] }, ^$j) / @U[$j][$j];
}
}
 
}
return @P, @AAP, @L, @U;
}
 
Line 1,936:
}</lang>
{{out}}
<pre>OriginalA Matrix
1 3 5
2 4 7
Line 1,946:
0 0 1
 
AAP Matrix
2 4 7
1 3 5
Line 1,961:
0 0 -2
 
OriginalA Matrix
11 9 24 2
1 5 2 6
Line 1,973:
0 0 0 1
 
AAP Matrix
11 9 24 2
3 17 18 1
10,333

edits