124
社区成员




第四题
如图所示,一致函数的方程为
f(x)=exsin(x)
求函数曲线在[0,pi]
区间的长度。 你的任务:1)编写函数f(x)
计算上述函数的值;2)编写函数pt(a, b)
利用勾股定理计算直角三角形的斜边长。
提示:把区间分成n
个小区间,曲线可以近似看成线段。当小区间的区间数量足够多时,近似长度接近真实值。
代码实现
def f(x):
a=((np.e)**x)*(np.sin(x))
return(a)
# 在此添加代码,编写函数pt(a, b),利用勾股定理计算直角三角形的斜边长
def pt(a, b):
c=pow(a**2+b**2,1/2)
return(c)
n = 1000 # 细分成n个子区间
x = np.linspace(0, np.pi, n + 1) # n个子区间的n+1个端点
l, h = 0, np.pi / n # l为曲线长度、h为子区间宽度
for i in range(n): # 对每个子区间
li = pt(f(x[i + 1]) - f(x[i]), h) # 曲线在第i个子区间的近似长度
l = l + li # 将航渡累加到l中
print('l = %.6f' %l)