© 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
第 29卷增刊第 2期 河池学院学报 Vol. 29 Supp lementary Issue No. 2
2009年 8月 JOURNAL OF HECH IUN IVERSITY Aug. 2009
Mathemati ca软件在数学模型课程教学中的应用
邹永福 1, 2 , 夏文杰 2, 3
(1. 河池学院 数学系 , 广西 宜州 546300; 2. 中山大学 数计学院 , 广东 广州 510275;
3. 东莞理工学院 城市学院 , 广东 东莞 523106)
[摘 要 ] 利用 Mathematica软件在符号运算、数值计算、函数作图 ,以及快速美观的数学公式输入等方面的
强大功能 ,实现 Mathematica软件辅助数学模型课程教学。
[关键词 ] Mathematica软件 ;数学模型 ;线性规划 ;整数规划
[中图分类号 ] G642. 0 [文献标识码 ] A [文章编号 ] 1672 - 9021 (2009) S2 - 0093 - 03
[作者简介 ] 邹永福 (1979 - ) ,男 ,广西兴安人 ,河池学院数学系助教 ,中山大学数计学院在读硕士研究生 ,
主要研究方向 :模式识别、机器学习、数据挖掘。
数学模型课程是一门综合性强的课程 ,教学内容主要涉及优化问题模型 ,规划模型 ,微分方程模型等等 ,这些模型在教学
上通常需要运用图形 ,数据表等方式让学生发现其中的规律 ,并建立数学模型 ,然后再对模型进行数值求解或符号运算 ,最后
还要对问题作出合理解释。这一系列过程通过多媒体形式教学 ,不仅能让学生对教学内容印象深刻 ,同时也提高了他们解决
实际问题的能力。Mathematica软件恰恰能很好的实现这一系列过程 [ 1 ]。
因此 ,本文从数学模型教学过程中关于电子课件的制作 ,微分方程模型求解 ,规划及优化问题模型求解等方面的应用出
发 ,逐一讨论 ,最后实现利用 Mathematica软件进行数学模型课程的多媒体教学。
一、Mathematica软件简介
Mathematica是一款科学计算软件 ,自从 1988发布 1. 0版本开始逐步更新改进 ,直到 2008年发布了 7. 0版本 ,并且从 5. 0
版开始对中文有了较好的支持。Mathematica软件已深入数学、物理、化学、地理、工程和金融等许多学科领域 ,它不仅可以实
现强大的符号演算 ,还能进行代数式向量、矩阵的各种计算 ,可以实现具有任意位精度的数值 (实、复数值 )的计算。
图 1 数学模型课程电子教案制作
另外 ,使用 Mathematica可以快速方便地画出用各种
方式表示的一元和二元函数的图形。最新的 Mathemati2
ca7有了更多的改进 ,功能更加完善。
二、利用 Mathematica制作数学模型课
程电子教案
Mathematica具有世界上最先进和便捷的数学排版
技术 ,允许数学公式的二维输入 ,能够实现交互式和编程
式的任意复杂排版表达式的输入 ,因此可以将数学模型
课程的教学内容录入到 mathematica的笔记本文档中用
于教学演示。
Mathematica的笔记本文档由 Cell (元组 )组成 ,每个
元组既可以是一行语句 ,也可以是多行语句。当同时按
下 Shift + Enter键 ,就会执行当前光标所在元组的程序
内容。
如果元组中的内容不是可执行代码 ,是文档内容时 ,
可以通过修改该元组的默认格式 Input (输入 )为 Text文
字格式。这需要通过 Format菜单中的 Style子菜单的选项进行设置 ,图 1给出了某一节数学模型课程的演示内容的 Mathemat2
ica效果。
39
© 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
另外 ,在 Format格式菜单下的其他选项可以实现对选中的元组或文字进行修饰 ,见表 1。
在文档中还可以插入表格 ,图片 ,水平线等 ,菜单 Insert的部分子菜单及中文意义具体见表 2。
表 1 Format菜单下的部分选项及意义 表 2 Insert菜单下的部分选项及意义
选项名称 中文及表示的意义
Clear Formatting 清除格式
Op tion Inspector 选项设定
Stylesheet 表单样式
Screen Environment 屏幕环境
Edit Stylesheet 自定义表单样式
Font 文字的字体
Face 字体的样式
Size 文字的字号
Text Color 文字的颜色
Background Color 背景颜色
Text A lignment 文字对齐方式
选项名称 中文及表示的意义
Cell with Same Style 元组设置统一样式
Special Character 特殊字符
Color 颜色
Typesetting 文字输入设置 (如上下标 ,数学分式等 )
Table /Matrix 表格或矩阵式数据表
Horizontal L ines 水平分割线
File Path 文件路径
Picture 图片
File 文档
Object Active对象
Hyperlink 超链接
Mathematica的笔记本包含了超过 1 000多种格式和样式选项 ,可以直接从“Format”菜单中选择 ,也可以在相关函数的程
序中设置 ,这些格式和样式会给制作美观的数学模型课程电子教案带来很大的帮助。
三、Mathematica求解微分方程模型
在 Mathematica中 ,包含了求解数值方程和符号方程算法的大量函数。它的符号体系允许方程和解以简单便捷的符号形
式给出 ,并可以快速的集成到计算和可视化中。下面的例子将展示 Mathematica软件的符号运算功能用于求解微分方程模型。
在人口问题 [ 2 ]9中 ,既可以建立指数增长模型 ,也可以建立阻滞增长模型。而阻滞人口增长模型就是满足下面微分方程的
数学模型 :
dx
d t = rx
(1 - x
xm
)
x (0) = x0
可以通过 Mathematica中的 DSolve[ ]函数进行快速求解 ,代码为 :
DSolve[ { x’[ t] = = r3 x[ t] 3 (1 - x[ t] /xm) , x[ 0 ] = = x0} , x[ t ] , t ];
对于更复杂的微分方程模型 ,可以通过其它的求解函数进行处理 ,表 3给出了求解微分方程或微分方程组的部分命令 ,更
多的函数命令可以通过 Mathematica的帮助平台和 Mathematica7资料参考中心 [ 3 ]进行查询。
表 3 求解微分方程 (组 )的部分命令形式及意义
命令形式 意义
DSolve[ eqns, y[ x] , x] 求解微分方程 (组 ) eqns, y[ x]为因变量 , x为变量
DSolve[ { eqns, y[ 0 ] = = x0} , y[ x ] , x] 求解微分方程 (组 ) eqns,满足初始条件 y[ 0 ] = = x0的解 y[ x]
DSolve[ eqns, { y1, y2, ⋯} , x ] 求解微分方程 (组 ) eqns, { y1, y2, ⋯}为因变量列表 , x为变量
NDSolve[ eqns, y, { x, xm in, xmax} ] 求解微分方程 (组 ) eqns在区间 [ xm in, xmax]中的数值解
四、Mathematica求解规划及优化模型 [ 4, 5 ]
Mathematica中也集成了大量的局部和全局性优化技术 ,包括求解线性规划、整数规划、二次规划、非线性规划及全局最优
化算法等。表 4给出了一些常用的命令格式 , 同时表中的 M inim ize可对应的改成 Maxim ize, FindM inimum改成 FindMaximum,
分别表示求相应函数的最大值。
表 4 求解规划及优化模型的部分命令及意义
命令形式 意义
L inearProgramm ing[ c, m, b ] 求 C3 x的最小值 ,并满足限制条件 m3 x > = b和 x > = 0
M inimize[ f, x] 得出以 x为自变量的 , f的最小值。
M inimize[ f, { x, y,. . . } ] 得出以 x, y,. . . 为自变量的函数 , f的最小值。
M inimize[ { f, cons} , { x, y, . . . } ] 根据约束条件 cons,得出 f的最小值 。
M inimize[ { f, cons} , { x, y, . . . } , dom ] 得出函数 f的最小值 ,函数含有域 dom上的变量 ,典型的有 Reals和 Integers。
FindM inimum [ f, x] 搜索 f的局部极小值 ,从一个自动选定的点开始。
FindM inimum [ f, { x, x0} ] 搜索 f的局部最小值 ,初始值是 x = x0。
FindM inimum [ f, { { x, x0} , { y, y0} ,. . . } ] 搜索多元函数的局部最小值。
FindM inimum [ { f, cons} , { x, y,. . . } ] 搜索约束条件 cons下局部最小值。
49
© 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
考虑利用 Mathematica的 Maxisize[ ]函数 ,实现对如下的规划问题 [ 2 ]98求解 :
一汽车厂生产小、中、大三种汽车 ,已知各类型每辆车对钢材、劳动时间的需求 ,利润以及每月工厂钢材、劳动时间的现有
量如表 5所示 ,试制定月生产计划 ,使工厂的利润最大。进一步讨论 :由于条件限制 ,如果生产某一类型汽车 ,则至少要生产
80辆 ,那么最优的生产计划应如何改变。
表 5 汽车厂的生产数据
小型 中型 大型 现有量
钢材 (吨 ) 1. 5 3 5 600
劳动时间 (小时 ) 280 250 400 60 000
利润 (万元 ) 2 3 4
模型建立及求解 :设每月生产小、中、大型汽车的数量分别为 x1 , x2 , x3 ,工厂的月利润为 z,则可得到如下整数规划模型 ( I) :
max z = 2x1 + 3x2 + 4x3
( I)
s. t.
1. 5x1 + 3x2 + 5x3 ≤600
280x1 + 250x2 + 400x3 ≤60 000
x1 , x2 , x3 为非负整数
对于进一步讨论的问题 ,可以引入 0 - 1变量来实现 ,M 为充分大的实数 ,得到下面的整数规划模型 ( II)。
max z = 2x1 + 3x2 + 4x3
( II)
s. t.
1. 5x1 + 3x2 + 5x3 ≤600
280x1 + 250x2 + 400x3 ≤60 000
x1 ≤M y1 , x1 ≥80y1
x2 ≤M y2 , x2 ≥80y2
x3 ≤M y3 , x3 ≥80y3
x1 , x2 , x3 为非负整数
y1 , y2 , y3 为非 0 - 1变量
Mathematica求解模型 ( I)程序 :
Maxim ize[ {2x1 + 3x2 + 4x3, 1. 5x1 + 3x2 + 5x3 < = 600, 80x1 + 250x2 + 400x3 < = 60000, x1 > = 0, x2 > = 0, x3 > = 0, Ele2
ment[ { x1, x2, x3} , Integers] } , { x1, x2, x3} ];
对于模型 ( II) ,只要再添加一些约束条件即可 ,取 M = 10 1^0,Mathematica求解程序为 :
Maxim ize[ {2x1 + 3x2 + 4x3, 1. 5x1 + 3x2 + 5x3 < = 600, 280x1 + 250x2 + 400x3 < = 60000, x1 < = 10 1^03 y1, x2 < = 10 1^03
y2, x3 < = 10 1^03 y3, x1 > = 803 y1, x2 > = 803 y2, x3 > = 803 y3, x1 > = 0, x2 > = 0, x3 > = 0, Element[ { x1, x2, x3} , Integers ] ,
y1 = = 1 | | y1 = = 0, y2 = = 1 | | y2 = = 0, y3 = = 1 | | y3 = = 0} , { x1, x2, x3, y1, y2, y3} ]
如果遇到模型的数据保存于其它文件或数据库内 ,也可以通过 Import[ ]函数来导入数据文件。
五、结论
本文对利用 Mathematica软件实现数学模型课程多媒体教学做了初步探讨 ,可以看出 Mathematica软件辅助数学模型课程
教学是可行的。另外 ,使用 Mathematica软件可为求解微分方程和规划及优化问题提供帮助。
参考文献 :
[ 1 ]丁大正. Mathematica 5在大学数学课程中的应用 [M ]. 北京 :电子工业出版社 , 2006.
[ 2 ]姜启源 ,谢金星 ,叶俊. 数学模型 (第三版 ) [M ]. 北京 :高等教育出版社 , 2007.
[ 3 ]Wolfram Research, Inc. Mathematica7资料参考中心 [ DB /OL ]. [ 2009 - 04 - 27 ]. http: / / reference. wolfram. com /mathematica /guide /Math2
ematica. htm l.
[ 4 ]郭志军. Mathematica求解整数规划研究 [ J ]. 黑龙江科技信息 , 2007, (24) : 35 - 178.
[ 5 ] stlxv. 使用 Mathematica解规划模型 [ DB /OL ]. [ 2006 - 09 - 22 ] , [ 2009 - 04 - 28 ]. http: / /blog. csdn. net/yxf /archive /2006 /09 /22 /
1266041. aspx.
收稿日期 2009 - 05 - 08
[责任编辑 刘景平 ]
59