Python 如何用Simpson'计算多边形的面积;使用坐标的规则是什么?

Python 如何用Simpson'计算多边形的面积;使用坐标的规则是什么?,python,Python,此代码使用,但根据以下公式给出了多边形的错误区域: def defineArea(xCoords, yCoords): i = 0 sum = 0 for i in xrange(len(xCoords) - 1): result = (xCoords[i] - xCoords[i+1])*(yCoords[i]+ yCoords[i+1]) i +=1 sum = 0.5*(sum + res

此代码使用,但根据以下公式给出了多边形的错误区域:

def defineArea(xCoords, yCoords):    

    i = 0
    sum = 0
    for i in xrange(len(xCoords) - 1):         
        result = (xCoords[i] - xCoords[i+1])*(yCoords[i]+ yCoords[i+1])

        i +=1
        sum = 0.5*(sum + result)
    print "Total 2D area is: ", sum*

我做错了什么? 如何根据辛普森规则仅使用坐标计算多边形的面积?

不要在循环内执行
sum=0.5*(sum+result)
。此外,一旦
sum
变量超出循环,就根本不需要它。循环完成后只需执行
result=0.5*result
,然后打印
result

您还需要切换
xCoords[i]
xCoords[i+1]

按照“蜥蜴比尔”说的做(抱歉,我还不能发表评论),或者您也可以在循环中做:

sum = sum + 0.5*result
此外,您正在执行
(xCoords[i]-xCoords[i+1])
而不是
(xCoords[i+1]-xCoords[i])