在代码中计算积分的部分,应该在调用 f
函数时,将 x
相应地作为弧度传递,而不是角度。
在 Python 中,sin
函数是以弧度作为参数的。而根据你提供的代码截图,你的代码中使用角度而不是弧度进行计算。这很可能是导致输出结果不正确的原因之一。
解决方法是将 f
函数中的 np.sin(x)
修改为 np.sin(x*np.pi/180)
,将角度转换为弧度。
另外,你的 cal()
函数没有对函数值 y
进行细分,在细分数量较少的情况下可能会导致积分误差较大。建议增加细分数量以提高积分精度。
下面给出修改后的代码示例:
import numpy as np
def f(x):
return np.cos(np.sin(x*np.pi/180))
def cal(x_start, x_end, dx):
x = np.arange(x_start, x_end+dx, dx)
y = f(x)
area = np.sum(y*dx) # 梯形公式积分
return area
result = cal(0, 90, 0.001)
print(result)
在上面的代码中,我们使用 np.pi/180
将角度转换为弧度,并对细分数量进行了增加,以提高积分精度。
Step 1. 打开 Chrome 或是任何你喜欢的浏览器(作为一名Web开发者,我真挚地提醒您,IE除外):
Step 2. 打开 Google 或是任何你熟悉的搜索引擎(百度除外):
Step 3. 在浏览器的搜索框中输入 python + 空格 + 您感兴趣的问题
:
Step 4. 看到这样的搜索结果:
P.S. 本人不歧视任何搜索引擎,但如果你非要用百度,请注意鉴别广告。事实上,第一页基本都是广告:
Step 5. 点开搜索结果前一屏上的条目,看里面相似的单词,以及中文内容:
Step 6. 新开一个搜索,搜索 python + 空格 + 刚才出现最多的库名
:
Step 7. 随便打开一个结果,里面有教你怎么安装(这个tkinter是内置库,不用安装)、导入、写helloworld,照着做一遍:
结果:
Step 8. 把刚才打开的网页里这些东西里第一页随便看一下,有印象就行(不用记忆,但你可以跟着做一遍,如果你时间充足的话,但一般我也不会去做,只是看,有印象就行):
Step 9. 在项目里使用该库(知道了这东西能用,那就开始用它了):
遇到你想用的功能,比如对话框,Google 搜索 python + 库名 + 功能
:
看见了没,都是中文!随便点开一个看:
代码抄一下,效果就出来了: