APP下载

基于蒙特卡罗法的图形面积估算

2020-09-22张丽娜黄有新袁媛崔平曾嘉健

软件工程 2020年9期
关键词:定积分深度学习

张丽娜 黄有新 袁媛 崔平 曾嘉健

摘  要:针对面积估算普遍存在于工程计算当中,工作量大,计算复杂的实际情况,开展了基于计算机高级语言课程的面积估算研究,以蒙特卡罗抛洒法估算图形面积实现层次分明的定积分计算,有效解决了面积估算过程中计算的复杂度,引领学生产生高成就感的深度学习行为,训练了计算思维能力。

关键词:蒙特卡罗方法;深度学习;计算机高级语言;定积分

中图分类号:TP311.1     文献标识码:A

Graph Area Estimation based on Monte Carlo Method

ZHANG Lina,HUANG Youxin,YUAN Yuan,CUI Ping,ZENG Jiajian

(1.Xuzhou University of Technology, Xuzhou 221000, China;

2.Jiangsu Xuzhou Higher Vocational School of Economics & Trading, Xuzhou 221000, China)

zlnzxy@126.com; 357888316@qq.com; 358919180@qq.com;

1659089277@qq.com; 714261756@qq.com

Abstract: Aiming at the heavy workload and complex calculation in Area estimation which is commonly used in engineering calculation, this paper conducts an area estimation research based on computer advanced language course. Monte Carlo scattering method is used to estimate the graph area, and the hierarchical definite integral calculation is realized. This method effectively solves the problem of calculation complexity in the area estimation process, leading students to carry out in-depth learning with high sense of achievement and train themselves the ability of computational thinking.

Keywords: Monte Carlo method; in-depth learning; graph area estimation; definite integral

1   引言(Introduction)

為了防止讲授知识变得空洞死板,保证学生的深度学习、培养学生的计算思维能力、确保学生的中心地位,进行教学案例的选择与设计,在具体教育情境中设置理论应用的描述,展开讨论具体案例情境下的问题解决的实施方案[1]。托尔(Towl.A.R.)曾指出:“一个出色的案例,是教师与学生就某一具体事实相互作用的工具;一个出色的案例,是以实际生活情景中肯定会出现的事实为基础所展开的课堂讨论”。

土木工程量计算应用中,常用到求建筑物截面面积,进而对土方、石方计算工程量,Python程序设计可以在不规则图形上计算出其面积,实现建筑物截面计算。为此选择了大一学生正在学习的定积分求面积,开展基于蒙特卡罗方法的Python程序设计,辅以腾讯课堂直播加QQ群讨论授课模式,选择超星学习通平台提交实验作业检验应用成果。

2   蒙特卡罗方法介绍(Introduction of Monte Carlo method)

蒙特卡罗方法起源于1777年法国数学家布丰(Georges Louis Leclere de Buffon)提出的利用投针实验的方法求圆周率π。蒙特卡罗法在解决工程应用实际问题的时候主要有两部分工作:

(1)用蒙特·卡罗方法抽象出工程计算的概率模型,设计出随机变量以展现模型概率分布情况。

(2)用统计学方法估计出概率模型的数字特征,量化计算出实际问题的数值解。

利用蒙特卡罗方法概率估算特点,对复杂不规则几何形状面积进行估算过程中,能够将有效面积的计算转换成概率问题求解,从而忽略图形的复杂度。概率意义下的收敛,可以节约计算成本,降低解决面积估算过程中程序设计的空间复杂度,因而此方法在处理大型高复杂度图形面积计算问题时具有强有力的优势。在电子计算机快速发展和科学技术工程计算应用日趋复杂的具体情境下,蒙特卡罗方法的应用日趋普遍。因此案例教学设计选择了随机抛点求几何图形面积的学习活动,能够促使学生用计算思维方式解决问题,有针对性地设计出层次渐变的定积分计算的学习任务,进行有效地课程学习规划,培养学生在具体应用情境下独立运用高级语言Python程序设计的能力,达到训练计算思维,培养工程应用中解决实际问题的能力。

