曲线下的面积是其整数。 sin(x)
从0
到u
的积分是1-cos(u)
,因此从0
到π
的积分是2
。将该公式取反,即可得出t
可获得特定值的点u
。因此,我们正在寻找将t=acos(1-u)
分为u
等份的[0, 2]
值的n
值。
使用代码:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-0.2, 3.3, 500)
y = np.sin(x)
plt.plot(x, y)
n = 7
u = np.linspace(0, 2, n + 1, endpoint=True)
t = np.arccos(1 - u)
print("The limits of the areas are:", list(t))
colors = plt.cm.Set2.colors
for i in range(n):
filter = (x > t[i]) & (x <= t[i + 1])
plt.fill_between(x[filter], 0, y[filter], color=colors[i])
plt.xticks(t)
plt.gca().spines['bottom'].set_position('zero')
plt.gca().spines['top'].set_color('none')
plt.gca().spines['right'].set_color('none')
plt.tight_layout()
plt.show()