The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Math::Volume::Rotational - Volume of rotational bodies

SYNOPSIS

  use Math::Volume::Rotational qw/volume_x volume_y/;
  
  my $volume = volume_rot_x( '(2-x^2)^0.5', -2, 2 );
  
  # equivalent:
  use Math::Symbolic qw/parse_from_string/;
  my $formula = parse_from_string('(2-x^2)^0.5');
  $volume = volume_rot_x($formula, -2, 2);
  
  # The above calculates the volume of a sphere of radius 2 by rotating
  # the half-circle of radius 2 around the x-axis.
  # This is equivalent to the well-known formula "4/3*pi*radius^3".
  
  # volume_rot_y works similar by rotating around the y-axis.

DESCRIPTION

This module calculates the volume of rotational bodies. These are bodies resulting from the rotation of a portion of a 2D function around an axis.

Please note that rotations around an axis other than either x- or y-axis are considered highly experimental at this point.

EXPORT

None by default, but you may choose to have any of the following subroutines exported to the calling namespace via standard Exporter semantics:

  volume_rot_x
  volume_rot_y
  volume_rot_arb

Additionally, you may use the export tag ':all' to export all of the above.

SUBROUTINES

volume_rot_x

Calculates the volume of a rotational body by rotatinf a the portion of a function graph around the x-axis. The function graph is integrated from a lower to an upper boundary.

Expects a Math::Symbolic tree or a string to be parsed as such as first argument. Second argument must be the lower boundary, third must be the upper parameter boundary.

volume_rot_y

Works the same as volume_rot_x. It calculates the volume of a rotational body by rotating a the portion of a function graph around the y-axis. The function graph is integrated from a lower to an upper boundary.

Expects a Math::Symbolic tree or a string to be parsed as such as first argument. Second argument must be the lower boundary, third must be the upper parameter boundary.

volume_rot_arb

Calculates the volume of a rotational body by rotating a portion of a function graph around an arbitrary axis in R^2. The function graph is integrated from a lower to an upper boundary. volume_rot_arb takes named arguments:

function

This is the function to integrate over. It must be a Math::Symbolic tree or a string to be parsed as such. Needs to be a scalar function. This is a mandatory argument.

var

Indicates the name of the variable to use for integration. This is an optional argument if the variable can be inferred from the function.

lower_boundary_function

This optional argument indicates a function to subtract from the integration function before integration. Thus, you can calculate the volume of a hollow sphere of a given thickness.

axis_y

Mandatory argument indicating the y value of the axis to rotate around at x=0.

axis_slope

Indicates the slope of the axis in R^2. Mandatory argument.

lower

The lower boundary for integration. Mandatory argument.

upper

The upper boundary for integration. Mandatory argument.

AUTHOR

Steffen Mueller, <volume-module at steffen-mueller dot net>

SEE ALSO

New versions of this module can be found on http://steffen-mueller.net or CPAN. The module development takes place on Sourceforge at http://sourceforge.net/projects/math-symbolic/

Math::Symbolic.

Math::Integral::Romberg.