File Exchange

image thumbnail

Polyhedron Inertial Properties

version (30.8 KB) by Howard Wilson
Inertial properties of arbitrary polyhedra are computed and examples are shown.


Updated 10 Feb 2011

View Version History

View License

Dynamical analyses in engineering often require inertial properties of
complex shapes such as polyhedra. The volume, the first moment of volume
and the second moment of volume of a general solid can be computed by

V = Integral( dVol ), VR = Integral( R*dVol ), VRR = Integral( R*R’*dVol ).

Also of interest are the centroidal radius RC = VR/V and the inertia tensor
I = eye(3,3)*trace( VRR )-VRR. The Gauss divergence theorem for a tensor
function F states that

Integral( div(F)*dVol ) = SurfIntegral( Dot(N,F)*dSurf )

where R = [x; y; z] is the cartesian radius vector and N is the outward
directed unit surface normal. This leads to

[V, VR, VRR] = SurfIntegral( [ 1/3, R/4, R*R’/5 ]*Dot(N,R)*dSurf ).

The surface parts of a polyhedron have constant surface normals and the
integrals over planar parts can be converted to line integrals and evaluated
exactly. A concise algorithm for the inertial properties of arbitrary
polyhedra results. General shapes can be approximated using polyhedral models.
However, obtaining several digit accuracy for curved surfaces such as a sphere
or a torus may require a large number of elements. Examples in the program
show exact results for several polyhedra and approximate results for curved
surfaces. Among the utility functions provided are POLHEDRN to compute
polyhedron properties using corner coordinates of the faces, SRFVN employing
x,y,z arrays similar to function surf, and POLYXY which obtains inertial
properties of arbitrary polygons. More detail on the methods used appear in
'Advanced Mathematics and Mechanics Applications Using MATLAB', 3rd Ed.,2003,
CRC Press, by H. Wilson, L. Turcotte, and D. Halpern.

RUNPOLYHEDRON is the main driver function showing demo examples.

Cite As

Howard Wilson (2021). Polyhedron Inertial Properties (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (1)

Seung Jae Lee

I appreciate this code, but it does not seem to be accurate. For example, the three moment of inertia values computed for sphere (provided as an example) are 1.6558, 5.8193, 5.8193, (i.e., supposed to be same for all directions).

MATLAB Release Compatibility
Created with R2010b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!