3  定积分计算教学设计(Teaching design of definite integral calculation)

在计算思维教育理念的指导下,培养学生形成一种计算思维习惯,并且学会在利用计算机工程应用过程中,像计算机科学家一样思考分析和解决问题[2],疫情下的网络授课给了实践这一教学目标一个契机。

由于定积分方便检验计算结果,图形的运动轨迹表达式能够构造出复杂不规则图形,又由于定积分本身具有求图形面积的几何意义,所以在找寻拓展蒙特卡罗法计算不规则图形面积的时候,引入了定积分的计算作为案例应用来检验蒙特卡罗法估算图形面积。

设置课前自主学习任务单:计算定积分;;。案例设置考虑了在积分表达式选择上从单项式到多项式,从积分区域上从单位区间扩展到复杂数据区间。

引入Python的random库当中随机函数产生抛洒点的随机坐标值(x,y),其中用到的函数及特点如表1所示。

4  案例驱动深度学习行为发生(Deep learning driven by cases)

在程序设计制作案例时,设置面向具体而复杂的现实世界抽象出信息处理的概念,基于概念来分析、综合和演绎实际问题,定积分计算案例是选择模拟工程应用中建筑物剖面计算情况展开设计,学生展现出创作过程中的深度思考过程,在整堂课上,每一个个体都需要贡献自己的智慧,没有旁观者,只有参与者,利用计算机进行面积估算,将设计思路用高级语言Python表达出来,展现出将抽象概念和解决问题的方法變成实现程序可操作具体步骤的能力,将浅层次的学习转变成深度思考的学习过程[3,4],以下论述案例解决的不同展现形式。

设计了如图1所示的曲线图形,几何表达为阴影部分面积,这正是定积分的几何意义,利用蒙特卡罗法进行概率抽象,Python程序设计的学生答案表现形式如下:

表达方式一:

from random import random

from time import perf_counter

DARTS = 1000*1000*10

hits = 0.0

start = perf_counter( )

for i in range(1, DARTS+1) :

x,y = random(),random()

if pow(y,2)

hits=hits+1

s = hits/DARTS

print("面积是: {}" .format(s))

print("运行时间是: {}" .format(perf_counter()-start))

表达方式二:

from random import random

darts=1000*1000

hits=0.0

for i in range(1,darts+1):

x,y=random(),random()

if y<=x**3:

hits+=1

S=hits/darts

print("所求面积为{}".format(S))

(a)表达方式一运行结果

(b)表达方式二运行结果

图2是由以上两种表达设计的Python程序运行实验结果的对比展示,验证了多种表达方式下图形面积蒙特卡罗估算与数学计算定积分结果一致。进而,图形构造上升为两条函数表达式构造几何图形,如图3定积分图形几何意义所示。

图3 第一象限两条函数曲线定积分图形表示

Fig.3 Graphic representation of definite integral of

two function curves in the first quadrant

from random import random

from time import perf_counter

DARTS = 1000*1000*10

hits = 0.0

start = perf_counter( )

for i in range(1, DARTS+1) :

x,y = random(),random()

if pow(y,2)

hits=hits+1

s = hits/DARTS

print("面积是: {}" .format(s))

print("运行时间是: {}" .format(perf_counter()-start))

图4展示了蒙特卡罗估算Python程序运行结果非常接近数学计算定积分,最后从单位面积区域拓展到一四象限,概率统计结合整体区域估算图形面积模拟计算,如图5所示定积分。

表达方式一:

from random import random

from time import perf_counter

DARTS = 1000*10

hits = 0.0

start = perf_counter( )

for i in range(1, DARTS+1) :

x=8*random()

y=6*random()-2

if pow(y,2)/2

hits=hits+1

s = (hits/DARTS)*48.0

print("面积是: {}" .format(s))

print("运行时间是: {}" .format(perf_counter()-start))

换种积分角度,以X轴将图形划分成两部分,上方击中用pos+1表示与下方击中表示成neg+1的表达方式二:

from random import uniform

darts=1000*1000

pos=0.0

