不用任何數學方法,如何計算圓面積

2020-12-25 澎湃新聞

機器之心

選自medium

作者:Andre Ye

機器之心編譯

機器之心編輯部

殺雞用牛刀,我們用機器學習方法來算圓的面積。

詢問任何人圓的面積是多少,他們都會告訴你不就是��r⊃2;嗎。但如果你問他們為什麼,他們很可能並不知道。

這是因為圓的面積公式的證明在大多數情況下要麼不直觀,不令人滿意,要麼充斥著積分等高級數學概念。

借鑑統計學習和機器學習的核心原理,我們可以使用蒙特卡羅模擬和多項式/二次回歸來創建基於計算的方法,以找到圓的面積公式。

在不使用任何數學運算的情況下得出圓的面積,我們使用了蒙特卡羅方法。從探索不規則形狀的面積到預測股票市場的情況,都用到了蒙特卡羅方法。該方法的核心思想是引入隨機性,並測量系統對其作出的反饋,甚至可以在不了解系統原理的情況下獲得有效信息。

在使用蒙特卡羅來近似圓的面積時,我們先生成一些隨機坐標點 (x1,x2),這兩個方向的坐標都是從負半徑值到正半徑值的均勻分布繪製得到的。我們在圓中放入 250,000 個這樣的坐標點,如中心極限定理(或大數定律)所描述的,研究所用的真實隨機樣例點越多,得到的結果就會越準確。

對於圓內的每一個點,我們可以引入一個落入圓內的點的數目的計數變量。在所有隨機點都被投入之後,圓內的點數除以總點數(該研究中為 250,000)的值就代表在正方形內圓的面積所佔的分數。該正方形的邊長是圓的半徑的兩倍,因此正方形的面積是 4r⊃2;,其中 r 是圓的半徑。用 4r⊃2;乘之前得到的分數,就得到了圓的面積。通過蒙特卡羅方法,可以非常接近地得到圓的真實面積而無需數學計算公式。

道理很簡單,結果幾乎完全正確!

我們可以在給定半徑 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 < radius**2:

in_circle += 1

#Get the fraction of the points that were inside the circle

area_frac = in_circle/num_points

#Append the approximated area and the radius

areas.append(area_frac*(4*(radius**2)))

radii.append(radius)

而下一步就是寫一個擬合數據的二次項模型(回歸模型),y =ax⊃2;。我們可以通過繪圖驗證數據為二次項,而不是三階或四階多項式。從本質上講,這是一個基礎的機器學習問題,因此再回顧一些基本術語:

模型參數:模型進行自動調整從而找到最佳參數,在這種情況下,參數為 a。如果具有 n 個參數,則該模型被稱為 n 維。我們所使用的最基本模型是一維的,而對圖像進行分類的深度神經網絡有可能具有數百萬個維度。

損失函數:損失函數是對當下模擬情況進行評估,並希望找到可以得到最低誤差度的參數集,從而使得損失函數最小化。比如某個參數值 j 的損失函數值為 3,而參數值 k 的損失函數值為 2,則理應選擇參數值 k。

平均絕對誤差(MAE):我們將使用損失函數/錯誤度量,其原因是因為它易於使用且易於理解。給定當前參數(a)和模型預測值,而平均絕對誤差是指預測值與真實值之間平均相差有多大,較低的 MAE 意味著模型更適合數據。

學習率:為了優化參數,模型會在特定「方向」上逐漸調整參數。由於我們現在的模型僅優化一個參數(a),因此僅需決定在一維平面上是增大或是減小參數值(任何變化都會產生較低的損失函數)。而模型在調整過程中的移動量稱為學習率。較高的學習速度意味著模型有可能短時間內就能得到一組效果較好的參數,但無法保證其準確度,而較低的學習率能夠獲得非常不錯的參數,並且擁有較高的準確度,唯一一點是需要大量的訓練時間。

有了這些變量,我們可以構建一個非常基礎簡單的程序,使得它對這些數據擬合:

把參數 coef(a)初始化為 0.1。

對於訓練周期中的每次迭代:

對 coef 提出兩條路徑;coef+lr 和 coef-lr,其中 lr 是學習率。

對使用 coef=coef+lr 的模型和使用 coef=coef-lr 的模型評估平均絕對誤差。

