Python math.cbrt() 関数

Python math モジュール


数学計算において、立方根は非常に重要な演算です。平方根とは異なり、立方根は負の数を扱うことができます。なぜなら、負の数の立方は依然として負の数だからです。

math.cbrt()は Python 3.11 で導入された関数で、ある数の立方根(cube root)です。x の立方根、つまり y³ = x を満たす y の値を返します。

単語の意味: cbrtは「cube root」の略で、「立方根」という意味です。


基本構文とパラメータ

math.cbrt()は math モジュールの静的関数で、使用する際は最初に math モジュールをインポートする必要があります。

構文形式

import math

math.cbrt(x)

引数の説明

  • 引数: x
    • 型:数値(整数または浮動小数点数)
    • 説明:立方根を計算する数。負の数を含む任意の実数を指定できます。

戻り値

  • 返すのはx立方根で、戻り値の型は浮動小数点数です。
  • x が 0 の場合は、0 を返します。
  • x が負の数の場合は、負の数の立方根を返します。

実例

実例を通して徹底的にマスターしましょうmath.cbrt()の使い方。

例 1:基本用法 - 正の数の立方根を計算する

実例

import math

# いくつかの一般的な数値の立方根を計算する
print("8 の立方根:", math.cbrt(8))      # 2.0、2³ = 8 なので
print("27 の立方根:", math.cbrt(27))    # 3.0、3³ = 27 だから
print(1000 の立方根:, math.cbrt(1000)) # 10.0、10³ = 1000 のため
print("2 の立方根:", math.cbrt(2))      # 约等于 1.2599

# 0 の立方根
print("0 の立方根:", math.cbrt(0))      # 0.0

実行結果:

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

例 2:負の数の立方根を計算する

math.cbrt()の強力な点は、負の数を正しく処理できることです。一方、math.sqrt()は負の数に対してエラーを返します。

実例

import math

# 負の数の立方根を計算
print("-8 の立方根:", math.cbrt(-8))    # -2.0、(-2)³ = -8 のため
print("-27 の立方根:", math.cbrt(-27))  # -3.0、なぜなら (-3)³ = -27
print("-1 の立方根:", math.cbrt(-1))    # -1.0

# 比較:sqrt は負数を処理できない
try:
    print(math.sqrt(-8))
except ValueError as e:
    print("math.sqrt(-8) 报错:", e)

実行結果:

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

例 3:立方根の性質を検証する

立方根を利用して数学的性質を検証します:a の立方根の3乗は a 自身に等しい。

実例

import math

# 立方根の性質を検証する: 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}, 其立方 = {result}")

# 浮点数精度问题
print("\n精度验证:)
print("cbrt(5)³ =", math.cbrt(5) ** 3)  # 应该等于 5

実行結果:

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

例 4:実際の応用 - 三次方程式を解く

立方根は三次方程式を解くために使用できます。例えば、x³ = 27 を解くと、x = cbrt(27) = 3 となります。

実例

import math

# 実際の問題:体積から辺の長さを求める
# 立方体の箱があると仮定します(体積は1000立方メートル)
# 求边长
volume = 1000
side_length = math.cbrt(volume)
print(f体積が {volume} 立方メートルの立方体の辺の長さ: {side_length:.4f} メートル)

# 物理応用:球の半径を求める
# 已知球体积 V = (4/3)πr³,求半径 r
# r = cbrt(V * 3 / (4 * π))
sphere_volume = 904.78  # 近似球体积
radius = math.cbrt(sphere_volume * 3 / (4 * math.pi))
print(f体積が {sphere_volume:.2f} の球の半径は約: {radius:.4f})

実行結果:

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

他の方法との比較

にmath.cbrt()が登場する前は、通常、指数演算子を使用して立方根を計算していました。

実例

import math

x = 27

# 方法1:使用 math.cbrt() (推荐)
result1 = math.cbrt(x)

# 方法2:使用指数运算 x ** (1/3)
result2 = x ** (1/3)

# 方法3:使用 pow() 函数
result3 = pow(x, 1/3)

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

# 負数の場合
y = -8
print(f"\n負の数 {y} に対して:)
print(f"math.cbrt({y}) = {math.cbrt(y)}")
print(f"{y} ** (1/3) = {y ** (1/3)}")  # 可能产生复数

実行結果:

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  # 由于运算符优先级,结果正确但不够直观

説明:math.cbrt()は立方根を計算するための最良の選択です。なぜなら:

  1. 意味が明確で、コードが読みやすい
  2. 負の数を正しく処理できる
  3. 精度が高く、浮動小数点演算の精度問題を回避できる

注意事項

  • math.cbrt()は Python 3.11+ で使用できる関数で、旧バージョンの Python では使用できません。
  • 旧バージョンの場合は、x ** (1/3) 或 pow(x, 1/3)代わりに使用できます。
  • この関数は実数にのみ適用され、複素数はサポートされていません。複素数の立方根が必要な場合は、cmathモジュールを使用してください。

Python math モジュール

その他の拡張