You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3计算立方根遇RuntimeWarning及tabulate迭代错误求助

咱们一步步来解决你遇到的两个问题:

1. 修复RuntimeWarning: invalid value encountered in double_scalars

问题原因

当x ≥ π/2(约1.57)时,cos(x)会变成负数。Python中直接对负数做**(1./3)运算时,默认会尝试返回复数,但numpy的cos返回的是实数类型,无法存储复数结果,因此触发警告并生成nan(非数值)。

解决方法

使用numpy专门的立方根函数cbrt,它支持负数输入并返回实数结果,完美适配你的需求:

from numpy import cos, cbrt
def f(x):
    return cbrt(cos(x))

2. 修复tabulate模块的'int' object is not iterable错误

问题原因

tabulate要求输入是二维列表(每行对应一个子列表),但你传入的[table, table2]是两个一维列表——每个列表会被当成一行,而tabulate会尝试遍历每行的元素作为列,可你的每行元素是整数(比如table里的0、1、2...),整数不可迭代,因此报错。

解决方法

把x值和对应的f(x)值配对成每行包含两个元素的二维列表,同时可以加上表头让输出更清晰:

# 直接生成结构化的二维表格数据
table_data = [[i, f(i)] for i in range(50)]
# 带表头打印
print(tabulate(table_data, headers=["x", "f(x)"]))

完整修复后的代码

from numpy import cos, cbrt
from tabulate import tabulate

def f(x):
    return cbrt(cos(x))

table_data = [[i, f(i)] for i in range(50)]
print(tabulate(table_data, headers=["x", "f(x)"]))

运行这段代码后,两个问题都会被解决,你会得到一份格式整齐的数值表格。

内容的提问来源于stack exchange,提问作者Pardus_23

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:05:46