將 coef 設置為等於 coef+lr 和 coef-lr 中平均絕對誤差值較小的那個數字。

通過對平均絕對誤差的反覆優化,模型最終將收斂出一個「最佳」的 coef 值(從而最大程度地降低平均絕對誤差)。這一思路正是機器學習的核心原理——通過反覆地推斷、評估和修正,計算機可以「磨鍊」出一套最優的參數。

coef = 0.1 #Initial coefficient value

learning_rate = 0.00001 #How fast the model 'learns'

iterations = 100000 #How many times we want the model to 'practice and correct'

for i in tqdm(range(iterations)): #note - tqdm is just a progressbar

#Propose two path for the coefficient:

up_coef = coef + learning_rate #Move up

down_coef = coef - learning_rate #Or move down

#Store the predictions for a model using parameters up_coef and down_coef

up_pred = []

down_pred = []

#For each radius value in the previously created list radii:

for r in radii:

#Append the model using up_coef's and down_coef's prediction (a*r^2)

up_pred.append(up_coef*(r**2))

down_pred.append(down_coef*(r**2))

#Find the MAE. Both are converted to NumPy arrays for easy operation.

up_coef_mae = np.abs(np.array([up_pred])-np.array([areas])).mean()

down_coef_mae = np.abs(np.array([down_pred])-np.array([areas])).mean()

#If moving the coefficient down yields a lower (better) MAE:

if down_coef_mae < up_coef_mae:

#Set it equal to down_coef

coef = down_coef

#Otherwise (moving the coefficient up yields a lower (better) or equal MAE:

else:

#Set it equal to up_coef

coef = up_coef

當我們查看訓練的 coef 值時,可以看到它等於π:

print(str(coef)[:5]) #first four digits of coefficient (decimal point counts as a character)

[Output]: '3.141'

當然,計算圓面積的公式很好記就是��r⊃2;。無需使用微積分中的任何複雜的數學方法或其他證明,我們就能找到它的公式,並找到一種使用蒙特卡洛模擬和二次回歸找到��值的方法。使用這種思路就可以找到計算圓面積的方法——當然也可以找到任何圖形的面積計算公式——橢圓、心形、二維的烏龜形狀——只要參數可以說明它的輪廓。

近年來,計算機已經接手開始解決複雜的高可變數學問題,計算圓面積只是其中的一個簡單的示例。如果想要更複雜、更具開創性的,那當然是四色定理了(每個無外飛地的地圖都可以用不多於四種顏色來染色,且不會有兩個鄰接的區域顏色相同)。這是第一個由計算機先生成證明,又被數學家廣泛接受的成果。

藉助計算機,人類可以探索以往無法嘗試進入的,極其複雜的數學領域。

原文連結:https://medium.com/swlh/finding-the-formula-for-circle-area-without-using-any-math-898cbee70253

機器之心聯合 AWS 開設線上公開課,通過 6 次直播課程幫助大家熟悉 Amazon SageMaker 各項組件的使用方法,輕鬆玩轉機器學習。

6 月 2 日 20:00,AWS解決方案架構師尹振宇將帶來第 3 課,詳解如何利用SageMaker Operator簡化Kubernetes 上的機器學習任務管理。

點擊閱讀原文或識別二維碼,立即預約直播。

閱讀原文

原標題:《不用任何數學方法,如何計算圓面積》

閱讀原文

