我正在尝试使用 Python v. 2.7.5 编写一个程序,该程序将计算 x = 0 和 x = pi 之间的曲线 y=sin(x) 下的面积。执行此计算,在 1 到 10 之间改变 x 范围的 n 个分区,并打印近似值、真实值和百分比误差(换句话说,通过增加梯形的数量来提高精度)。将所有值打印到小数点后三位。
我不确定代码应该是什么样子。有人告诉我,我应该只有大约 12 行代码来完成这些计算。
我正在使用 Wing IDE。
这是我到目前为止所拥有的
# base_n = (b-a)/n
# h1 = a + ((n-1)/n)(b-a)
# h2 = a + (n/n)(b-a)
# Trap Area = (1/2)*base*(h1+h2)
# a = 0, b = pi
from math import pi, sin
def TrapArea(n):
for i in range(1, n):
deltax = (pi-0)/n
sum += (1.0/2.0)(((pi-0)/n)(sin((i-1)/n(pi-0))) + sin((i/n)(pi-0)))*deltax
return sum
for i in range(1, 11):
print TrapArea(i)
我不确定我是否走在正确的轨道上。我收到一条错误消息,提示“在赋值之前引用了局部变量‘sum’。关于如何改进我的代码的任何建议?