APP下载

浅谈MATLAB在《最优化方法》课程教学中的应用

2019-08-13李丰兵

科技资讯 2019年14期
关键词:教学模式

李丰兵

摘  要:MATLAB是一款功能十分强大、应用最为广泛的数学软件,该文探讨MATLAB软件在《最优化方法》课程教学中的一些应用。通过3个具体的教学案例,该文详细地介绍了如何利用MATLAB软件的程序设计,辅助传统教学模式,解决《最优化方法》课程中的教学难点,如何把抽象的问题具体化、复杂的问题简单化,提高学生的学习积极性及教师的授课效率。

关键词:MATLAB  最优化方法  教学模式

中图分类号:TN911   文献标识码:A            文章编号:1672-3791(2019)05(b)-0113-03

Abstract: MATLAB is a powerful and widely-used mathematical software. This paper discusses the application of MATLAB software in the teaching of "Optimizing Method". Through three specific teaching cases, this paper introduces in detail how to use the program design of MATLAB software to assist the traditional teaching mode to solve the teaching difficulties in the course of "Optimizing Method", how to concretize abstract problems and simplify complex problems, and how to improve students learning enthusiasm and teachers  teaching efficiency.

Key Words: MATLAB; Optimization method; Teaching mode

《最优化方法》是笔者学校部分专业本科生及研究生的专业必修课程,以介绍各种优化算法[1,2]为主要目的,内容相对较为抽象。在传统的教学模式条件下,上课教师仅仅依靠理论分析、证明,难以讲清楚课程中的一些抽象问题,学生学习较为困难,老师上课效率低下。MATLAB[3]作为一款功能十分强大的数学应用软件,程序设计较为简单,特别适合于相关科技工作者做算法设计、数值计算、数据处理及可视化等方面的应用。利用MATLAB软件辅助理论教学,可以解决《最优化方法》课程教学过程中碰到的部分教学难点,使得课堂教学变得轻松、简单。限于篇幅,该文以如下3个教学案例进行说明:(1)黄金分割法收敛性能分析;(2)斐波那契数列的计算;(3)函数图像绘制。

1  3个应用案例介绍

1.1 黄金分割法收敛性能分析

黄金分割法又称为0.618法,是最优化算法中一种基本的一维搜索算法,本质上是一种用来求解单谷函数极值的方法,其算法思想是通过迭代的方式逐步缩小搜索区间,直到极小值点所在的区间长度满足所给定精度要求时算法终止迭代。在教学过程中,黄金分割法的收敛性能分析是一个教学难点,主要的问题有2个:(1)如何描述黄金分割法的收敛过程及收敛速度问题;(2)为什么黄金分割系数tau是0.618,而不是其他的数值。仅仅靠理论讲解缺乏说服力,学生难以理解。该文利用MATLAB程序设计辅助理论教学可以解决这一问题,以如下问题为例说明。

例1:设,求。

为辅助理论教学解答上述两个问题,分别取黄金分割系数tau的值为:0.618,0.75,0.85,通过编写相应程序计算出每次迭代后的最优点及总的迭代次数,具体程序如下。

function[OPTXV,t]=f_0618_2(a,b,eps,tau)

OPTXV=[];t=1;

while1

x1=a+tau*(b-a);  x2=a+(1-tau)*(b-a);

optx=0.5*(x1+x2); OPTXV(t)=optx;

if x2-x1

break

else

t=t+1;

if f(x1)>=f(x2)

a=x1;

else

b=x2;

end

end

end

end

程序中數组OPTXV用来存储每次迭代后的最优解,t为迭代次数,输入参数值设为a=0,b=1,eps=0.01,运行程序即可算出OPTXV,t的值。为了更直观地了解黄金分割法的收敛性能,利用MATLAB的绘图函数plot可以画出最优解与迭代次数的变化关系曲线图,如图1所示。从图1中可清楚看出:(1)黄金分割法的收敛速度相对于迭代次数来说,前期收敛较快,后期明显收敛很慢;(2)黄金分割系数tau的值为0.618时算法收敛最快,其他两种情况算法收敛显著较慢,实际迭代次数分别为:8,15,28。

