不用任何数学方法,如何计算圆面积 |
您所在的位置:网站首页 › 计算圆面积的方法是怎样推出的 › 不用任何数学方法,如何计算圆面积 |
本文转载自机器之心公众号,作者:Andre Ye,由机器之心编译。特此感谢! 杀鸡用牛刀,我们用机器学习方法来算圆的面积。 询问任何人圆的面积是多少,他们都会告诉你不就是????r²吗。但如果你问他们为什么,他们很可能并不知道。 这是因为圆的面积公式的证明在大多数情况下要么不直观,不令人满意,要么充斥着积分等高级数学概念。 借鉴统计学习和机器学习的核心原理,我们可以使用蒙特卡罗模拟和多项式/二次回归来创建基于计算的方法,以找到圆的面积公式。 在不使用任何数学运算的情况下得出圆的面积,我们使用了蒙特卡罗方法。从探索不规则形状的面积到预测股票市场的情况,都用到了蒙特卡罗方法。该方法的核心思想是引入随机性,并测量系统对其作出的反馈,甚至可以在不了解系统原理的情况下获得有效信息。 在使用蒙特卡罗来近似圆的面积时,我们先生成一些随机坐标点 (x1,x2),这两个方向的坐标都是从负半径值到正半径值的均匀分布绘制得到的。我们在圆中放入 250,000 个这样的坐标点,如中心极限定理(或大数定律)所描述的,研究所用的真实随机样例点越多,得到的结果就会越准确。 对于圆内的每一个点,我们可以引入一个落入圆内的点的数目的计数变量。在所有随机点都被投入之后,圆内的点数除以总点数(该研究中为 250,000)的值就代表在正方形内圆的面积所占的分数。该正方形的边长是圆的半径的两倍,因此正方形的面积是 4r²,其中 r 是圆的半径。用 4r²乘之前得到的分数,就得到了圆的面积。通过蒙特卡罗方法,可以非常接近地得到圆的真实面积而无需数学计算公式。 道理很简单,结果几乎完全正确! 我们可以在给定半径 r 的情况下找到任何圆的面积,但此时此刻我们还没有归纳出圆的公式。为找到公式,我们需要创建一个二次方程式进行建模,该方程式需要一个半径并尝试输出面积。为了正确地拟合方程,我们必须为每个半径的蒙特卡洛近似面积收集数据。 import numpy as np from tqdm import tqdm #Just a progress bar indicator #Number of randomized points to generate for each approximation num_points = 250_000 #Lists to store the radius and its corresponding area approximation radii = [] areas = [] #For each of the 500 equally spaced values between 1 and 100 inclusive: for radius in tqdm(np.linspace(1,100,500)): #A counter for the number of points in the circle in_circle = 0 for i in range(num_points): #Generate an x and y coordinate from a uniform distribution bounded by a tangent box xcoor = np.random.uniform(-radius,radius) ycoor = np.random.uniform(-radius,radius) #If the point is inside the circle, add one to in_circle if xcoor**2 + ycoor**2 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |