How to use numpy Polynomial.integ to find area between curve and horizontal line

问题描述 投票:0回答:1

我正在使用 numpy 中的 Polynomial 来计算这样的最佳拟合线:

from numpy.polynomial import Polynomial
...
# get best-fit polynomial for values
best_fit_polynomial = Polynomial.fit(x_points, y_points, 4)

值的图形如下所示:

如何找到橙色最佳拟合线和 Y=70 处的水平线之间的区域?

离开this我猜我需要做类似的事情:

i = best_fit_polynomial.integ()
first = i(best_fit_polynomial_where_Y_is_70_on_the_left)
second = i(best_fit_polynomial_where_Y_is_70_on_the_right)
return second - first

我根本记不起任何微积分,所以我不确定我是否正朝着正确的方向前进。我应该使用一些东西而不是 numpy 吗?

python numpy calculus
1个回答
0
投票

我不认为你这样做的好方法。您的代码将计算橙色最佳拟合线与 Y = 0 处的线之间的面积,这通常是在集成函数时完成的。

您可以尝试对函数进行垂直平移,使 Y = 70 处的线变为 Y = 0 处的线。如果最佳拟合线的函数是 p,您可以通过以下方式实现:

p = p - 70

之后,您可以使用调用符号来计算积分,如下所示:

i = p.integ()
integrand = i(where_p_is_zero_at_right) - i(where_p_is_zero_at_left)
#here p is the updated p
© www.soinside.com 2019 - 2024. All rights reserved.