neg=0.0

for i in range(1,darts+1):

x,y=uniform(0,8),uniform(-2,4)

if y>=0 and y>=x-4 and y<=(2*x)**0.5:

pos+=1

elif y<0 and y>=x-4 and y>=-(2*x)**0.5:

neg+=1

S=48*(pos+neg)/darts

print("所求面積为{}".format(S))

两种表达的Python程序运行结果对比如图6所示验证了蒙特卡罗估算结果与定积分=18结果非常接近。

(a)表达方式一运行结果

(b)表达方式二运行结果

5  立体交流互动的网络课堂(Three dimensional interactive network classroom)

浅层学习阶段是能够对知识进行简单的描述,停留在学习认知领域中的“知道、理解”层次;而深度学习是对知识在具体情境下的应用,能够利用所学知识解决具体情境中的问题,并且能加以创新或者改进,因而深度学习特点在于所学知识的应用和具体情境下实际问题的解决[4]。在针对具体应用设置的案例驱动下的学习是积极主动的,学生处于活跃开放的思维状态,利用腾讯课堂与群分享开展的网络教学活动,设计选择面积估算案例引导学生从问题出发,借助课堂学习到的蒙特卡罗方法应用到问题解决中来,促进深度学习行为产生,让学生在程序设计中找到利用计算机解决具体面积估算问题的成就感。

在当前的网络授课模式下,线上分享自己成果,充分发挥了教学立体交流互动和学习资源共享[5],学生线上课程参与度比传统线下实体课堂要高[6],立体交流图片如图7所示。

(a)腾讯课堂交互情况图

(b)QQ群分享屏幕交互情况图

6   结论(Conclusion)

由于有了基于蒙特卡罗法设置的案例驱动,高级语言程序设计课程可以通过网络课程的组织形式,引导学生从把握算法特点和基本概念的浅层学习,转变成利用知识特点创编优秀的高效程序设计的深度学习,把传统的单纯学习知识变成在学习知识的基础上,通过创作产生深度学习行为,从而在学生们知识结构体系中播下了计算思维的种子。鼓励和引导学生到自身专业领域寻求创作解决实际问题编程思考中去,进而理解高级语言程序设计的精髓,实现对线下课堂学习的超越,这样组织的网络课堂才能够真正扎实、高效。

参考文献(References)

[1] 沈贵庆.大数据分析在高校智慧教育中的应用研究[J].现代电子技术,2019,42(04):97-100.

[2] Jeannette M.Wing.Computational thinking[J].Communications of the ACM,2006,49(3):33-35.

[3] 嵩天,礼欣,黄天羽.Python语言程序设计基础[M].北京:高等教育出版社,2017.

[4] 刘哲雨,王志军.行为投入影响深度学习的实证探究:以虚拟现实(VR)环境下的视频学习为例[J].远程教育杂志,2017(1):72-81.

[5] 梁云真,赵呈领,阮玉娇,等.网络学习空间中交互行为的实证研究——基于社会网络分析的视角[J].中国电化教育,2016(7):22-28.

[6] Myers S A, Claus C J. The Relationship Between Students' Motives to Communicate. With Their Instructors and classroom Environment[J]. Communication Quarterly, 2012, 60(3): 386-402.

作者简介:

张丽娜(1978-),女,硕士,讲师.研究领域:数据挖掘,深度学习.

黄有新(1972-),男,本科,副教授.研究领域:深度学习,英语翻译,计算机英语.

袁  媛(1979-),女,硕士,讲师.研究领域:深度学习,大数据.

崔  平(1979-),女,硕士,实验师.研究领域:计算机网络,实验室管理.

曾嘉健(2001-),男,本科生.研究领域:工程计算,程序设计.

猜你喜欢

定积分深度学习
有体验的学习才是有意义的学习
电子商务中基于深度学习的虚假交易识别研究
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望
深度学习算法应用于岩石图像处理的可行性研究
无穷和式极限解法之我见
微课程在高等数学中的辅助作用
定积分换元法的一点教学体会
三重积分的计算方法