在Python(Jupyter Notebook)中用arange计算正弦积分报错求助
问题排查与解决
核心问题
你代码里同时使用from numpy import *和from sympy import *导入两个库的全部命名空间,导致命名冲突——比如pi被sympy的符号类型覆盖,而numpy的arange需要数值类型的π,类型不匹配引发报错。且你的代码全程未用到sympy的功能,这个导入完全多余。
修正后的代码
import numpy as np from scipy.integrate import simps a = 0 # 积分下限 b = np.pi/2 # 积分上限 n = 200 # 区间数量 dx = (b - a)/n x_i = np.arange(0, b + dx, dx) y = np.sin(x_i) y_i = (y + 5)**(1/4) S200 = simps(y_i, x_i) print(S200)
关键改动说明
- 删除不必要的
sympy导入,彻底避免命名冲突 - 使用
import numpy as np的显式导入方式,明确区分numpy的函数与变量(如np.pi、np.arange、np.sin) - 统一使用numpy数值类型变量,保证计算过程中类型匹配
内容的提问来源于stack exchange,提问作者Ahmed Aljuhani
相关产品推荐
相关产品推荐

