Numerical integration/Gauss-Legendre Quadrature: Difference between revisions
Content added Content deleted
m (→{{header|Perl 6}}: don't need semi when line ends with a block) |
m (→{{header|Perl 6}}: fix too-long line, a bit more clutter reduction) |
||
Line 549: | Line 549: | ||
<lang perl6>multi legendre-pair( 1 , $x) { $x, 1 } |
<lang perl6>multi legendre-pair( 1 , $x) { $x, 1 } |
||
multi legendre-pair(Int $n, $x) { |
multi legendre-pair(Int $n, $x) { |
||
my ($m1, $m2) |
my ($m1, $m2) = legendre-pair($n - 1, $x); |
||
my \u = 1 - 1 / $n; |
my \u = 1 - 1 / $n; |
||
(1 + u) * $x * $m1 - u * $m2, $m1; |
(1 + u) * $x * $m1 - u * $m2, $m1; |
||
Line 560: | Line 560: | ||
multi legendre-prime( 1 , $ ) { 1 } |
multi legendre-prime( 1 , $ ) { 1 } |
||
multi legendre-prime(Int $n, $x) { |
multi legendre-prime(Int $n, $x) { |
||
my ($m0, $m1) |
my ($m0, $m1) = legendre-pair($n, $x); |
||
($m1 - $x * $m0) * $n / (1 - $x**2); |
($m1 - $x * $m0) * $n / (1 - $x**2); |
||
} |
} |
||
Line 600: | Line 600: | ||
} |
} |
||
say "Gauss-Legendre |
say "Gauss-Legendre $_.fmt('%2d')-point quadrature ∫₋₃⁺³ exp(x) dx ≈ ", |
||
quadrature($_, &exp, -3, +3) for 5 .. 10, 20;</lang> |
|||
{{out}} |
{{out}} |