例如有一个半径为r的半圆,根据公式很容易求得=πr/2
如果用python,结合微积分的思路,应该如何编程。
经典微分法求圆面积代码:
>>> import numpy as np
>>> def ger_area_of_circle(r, n):
x = np.linspace(-r, r, n) # 从-r到r等分n段
y = np.sqrt(r*r - x*x) # 每一段左侧对应圆周上的高度
return np.sum(y*(2*r/n)) * 2 # 每个高度乘以宽度再求和,乘以2即为圆面积
>>> ger_area_of_circle(1, 1000) # 半径为1,等分1000段
3.1383458317272392
>>> ger_area_of_circle(1, 10000) # 半径为1,等分10000段
3.141275167998904
>>> ger_area_of_circle(1, 100000) # 半径为1,等分100000段
3.1415611324797617
>>> ger_area_of_circle(1, 1000000) # 半径为1,等分1000000段
3.141589508670959
假设半圆的直径在x轴上,区间是[-r, r]。用微积分的思路求半圆的面积就是,你把区间[-r, r]划分为n段,对每一段分别用矩形或梯形面积来近似半圆在那个区间上的面积,然后把所有区间上的面积累加起来就是半圆面积的近似解。