数値微分積分
sub dx(){ 1.0e-4 } =head3 integral integral( func, from, to ) funcを積分範囲fromからtoで積分 =cut sub integral{ my( $func, $f, $t ) = @_; my $x = $f; my $r = 0; while( $x <= $t ){ # r = Sigma(x=f->t)f(x)dx $r += $func->($x); $x += dx; } return $r * dx; } =head3 differential differential( func, x ) funcをx近傍で微分 =cut sub differential{ my( $func, $x ) = @_; my $r = ( $func->($x + dx) - $func->($x - dx) ) / 2*dx; return $r; }