相關焦點

  • 不用微積分,如何計算圓面積
    詢問任何人圓的面積是多少,他們都會告訴你不就是r嗎。但如果你問他們為什麼,他們很可能並不知道。這是因為圓的面積公式的證明在大多數情況下要麼不直觀,不令人滿意,要麼充斥著積分等高級數學概念。借鑑統計學習和機器學習的核心原理,我們可以使用蒙特卡羅模擬和多項式/二次回歸來創建基於計算的方法,以找到圓的面積公式。在不使用任何數學運算的情況下得出圓的面積,我們使用了蒙特卡羅方法。從探索不規則形狀的面積到預測股票市場的情況,都用到了蒙特卡羅方法。
  • 一位數學老師的教學方法:如何推導圓的面積計算?
    圓也是最常見的平面圖形,它是最簡單的曲線圖形。俗話說「溫故而知新」,在學習新知之前,引導學生回憶以前探究長方形、平行四邊形、三角形、梯形面積公式的推導方法,引導學生發現「轉化」是探究新的數學知識、解決數學問題的好方法,為下方探究圓的面積計算的方法奠定基礎。
  • python由圓半徑計算圓的周長和面積
    前言提到圓,大家一定會首先想到大鋼鏰兒上面的一圓的圓,因為大家都是財迷。這裡我們所說的圓是指圓形的圓,哈哈不過大鋼鏰兒也是圓形的。要計算圓的周長和面積,自然而然就要用到圓周率π,在我國,祖衝之在劉徽開創的探索圓周率的精確方法的基礎上,首次將「圓周率」精算到小數第七位,即在3.1415926和3.1415927之間,他提出的「祖率」對數學的研究有重大貢獻。直到16世紀,阿拉伯數學家阿爾·卡西才打破了這一紀錄。
  • 優秀數學教案模板《圓的面積》
    二、教學重、難點【重點】圓面積的計算公式的推導與計算。【難點】利用已有知識並結合滲透「極限」的思想推導圓的面積計算公式。引導學生思考,等學生想出要知道圓桌面的面積就可以知道至少需要多少布的時候,再次引導想要知道圓桌桌面的面積就需要知道?圓的面積的計算公式,那我們這節課就來一起探究一下圓的面試如何求。(二)探索新知1.推導圓面積的計算公式。
  • 《圓的面積》
    探究圓的周長時,則可讓學生採用圍一圍、滾一滾的方法先測量出周長,在此基礎上引導學生探究周長與直徑之間的關係。探索圓的面積時,可指導學生將把圓分成若干等份的小紙片拼一拼,從而「化曲為直」,再通過觀察、對比、推理,得出圓的面積計算公式。
  • 與圓有關的計算,圓的陰影部分面積計算,學生:求心理陰影面積
    圓的陰影部分面積,在中考中屬於計算類題目,一般都是計算不規則圖形的陰影部分面積,我們常用規則圖形的面積作減法來計算,這裡我們需要知道扇形的面積計算公式和一些其它圖形的面積公式計算例一:>連接BC,OB,我們計算陰影部分的面積,就可以當作三角形BCE的面積減去拱形BC的面積,即BCE-(扇形OBC-OBC)例二:求陰影部分面積有時候輔助線很重要例三:例四:利用弧長公式計算
  • 小學數學《圓的面積》說課稿及教學教案設計模板
    教學重點:理解和掌握圓的面積計算公式。教學難點:經歷圓的面積公式的推導過程,把圓轉化成近似的長方形,然後由長方形的面積計算公式得出圓的面積計算公式。說教學對象:把未知的問題轉化成已知的問題,是常用的數學思想和方法。
  • 北師大版六年級數學上冊圓面積的計算,圓環的面積。值得一看
    上一篇主要講了圓的認識和圓的周長的計算,主要用到的公式有:r=d÷2 d=2rC=2πr或者C=πdd=C÷π r=C÷π÷2這一節內容我們講的內容有三個:①圓的面積的推導過程和面積公式我們把圓先沿著任意一條直徑剪成兩個半圓,然後把每個半圓都平均分成相等的份數,最後把兩個半圓拼起來,拼成了一個長方形。
  • 計算陰影部分的面積,李明用的是圓減去兩個三角形,你用的是什麼
    題中圖形只標出了一個數字12,其餘沒有任何提示和標註。仔細觀察陰影部分是四個相連的不規則圖形,無法直接計算。此時,思考間接計算的方法,比如,前面文章裡我們一起學過的圖形面積相減法。在我們班上,李明同學掌握這種方法進行計算是運用的最好的,每次都得滿分,他的數學成績總是讓所有同學都羨慕不已。下面我們就一起來看看他的答題過程吧。
  • 小升初數學與圓有關的組合圖形陰影部分面積的計算,總結很全面
    與圓有關的圖形陰影部分面積的計算是小升初的一大難點,很多人學到這部分的時候總感覺學習的圓的面積計算公式,扇形面積的計算都還算順利,但是一遇到不規則圖形幾組合圖形時總感覺力不從心,其實這部分的面積計算需要同學們掌握一定的技巧和方法,並不是死記硬背公式就能解決得了的。
  • 數學教案 | 小學《圓的面積》教案設計
    知識與技能:通過操作,引導學生推導出圓面積的計算公式,並能運用公式解答一些簡單的實際問題。2. 過程與方法:激發學生參與整個課堂教學活動的學習興趣, 培養學生的分析、觀察和概括能力,發展學生的空間觀念。3.
  • 巧求與圓有關的面積問題,老師再也不用擔心我的學習
    我們閩南語有句俗語:會不會讀看英語,會不會學看數學。因為數學的學習是比較靈活的,題目是千變萬化的,所以如果死讀書,那一定會把數學讀死的。今天鄭老師就教大家一起如何來巧求與圓有關的面積問題,學會後老師再也不用擔心你的學習啦!
  • 初三數學《圓》——弧長和扇形面積
    圓弧長和扇形面積——Tony大師兄 一.課堂學習   二.綜合拓廣  學習目標:【知識與技能】1、理解並掌握弧長及扇形面積的計算公式2、會利用弧長、扇形面積計算公式計算簡單組合圖形的周長【過程與方法】1、認識扇形,會計算弧長和扇形的面積2、通過弧長和扇形面積的發現與推導,培養學生運用已有知識探究問題獲得新知識的能力【情感、態度與價值觀】1、通過對弧長及扇形的面積公式的推導
  • 圓的弧長與扇形面積,陰影部分面積計算題,老師:用割補法計算
    圓的弧長與陰影部分面積的計算是中考數學計算中的一種填空題類型,難度倒也不大,話說中考數學也不一定全都是考的超難的也有基礎題目,今天為大家整理一些圓陰影部分面積計算的習題例題一:圓錐的側面展開圖其實就是扇形的面積
  • 2019年小升初數學試卷預測題,計算陰影部分的面積,重點在半徑
    試題是要我們計算圖中陰影部分的面積。陰影部分的面積是一個不規則圖形,直接是計算不出來的。那麼,我們應該通過什麼方法來計算陰影部分的面積呢?對於這樣的數學題,很多同學都覺得很難,一是覺得陰影部分的面積很難計算,二是在心理上就是覺得幾何題很難。通過觀察上圖後,你覺得這題難不難?我覺得這題挺簡單的,方法如下:
  • 中考數學診斷,圓的弧長與扇形面積,用割補法計算陰影的技巧
    上一篇文章大概寫了一下圓的切線證明的問題,圓的問題在選擇和判斷題中還有一種類型那就是計算陰影部分的面積,我們除了要記憶幾個公式外還要學會用割補法來計算陰影部分的面積01圓的弧長和扇形面積計算還有圓的周長和面積公式都共同用來計算弧長和扇形面積類的題目例一:直接套用公式計算類型直接套用扇形面積計算公式計算就可以了
  • 圓的周長和面積的巧妙計算
    本單元主要是圓的周長和面積的相關計算,孩子們主要是在計算上面容易出錯,而導致題目失分。
  • 2018中考數學知識點:圓的計算公式
    新一輪中考複習備考周期正式開始,中考網為各位初三考生整理了各學科的複習攻略,主要包括中考必考點、中考常考知識點、各科複習方法、考試答題技巧等內容,幫助各位考生梳理知識脈絡,理清做題思路,希望各位考生可以在考試中取得優異成績!下面是《2018中考數學知識點:圓的計算公式》,僅供參考!
  • 初三數學《圓》——圓錐的側面積和全面積
    圓圓錐的側面積和全面積——Tony大師兄 一.課堂學習   二.綜合拓廣  學習目標:>【知識與技能】通過實驗使學生知道圓錐側面展開圖是扇形,知道圓錐各部分的名稱,能夠計算圓錐側面積和全面積【過程與方法】通過做圓錐和展開圓錐,觀察分析圓錐的側面展開圖——扇形,再通過由扇形做成圓錐,理解圓錐與扇形及圓之間的關係,進一步體會數學中的轉化思想,培養學生動手操作能力和分析問題解決問題的能力。
  • 六年級數學 第5單元 第 4、5 課時 圓的面積
    教學目標1.使學生理解圓的面積的含義,理解圓面積計算公式的推導過程,掌握圓面積的計算公式。2.培養學生動手操作、抽象概括的能力,運用所學知識解決簡單實際問題。3.滲透轉化的數學思想。重點:圓的面積計算公式的推導與應用。