首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据给定的边界自动填充积分方程

根据给定的边界自动填充积分方程
EN

Stack Overflow用户
提问于 2020-09-17 01:14:10
回答 1查看 19关注 0票数 0

我在计算三个区域的面积。我是这样做的,通过计算每个区域的面积,然后将它们相加。

集成的极限是(1078.08,1078.816),(1078.924,1079.348),(1079.448,1079.476)。我正在手动输入数组“界”的索引来计算积分:

代码语言:javascript
复制
bounds = [1078.08, 1078.816, 1078.924, 1079.348, 1079.448, 1079.476]
area = -(integrate.quad(estimated_y, bounds[0], bounds[1])[0]) + (-(integrate.quad(estimated_y, bounds[2], bounds[3])[0])) + (-(integrate.quad(estimated_y, bounds[4], bounds[5])[0]))

给出了列表的“界”,我希望代码能够识别出我正在计算的区域有多少,并相应地调整计算。然后将数组索引自动输入积分方程。

需要注意的是,我希望将此编码方法应用于其他示例,并且每个示例都有不同的区域,因此“界”的长度将有所不同。此外,“界”将始终保持正确的顺序。

示例1(界= 1080、1085、1091、1079)

预期结果:

代码语言:javascript
复制
area = -(integrate.quad(estimated_y, 1080, 1085)[0]) + (-(integrate.quad(estimated_y, 1091, 1079)[0]))

示例2(界= 1090,1095)

预期结果:

代码语言:javascript
复制
area = -(integrate.quad(estimated_y, 1090, 1095)[0]) 

我该怎么做?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-09-17 02:56:00

您想要做的是实现一个循环和累积模式。因此,设置一个for循环,循环遍历每一组边界,并保持一个累积变量并将其添加到其中。

我强烈建议您将这些边界放入元组中,以防止混淆和增加清晰度。(见下文)。您可以在bounds上操作,而不需要使用一些花哨的索引,但不需要节奏曲!

用"diff“函数代替集成的简短示例..。YMMV

代码语言:javascript
复制
bounds = [  (4, 10),
            (-5, 2),
            (0, 20) ]

def diff(low, high):
    return high-low

total_diff = 0

for bound in bounds:
    total_diff += diff(bound[0], bound[1])

print(f'the total accumulated diff is {total_diff}')

# the total accumulated diff is 33
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63929914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档