1.2 斐波那契数列的计算

在斐波那契算法的教学过程中,由算法迭代精度值eps计算出相应的斐波那契数列是一个教学难点内容,传统的教学方法靠手动计算比较困难,教学效率低下。利用MATLAB程序设计辅助理论教学可以解决这个问题,并且教学效果良好。同样以例1为例,首先需要利用条件(1)计算斐波那契数列的最后一项。

公式中[a1,b1],为初始区间,eps为精度值,Fn为斐波那契数列的最后一项。算出Fn之后再根据斐波那契数列的性质算出整个斐波那契数列。整个计算过程可以利用MATLAB软件编写相应程序来完成,具体程序如下。

a1=0;b1=1;eps=0.001;

F(1)=1;F(2)=1;

k=3;

while 1

F(k)=F(k-1)+F(k-2);

if F(k)>=((b1-a1)/eps)

break

else

k=k+1;

end

end

运行程序可得满足条件的斐波那契数列:1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597。

1.3 函数图像绘制

在无约束优化及约束优化算法的教学过程中,分析目标函数的极值分布情况及算法的迭代过程是一个教学难点内容,传统的教学模式仅靠理论分析及手工作图的方法几乎很难把这个问题讲解清楚,以至于学生难以理解,授课效率极其低下。MATLAB软件图形绘制功能非常强大,利用MATLAB内部绘图命令可以画出各种函数的图像。因此,在优化算法的教学过程中,利用MATLAB软件画出目标函数的图像,辅助理论教学,对学生理解函数性态及理解算法的迭代过程特别有帮助。

例2:画出函数在矩形区域D:-2≤x≤2,-2≤y≤3上的图像。

利用MATLAB的绘图函数contour及contour3可以分别画出函数的二维等值线图和三维等值线图,相应的程序如下。

[X,Y]=meshgrid(-2:.1:2,-2:.1:3);

Z=X.*exp(-X.^2-Y.^2);

[C,h]=contour(X,Y,Z);

set(h,'ShowText','on','TextStep',get(h,'LevelStep')*1)

colormap cool

xlabel('x'); ylabel('y');

figure

contour3(X,Y,Z,30)

surface(X,Y,Z,'EdgeColor',[.8 .8 .8],'FaceColor','none')

view(-15,25)

colormap cool

xlabel('x'); ylabel('y'); zlabel('z');

运行程序可得图2和图3图像。

从图2和图3都可以看出函數在矩形区域D:-2≤x≤2,-2≤y≤3上存在一个极大值和一个极小值,只不过图3更加直观。在分析优化算法迭代过程时候,在图2上面进行分析,结合相关理论,就颇为方便。

2  结语

利用MATLAB程序设计,辅助理论教学,改善了《最优化方法》课程传统教学模式的不足。在实际的教学过程中,利用这种新的教学方法取得了良好的教学效果,改变了以往枯燥乏味、抽象的理论教学模式,吸引了学生的注意力,提高了学生的学习兴趣及学习效率,使得“教”与“学”不再是枯燥乏味的事情。

参考文献

[1] 马昌凤.最优化方法及其Matlab程序设计[M].北京:科学出版社,2010.

[2] 陈宝林.最优化理论与算法[M].北京:清华大学出版社,2005.

[3] 刘帅奇,李会雅,赵杰.MATLAB程序设计基础与应用[M].北京:清华大学出版社,2016.

猜你喜欢

教学模式
群文阅读教学模式探讨
“思”以贯之“学、练、赛、评”教学模式的实践探索
基于深度教学的高中数学新授课教学模式的探索与实践
新工科背景下项目推动式教学模式的探索
创新线上英语教学模式的思考
高中英语美文阅读USE教学模式的应用探究
借力大数据分析 创新“三位一体”思政课教学模式
高中英语“读写学思”教学模式探索与实践
“认知-迁移”教学模式在高年级阅读教学中的应用
“先学后教”教学模式在复习课中的应用