kubun-kyuseki.pl (864B)
1 #!/usr/bin/env perl 2 # 3 # f(x) = 1 / (1 +x)とx軸とで囲まれた図形のうち閉区間[0,1]の範囲の面積 4 # 5 # 閉区間[0,1] で積分すると、∫ f(x) = [log(1 +x)] = log2 ( 0.693147...) 6 # 7 # [a,b]をn等分して、h = (1/n) * (b-a)とし、x_i = a + hi, y_i = f((x_i-1 + x_i / 2) ) ( i = 1,2,...,n)とする 8 # 面積 S = h(y_1+ y_2 + ...+ y_n) 9 # 10 11 12 use v5.40; 13 use autodie; 14 use utf8; 15 binmode(STDOUT, ":utf8"); 16 binmode(STDIN, ":utf8"); 17 18 my $n = 5000; 19 my $a = 0; 20 my $b = 1; 21 22 say "f(x) = 1 / (1 + x)とx軸とで囲まれた図形のうち閉区間[0,1]の範囲の面積を求めます。"; 23 say "この区間を何等分しますか? : n = $n"; 24 25 my $h = (1 / $n) * ($b - $a); 26 my $s = 0; 27 28 for (my $i = 1; $i <= $n; $i++) { 29 my $x_i = $a + $h * $i; 30 my $y_i = 1 / ( 1 + $x_i); 31 $s = $s + $h * $y_i; 32 } 33 34 say "求める面積をSとすると S = ", $s;