浅议Python在数学建模中的应用

发表时间:2021/7/13   来源:《中国教师》2021年第8期   作者:宋静静
[导读] 在计算机技术迅速发展的今天,计算和建模更成了数学向科学技术转化的主要途径。

        宋静静
        火箭军士官学校(262500)
        摘  要:在计算机技术迅速发展的今天,计算和建模更成了数学向科学技术转化的主要途径。数学建模是联系数学和实际问题的桥梁,是数学在各个领域广泛应用的具体实现。Python语言在数据分析和交互、探索性计算以及数据可视化等方面有十分的优势,这恰好解决了在建模中的数据分析与优化模型。
        关键词:Python  数学建模  数据处理
        在科学和技术发展的过程中,人们用建立数学模型的办法解决需要寻求数量规律的现实问题,取得了许多成果。在计算机技术迅速发展的今天,计算和建模更成了数学向科学技术转化的主要途径。数学建模是联系数学和实际问题的桥梁,是数学在各个领域广泛应用的具体实现。数学建模在科学技术发展中的重要作用受到了人们的普遍重视,成为促进教学的一种方式。
        用数学建模来解决实际问题,不仅要对实际问题有深刻的理解,能建立起合适的数学模型,还依赖于对模型进行求解的计算技术。对于大型复杂的数据分析与数据优化模型,往往由于变量数目大、约束条件类型众多或形式复杂,使得模型的求解需要花费大量的时间和精力,而Python语言的应用能够使人们从繁重的工作中解放出来。
         一、Python语言处理数据的优点
        (一)简单易学
        Python语法简单,代码容易读写,最适合刚刚入门的学生去学习。在处理数据的时候,一般都希望数据能够转化成可运算的数字形式,这样,不管是没学过编程的还是学过编程的都能够看懂这个数据。Python在数据分析和交互、探索计算以及数据可视化等方面都显得比较活跃,这就是Python作为数据分析的原因之一,Python拥有很多库,这在处理数据方面有着无与伦比的优势。
        (二)强大的编程能力
        Python有非常强大的编程能力、数据分析能力,利用它可进行爬虫、写游戏、开发软件等,这些优点就使得一种技术去解决所有的业务服务问题,充分体现了Python有利于各个业务之间的融合,使用Python处理数据,能够大大的提高工作效率。
         二、Python语言在数学建模中应用的意义
        (一)有利于解决较为复杂的问题
        由于数学课程本身具备了较强的逻辑性,这就使得学员在学习过程中常常感到力不从心,尤其是对复杂函数应用的思考,学员很难找到有效的解题思路,从而浪费了课堂的大量时间。而借助Python语言来实施数学建模,将涉及到的条件输入,可在很短的时间内构建出学员所需要的图像与模型,从而对学员的学习起到了积极作用。
        (二)有利于提高学员的综合素养
        在利用Python构建数学模型的过程中,不但要求学员对数学知识有一定的了解,还必须掌握相应的计算机技术,能够熟练Python语言的操作,因此有利于提升学员的综合素养。
        (三)有利于强化学员对数学知识的认知
        数学建模需借助于计算机技术,学员首先要对题干进行逐层分析,找准其中的关键点以及变量,并用已知条件来确定建模的策略,从而找到构建数学模型的基本方法,而不盲目地乱建。这就要求学员对已有的数学知识有着一定的理解,并通过构建出来的模型进行分析,也能达到强化认知的目的。
         三、Python语言在数学建模中的应用
        (一)求定积分
        例:用梯形公式求定积分的数值解。
        求解的程序代码为:
        import numpy as np
        from scipy.integrate import quad
        def trapezoid(f,n,a,b):
            xi=np.linspace(a,b,n)
            h=(b-a)/(n-1)
            return h*(np.sum(f(xi))-f(a)+f(b)/2)
        a=0
        b=1
        n=1000
        f=lambda x:np.cos(np.sqrt(np.sin(x**2)+2*x))
        print("梯形积分=",trapezoid(f,n,a,b))
        运行结果为:梯形积分=0.4382255125903427
        (二)求微分方程
        在实际问题中经常需要寻求某个变量y随另一变量x的变化规律y=y(x),这个函数关系式常常不能直接求出。但是容易建立包含变量及导数在内的关系式,也就是建立微分方程,通过求解微分方程对问题进行解释说明。
        例:求微分方程,且y(1)=3,在1<x<10步长间隔为0.5点上的数值解。
        求解的程序代码为:
        from scipy.integrate import odeint
        from numpy import arange
        dy=lambda y,x:-2*y++x**3+x**2+2*x
        x=arange(1,10,0.5)
        sol=odeint(dy,3,x)
        print("x={}\n对应的数值解y={}",format(x,sol.T))
        (三)求最小费用流问题
        在很多的实际问题中,往往需要考虑网络上流的费用问题。例如,在运算过程中,我们总是希望在完成运算任务的同时,寻求一个总费用最小的运输方案。
        例:如下图带有运费的网络,求从Vs到Vt的最小费用最大流。

        求解的程序代码为:
        import numpy as np
        import networkx as nx
        L=[(1,2,5,1),(1,3,3,2),(2,4,3,7),(3,2,1,5),(3,5,2,4),(4,5,2,1),(4,6,6,7),(5,6,5,4)]
        G=nx.DiGraph
        for k in range(len(L)):
               G.add_edge(L[k][0]-1,L[k][1]-1,capacity=L[k][2],weight=L[k][3])
        mincostFlow=nx.max_flow_min_cost(G,0,5)
        print("路径为:",mincostFlow)
        mincost=nx.cost_of_flow(G,mincostFlow)
        print("最小费用为:",mincost)
        利用Python语言进行数学建模的构建,能够帮助学员更加直观地认识题目的本质,有助于提高解题的效率,并深化对数学知识的理解,能够改善学员解决问题的能力。但是要注意,在数学学习的过程中,学员不能过度依赖于计算机技术解决问题,对于模型简单的题目要动手解决,能更好地理解相关知识。
       
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: