使用数值积分找到由坐标循环包围的区域

时间:2018-12-03 15:48:34

标签: python numpy area numerical-integration

我正在尝试查找或编写一些代码,这些代码可以为我提供两行之间的区域,如果较低的行与较高的行相交,则会导致出现负数。为此(无法发布图像:()。我已经编写了代码,但对答案没有100%的信心。我还尝试过仅使用np.trapz的numpy函数。

def TrapzCn(n):

Uy = Upper(n)
Ly = Lower(n)
xc = Open(L[0])
Top = np.trapz(Uy,x=xc[:10])
Bottom = np.trapz(Ly,x=xc[:10])
return(Top + Bottom)

这是我的

def Cn(n):

Uy = Upper(n)
xc = Open(L[0])
Ly = Lower(n)
for i in range(len(Ly)):
  Ly[i] = float(Ly[i])
  Uy[i] = float(Uy[i])
A = 0
i = 0
while i+1 < len(Uy):
    A1 = (xc[i+1] - xc[i]) * ((Uy[i] + Uy[i+1])/2)
    A2 = (xc[i+1] - xc[i]) * ((Ly[i] + Ly[i+1])/2)
    if A1 > A2 and  Uy[i] < 0.0 :
        A += abs(A1) + abs(A2)
    elif A1 > A2 and ((Uy[i] + Uy[i+1] )/2)> 0:
        A += abs(A1) - abs(A2)
    elif A1 < A2 and A1 < 0.0 :
        A -= (abs(A2) - abs(A1))
    i += 1
return(A)

Upper和Lower功能只是解压缩我的数据的地方。因此,我的主要问题是,np.trapz函数是否会解释曲线加倍,以及曲线一旦穿过就会变成负数。如果不是,那是我的吗?

0 个答案:

没有答案