书签 分享 收藏 举报 版权申诉 / 19
上传文档赚钱

类型人工智能原理与实践:基于Python语言和TensorFlow-第10章-偏微分方程模拟仿真课件.pptx

  • 上传人(卖家):三亚风情
  • 文档编号:3363081
  • 上传时间:2022-08-23
  • 格式:PPTX
  • 页数:19
  • 大小:1.56MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《人工智能原理与实践:基于Python语言和TensorFlow-第10章-偏微分方程模拟仿真课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    人工智能 原理 实践 基于 Python 语言 TensorFlow 10 微分方程 模拟 仿真 课件
    资源描述:

    1、人工智能原理:基于Python语言和TensorFlow第10章 偏微分方程模拟仿真1.计算函数的定义2.偏微分方程的定义3.仿真简介18世纪,瑞士数学家莱昂哈德欧拉(Leonhard EuLer)在与其他数学家解决物理问题的过程中,创立了微分方程这门学科。常见的微分方程有常微分方程、偏微分方程等,其中,常微分方程是指解得的未知函数是一元函数的微分方程,即一个量随一个自变量变化的规律,比如我们常见到的行驶中的车辆位置会随着时间变化而规律运动;偏微分方程是指解得的未知函数是多元函数的微分方程,即一个量随两个或多个自变量变化的规律,它比常微分方程更复杂一些,不仅仅在于自变量的增多,还因为各个自变量

    2、之间会有耦合,比如温度会随着时间的变化而在不同位置上有不同的数值表现,与此同时,温度随位置的变化也会因为时间的不同而在数值上有所变化,生活中的天气预报,就是通过计算机来对偏微分方程进行求解而得到的。简介偏微分方程关于纯数学研究的第一篇论文是欧拉所写的方程的积分法研究,在此之后,法国数学家达朗贝尔(Jean Le Rond dALembert)也在他的著作动力学和论文张紧的弦振动时形成的曲线的研究中提出了关于偏微分方程的内容,从而最终开创了偏微分方程这门学科。19世纪是偏微分方程迅速发展的时期,瑞士数学家丹尼尔伯努利(DanieL BernouLLi)、法国数学家约瑟夫拉格朗日(Joseph-L

    3、ouis Lagrange)、让巴普蒂斯约瑟夫傅里叶(Jean Baptiste Joseph Fourier)在各自研究领域的成果都对偏微分方程的发展产生了不同程度的影响。简介对于偏微分方程问题的讨论和解决,往往需要应用微分几何学、代数与拓扑学等其他数学分支的理论和方法。偏微分方程的解有无穷多个,但是解决具体的实际问题时,则需要从中选取出所需要的最适合的解,因此,一些必备的附加条件是必不可少的。偏微分方程属于同一类现象的共同规律的表示式,仅仅知道共同规律是无法掌握和了解具体问题的特殊性的,所以,针对不同的具体问题,它的特殊性就在于所处的不同环境的特定条件,即初始条件和边界条件,又被称为定解条

    4、件。定解条件反映出具体问题的个性和具体情况,定解条件和方程式的结合被称为定解问题。求偏微分方程的定解问题可以先求出它的通解,然后再用定解条件确定出函数。10.1 计算函数的定义首先,针对计算函数,先导入一些模拟仿真所必需的库文件,代码如下所示。*#导入模拟仿真需要的库import tensorfLow as tfimport numpy as np#导入可视化需要的库import PIL.Imagefrom cStringIO import StringIOfrom IPython.dispLay import cLear_output,Image,dispLay*10.1 计算函数的定义源程

    5、序代码内容中,通过使用import tensorfLow as tf和import numpy as np将模拟仿真中所需要的TensorFlow模块和NumPy模块进行导入;import PIL.Image代码中的图像处理类库(Python Imaging Library Python,PIL)提供了关于图像的最基本的处理及功能操作,如图像的旋转、裁剪、缩放、颜色的变化等。利用免费的图像处理类库中的各类函数,我们可以将数据从图像格式的文件中提取出来进行数据处理,然后再将处理之后的数据写入到指定的图像格式中,在图像处理类库的众多函数中,最重要的一个函数是Image函数。在代码内容中,from

    6、cStringIO import StringIO代码语句中的cStringIO和StringIO所代表的是两个不同功能的模块,这两个模块具有相似的功能操作。10.1 计算函数的定义其中,StringIO模块的功能和文件具有很高的相似性,它算是存在于内存中的一个文件,对StringIO模块进行操作的方法与我们对磁盘文件进行操作的方法相类似,即通过StringIO模块对内存文件进行读取和写入的操作;而cStringIO模块则与StringIO模块相类似,但是它又比StringIO模块更高效一些。原因是因为Python语言是一种动态的计算机编程语言,它可以进行解释性执行,如果想要针对Python程

    7、序代码的运行速度进行提高,可以通过使用C语言来对某些关键函数进行重写,通过这种方式可以提高整个Python程序代码的执行速度,而具体到cStringIO和StringIO这两个模块来讲,StringIO模块是使用纯Python代码编写的模块内容,而cStringIO模块中的部分函数则是使用C语言编写的,因此cStringIO模块运行速度会更高效。10.1 计算函数的定义针对池塘的表面状态,我们通过一些程序代码来进行相应操作的函数设定,代码如下所示。*def DispLayArray(a,fmt=jpeg,rng=0,1):DispLay an array as a picture.a=(a-r

    8、ng0)/fLoat(rng1-rng0)*255 a=np.uint8(np.cLip(a,0,255)f=StringIO()PIL.Image.fromarray(a).save(f,fmt)dispLay(Image(data=f.getvaLue()*10.1 计算函数的定义接下来,需要打开一个TensorFLow的交互式会话内容,来进行更加方便的效果演示。此外,将相关代码内容写入到Python编程语言的可执行文件中,这样能够在以后的操作中更加方便地进行调用,代码如下所示。*sess=tf.InteractiveSession()*10.1 计算函数的定义经过前面知识点的学习,我们已

    9、经知道了TensorFLow是基于图的计算系统,图的节点是由操作来构成的,而图的各个节点是由张量作为边来进行连接的,TensorFLow的图必须在一个Session操作中来进行计算,Session操作提供了代码执行和张量求值的环境。TensorFLow中的变量和操作定义好以后,由Session对象合成图形才会得到最终的结果图像,我们一般使用tf.Session()对象来进行相应的操作,但是Session的运行会涉及运算,比较消耗资源,因此在Session的运行操作结束以后,我们需要通过使用sess.cLose()语句来手动关闭Session操作。另外,对于Python原生编辑器或类似于Jupy

    10、ter这样的基于浏览器的Python编辑器来讲,运行时需要将程序代码一段一段地输入,于是,就出现了tf.InteractiveSession()这样的交互式Session。用来完成在图的运行过程中实现一些计算图的插入,这些计算图可以由某些操作构成。通过此种方式,可以提高交互式环境中工作的便利性,在构建交互式会话时,可以先构建一个Session,然后再定义一个操作,其目的是为了实现交互式环境下,手动设定当前Session为默认Session,从而避免掉了每次都要针对sess进行说明的繁琐过程,10.1 计算函数的定义代码如下所示。*def make_kerneL(a):Transform a 2

    11、D array into a convoLution kerneL a=np.asarray(a)a=a.reshape(List(a.shape)+1,1)return tf.constant(a,dtype=1)def simpLe_conv(x,k):A simpLified 2D convoLution operation x=tf.expand_dims(tf.expand_dims(x,0),-1)y=tf.nn.depthwise_conv2d(x,k,1,1,1,1,padding=SAME)return y0,:,:,0def LapLace(x):Compute the 2

    12、D LapLacian of an array LapLace_k=make_kerneL(0.5,1.0,0.5,1.0,-6.,1.0,0.5,1.0,0.5)return simpLe_conv(x,LapLace_k)*第10章 偏微分方程模拟仿真1.计算函数的定义2.偏微分方程的定义3.仿真10.2 偏微分方程的定义我们首先创建一个500500的方形池塘以及若干滴即将落入池塘中的雨滴,代码如下所示。*N=500#初始条件-一些雨滴落入池塘#设置变量为零u_init=np.zeros(N,N,dtype=fLoat32)ut_init=np.zeros(N,N,dtype=fLoat3

    13、2)#一些雨滴随机落入池塘中for n in range(40):a,b=np.random.randint(0,N,2)u_inita,b=np.random.uniform()DispLayArray(u_init,rng=-0.1,0.1)*10.2 偏微分方程的定义运行后,模拟图片如图所示。10.2 偏微分方程的定义下一步,针对微分方程的一些详细参数,进行制定,代码如下所示。*#参数:#eps 时间分辨率#damping 波阻尼eps=tf.pLacehoLder(tf.fLoat32,shape=()damping=tf.pLacehoLder(tf.fLoat32,shape=()

    14、#为模拟状态创建变量U =tf.VariabLe(u_init)Ut=tf.VariabLe(ut_init)#离散PDE更新规则U_=U+eps*UtUt_=Ut+eps*(LapLace(U)-damping*Ut)#更新状态的操作step=tf.group(U.assign(U_),Ut.assign(Ut_)*第10章 偏微分方程模拟仿真1.计算函数的定义2.偏微分方程的定义3.仿真10.3 仿真仿真过程中,加入for循环代码部分,来实现仿真效果的清晰化,代码如下所示。*#初始化状态到初始条件tf.initiaLize_aLL_variabLes().run()#Run 1000 steps of PDEfor i in range(1000):#步骤模拟 step.run(eps:0.03,damping:0.04)#VisuaLize every 50 steps if i%50=0:cLear_output()DispLayArray(U.evaL(),rng=-0.1,0.1)*10.3 仿真最终,形成雨滴落在池塘后掀起点点涟漪的图片内容,如图所示。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:人工智能原理与实践:基于Python语言和TensorFlow-第10章-偏微分方程模拟仿真课件.pptx
    链接地址:https://www.163wenku.com/p-3363081.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库