Python math.cbrt() Function

Python math 模块Python math Module


In mathematical calculations,cube rootis a very important operation. Unlike the square root, the cube root can handle negative numbers, because the cube of a negative number is still negative.

math.cbrt()is a function introduced in Python 3.11, specifically used to calculate a number'scube root. It returns the cube root of x, that is, the value y satisfying y³ = x.

Term Definition: cbrtis the abbreviation of 'cube root', meaning 'cube root'.


Basic Syntax and Parameters

math.cbrt()is a static function of the math module. You need to import the math module before using it.

Syntax Format

import math

math.cbrt(x)

Parameter Description

  • Parameter: x
    • Type: numeric (integer or float)
    • Description: The number whose cube root is to be calculated. It can be any real number, including negative numbers.

Return Value

  • Returnsxthe cube root of x, and the return type is float.
  • If x is 0, it returns 0.
  • If x is negative, it returns the cube root of the negative number.

Examples

Let's thoroughly mastermath.cbrt()the usage of.

Example 1: Basic Usage - Calculate the Cube Root of a Positive Number

Example

import math

# Calculate the cube roots of some common numbers
print("Cube root of 8:", math.cbrt(8))      # 2.0, because 2³ = 8
print("Cube root of 27:", math.cbrt(27))    # 3.0, because 3³ = 27
print("Cube root of 1000:", math.cbrt(1000)) # 10.0, because 10³ = 1000
print("Cube root of 2:", math.cbrt(2))      # Approximately 1.2599

# Cube root of 0
print("Cube root of 0:", math.cbrt(0))      # 0.0

Output:

8 的立方根: 2.0
27 的立方根: 3.0
1000 的立方根: 10.0
2 的立方根: 1.2599210498948732
0 的立方根: 0.0

Example 2: Calculate the Cube Root of a Negative Number

math.cbrt()Its great strength is that it can correctly handle negative numbers, whilemath.sqrt()will raise an error for negative numbers.

Example

import math

# Calculate the cube roots of negative numbers
print("Cube root of -8:", math.cbrt(-8))    # -2.0, because (-2)³ = -8
print("Cube root of -27:", math.cbrt(-27))  # -3.0, because (-3)³ = -27
print("Cube root of -1:", math.cbrt(-1))    # -1.0

# Comparison: sqrt cannot handle negative numbers
try:
    print(math.sqrt(-8))
except ValueError as e:
    print("math.sqrt(-8) error:", e)

Output:

-8 的立方根: -2.0
-27 的立方根: -3.0
-1 的立方根: -1.0
math.sqrt(-8) 报错: math domain error

Example 3: Verify the Properties of the Cube Root

Use the cube root to verify a mathematical property: the cube of the cube root of a equals a itself.

Example

import math

# Verify the property of cube root: cbrt(x)³ = x
test_values = [8, -8, 27, -27, 0.125, -0.125]

for val in test_values:
    cube_root = math.cbrt(val)
    result = cube_root ** 3
    print(f"cbrt({val}) = {cube_root}, its cube = {result}")

# Floating-point precision issue
print("\nPrecision verification:")
print("cbrt(5)³ =", math.cbrt(5) ** 3)  # Should equal 5

Output:

cbrt(8) = 2.0, 其立方 = 8.0
cbrt(-8) = -2.0, 其立方 = -8.0
cbrt(27) = 3.0, 其立方 = 27.0
cbrt(-27) = -3.0, 其立方 = -27.0
cbrt(0.125) = 0.5, 其立方 = 0.125
cbrt(-0.125) = -0.5, 其立方 = -0.125

精度验证:
cbrt(5)³ = 5.0

Example 4: Practical Application - Solving a Cubic Equation

Cube roots can be used to solve cubic equations. For example, solving x³ = 27 gives x = cbrt(27) = 3.

Example

import math

# Practical problem: find the side length from the volume
# Suppose there is a cube-shaped box with a volume of 1000 cubic meters
# Find the side length
volume = 1000
side_length = math.cbrt(volume)
print(f"A cube with a volume of {volume} cubic meters has side length: {side_length:.4f} meters")

# Physics application: find the radius of a sphere
# Given sphere volume V = (4/3)πr³, find the radius r
# r = cbrt(V * 3 / (4 * π))
sphere_volume = 904.78  # Approximate the sphere volume
radius = math.cbrt(sphere_volume * 3 / (4 * math.pi))
print(f"A sphere with volume {sphere_volume:.2f} has an approximate radius: {radius:.4f}")

Output:

体积为 1000 立方米的正方体,边长为: 10.0000 米
体积为 904.78 的球,半径约为: 6.0000

Comparison with Other Methods

Inmath.cbrt()Before it appeared, we usually used the exponentiation operator to calculate cube roots:

Example

import math

x = 27

# Method 1: Using math.cbrt() (recommended)
result1 = math.cbrt(x)

# Method 2: Using exponentiation x ** (1/3)
result2 = x ** (1/3)

# Method 3: Using the pow() function
result3 = pow(x, 1/3)

print(f"math.cbrt({x}) = {result1}")
print(f"{x} ** (1/3) = {result2}")
print(f"pow({x}, 1/3) = {result3}")

# The case of negative numbers
y = -8
print(f"\nFor negative number {y}:")
print(f"math.cbrt({y}) = {math.cbrt(y)}")
print(f"{y} ** (1/3) = {y ** (1/3)}")  # May produce complex numbers

Output:

math.cbrt(27) = 3.0
27 ** (1/3) = 2.9999999999999996
pow(27, 1/3) = 2.9999999999999996

对于负数 -8:
math.cbrt(-8) = -2.0
-8 ** (1/3) = -(8**(1/3)) = -2.0  # 由于运算符优先级,结果正确但不够直观

Explanation:math.cbrt()is the best choice for calculating cube roots because:

  1. Clear semantics, easy-to-read code
  2. Handles negative numbers correctly
  3. Higher precision, avoiding the precision issues of floating-point operations

Notes

  • math.cbrt()is a function only available in Python 3.11+, and older versions of Python cannot use it.
  • For older versions, you can usex ** (1/3)orpow(x, 1/3)instead.
  • This function only applies to real numbers and does not support complex numbers. For complex cube roots, please usecmathmodule.

Python math 模块Python math Module

Other Extensions