论文部分内容阅读
摘 要: 为了有效推动数值分析教改进程,首先分析数值分析与MATLAB有机融合的必要性,然后介绍MATLAB在不同的教学内容中发挥的作用。通过教学实践,教师既能激发学生的学习兴趣和积极性,又能培养学生的算法设计和编程能力,取得良好的教学效果。
关键词: 数值分析 MATLAB软件 教改实践
随着计算机的高速发展,继实验方法、理论方法之后,科学计算已经成为科学实践的第三种手段。它在力学、冶金、机械工程等各个领域中得到广泛的应用,在科研领域中有至关重要的作用。因为数值分析是研究科学计算中求解各类数学问题数值算法的一门课程,所以它已逐渐成为理工类本科生和研究生的必修课。但是数值分析的教学内容和教学方法急需与时俱进的改革。笔者结合多年的教学实践探讨MATLAB在数值分析教改过程中的作用。
一、数值分析与MATLAB软件相辅相成
数值分析的预备知识中主要包括线性代数、微积分和常微分方程等知识点,这就让很多谈数学色变的学生面对抽象枯燥的理论分析和繁杂冗长的公式推导提不起兴趣,厌学甚至望而生畏。实际上,数值分析是一门理论性强应用性更强的数学课程。MATLAB是一个集数值计算、符号分析、图形可视化、文字处理于一体的大型集成化软件。如果将MATLAB和数值分析有机地结合起来,重点详细地讲述数值分析的基本概念、基本理论和方法及其如何用MATLAB软件实现,然后通过实际算例将几种数值算法的结果利用图形和数表格式进行比较,让学生从理论上和几何直观上比较分析不同算法在求解同一问题时的误差大小和收敛速度等,从而筛选出最佳算法,实现科学计算。采用这样的教学方法,很多晦涩抽象的算法变得更直观,易懂难忘。而且可以在提高学生数学素养的同时,培养其实践动手能力,达到学以致用的目的,为学生将来更好地适应工作和科研环境打下良好的基础。
二、在教学过程中MATLAB软件的应用
(一)结合MATLAB的计算功能进行误差分析
用迭代法求解线性方程组,Jacobi迭代法迭代格式的构造过程非常简单,G-S迭代法就是在Jacobi迭代法基础之上采用充分利用新值的思想,也就是在求时,将Jacobi迭代法中的替换成,对于有些线性方程组来说收敛速度是变快,但并不是绝对的,对于一些线性方程组G-S迭代法不收敛而Jacobi迭代法确实收敛的。对此,很多学生理解得不是很好。
插值型数值积分公式的构造思想非常简单,就是根据离散节点处的函数值构造插值多项式近似,从而利用多项式的定积分近似的定积分,分段多项式插值则对应复化的求积公式。关于复化求积公式的误差估计是学生很难理解的地方,公式推导比较繁琐,特别是给定精度要求事先确定节点个数或者步长大小比较困难。在此,如果估计出被积函数各阶导数绝对值的最大值的话,可以利用MATLAB的数值计算结果验证一下,从而使学生更好地掌握事先误差估计式。为了避免求解各阶导数绝对值的最大值这个问题,在使用复化求积公式的时候常常采用误差的事后估计方法,它是通过区间逐次分半实现的,进而推得实际计算中常用的龙贝格求积算法。对于以上各种数值积分公式都有现成的MATLAB程序实现,可参考文献。为了提高精度要求和收敛速度,还存在一些利用特殊函数零点计算数值积分的算法,如高斯型求积公式,也可以鼓励那些感兴趣的学生查找相关文献或者自己编写相应的程序,通过实验结果分析各种算法的优缺点。
(二)利用MATLAB实现科学计算的可视化
在多项式插值方法中,为了获得更好的近似效果,往往要增加插值节点个数,从而提高插值多项式的次数。但是在实际应用中,很少采用高于七次的插值。一方面节点数增多固然使插值多项式在更多的节点处与被插值函数具有相同的函数值,但是在两个相邻的插值节点间,插值函数未必能很好地近似被插值函数,有时它们之间甚至会有非常大的差异。另一方面通过舍入误差分析,对于等距离节点的牛顿插值公式,函数值的微小扰动可能引起高阶差分很大的变化。数学专业的学生可以参考文献中详细的理论分析,但是对于工科的学生来说,只需要知道高次插值数值不稳定就可以。此时,恰好可以利用MATLAB强大的绘图功能,对于特定的函数在指定的区间上选取不同个数的插值节点构造不同次数的插值多项式,并在一个坐标系下绘出各种次数的插值多项式的图像,用图像直观的说明大范围内采用高次插值会出现龙格震荡现象,从而合理地引出分段的低次插值规避高次插值的数值不稳定性。
插值方法是处理数据近似的一种数值方法,在处理大量的实验数据的时候具有明显的不足。首先,如果给出的数据是通过观察或者测量等手段得到的实验数据,那么不可避免地带有测量误差,个别数据的误差可能还很大,这时要求所求的近似函数的曲线精确无误地通过每一个数据点,就会使曲线保留所有的测量误差,从而失去原数据表示的规律。其次,实验数据往往很多,用插值方法得到的近似函数明显的缺乏实用价值。而数据拟合时,不要求拟合曲线严格的经过所有的数据点,只要求拟合函数按照一定的准则最接近这组数据。使每点处的误差平方和最小的方法称为最小二乘法,其中首要的是关键的一步是恰当地选取一组函数系。如果通过分析,确定y与x之间应该满足的函数关系,则函数关系是比较容易选定的。若无法知道y与x之间的关系,通常需要先将数据作出散点图,直观地判断应该用什么样的曲线去拟合,选几种常用的曲线分别拟合,可以通过图像比较,也可以利用最小二乘准则比较,最终确定拟合曲线。此过程如果利用手工计算和画图的话,繁琐程度可想而知,但是如果充分发挥MATLAB强大的计算能力和绘图功能的话,曲线拟合问题可以迎刃而解,老师讲解起来既省时省力又形象生动,而且学生更容易接受,印象更深刻。
(三)注意算法的理论分析和MATLAB实现的侧重
在介绍常微分方程初值问题数值解法构造思想的时候,可以欧拉公式、梯形公式等一些低阶方法为例,但是为了使学生将来更好地投身科研工作,在求解实际问题时得到较高精度的数值结果。高阶的Runger-Kutta方法可以不细讲其构造过程,但是应该着重介绍其在MATLAB中的函数命令,知道其输入量的意义、输入方法及参数设置,看懂输出量的意义就够了。换句话说,掌握MATLAB中微分方程求解函数的适用范围,会调用函数命令求解就可以,并不需要学生掌握高阶R-K公式的具体推导过程。针对不同专业的学生,根据不同的教学内容和教学目的,一定要把握好算法的理论推导和MATLAB实现之间的侧重关系。
三、结语
基于MATLAB软件的数值分析多媒体辅助教学,增强课堂教学的直观性,使学生对有关枯燥抽象的概念和算法的理论分析更容易接受。并且有效培养学生的程序设计能力,进而提高学生解决实际问题的能力。实践表明,以优秀的数学软件MATLAB为平台,在教学的各个环节协调配合,引进先进的教学观念,便可以达到不同凡响的教学效果。
参考文献:
[1]刘正君.MATLAB科学计算与可视化仿真宝典[M].电子工业出版社,2009.
[2]任玉杰.数值分析及其MATLAB实现[M].高等教育出版社,2007.
关键词: 数值分析 MATLAB软件 教改实践
随着计算机的高速发展,继实验方法、理论方法之后,科学计算已经成为科学实践的第三种手段。它在力学、冶金、机械工程等各个领域中得到广泛的应用,在科研领域中有至关重要的作用。因为数值分析是研究科学计算中求解各类数学问题数值算法的一门课程,所以它已逐渐成为理工类本科生和研究生的必修课。但是数值分析的教学内容和教学方法急需与时俱进的改革。笔者结合多年的教学实践探讨MATLAB在数值分析教改过程中的作用。
一、数值分析与MATLAB软件相辅相成
数值分析的预备知识中主要包括线性代数、微积分和常微分方程等知识点,这就让很多谈数学色变的学生面对抽象枯燥的理论分析和繁杂冗长的公式推导提不起兴趣,厌学甚至望而生畏。实际上,数值分析是一门理论性强应用性更强的数学课程。MATLAB是一个集数值计算、符号分析、图形可视化、文字处理于一体的大型集成化软件。如果将MATLAB和数值分析有机地结合起来,重点详细地讲述数值分析的基本概念、基本理论和方法及其如何用MATLAB软件实现,然后通过实际算例将几种数值算法的结果利用图形和数表格式进行比较,让学生从理论上和几何直观上比较分析不同算法在求解同一问题时的误差大小和收敛速度等,从而筛选出最佳算法,实现科学计算。采用这样的教学方法,很多晦涩抽象的算法变得更直观,易懂难忘。而且可以在提高学生数学素养的同时,培养其实践动手能力,达到学以致用的目的,为学生将来更好地适应工作和科研环境打下良好的基础。
二、在教学过程中MATLAB软件的应用
(一)结合MATLAB的计算功能进行误差分析
用迭代法求解线性方程组,Jacobi迭代法迭代格式的构造过程非常简单,G-S迭代法就是在Jacobi迭代法基础之上采用充分利用新值的思想,也就是在求时,将Jacobi迭代法中的替换成,对于有些线性方程组来说收敛速度是变快,但并不是绝对的,对于一些线性方程组G-S迭代法不收敛而Jacobi迭代法确实收敛的。对此,很多学生理解得不是很好。
插值型数值积分公式的构造思想非常简单,就是根据离散节点处的函数值构造插值多项式近似,从而利用多项式的定积分近似的定积分,分段多项式插值则对应复化的求积公式。关于复化求积公式的误差估计是学生很难理解的地方,公式推导比较繁琐,特别是给定精度要求事先确定节点个数或者步长大小比较困难。在此,如果估计出被积函数各阶导数绝对值的最大值的话,可以利用MATLAB的数值计算结果验证一下,从而使学生更好地掌握事先误差估计式。为了避免求解各阶导数绝对值的最大值这个问题,在使用复化求积公式的时候常常采用误差的事后估计方法,它是通过区间逐次分半实现的,进而推得实际计算中常用的龙贝格求积算法。对于以上各种数值积分公式都有现成的MATLAB程序实现,可参考文献。为了提高精度要求和收敛速度,还存在一些利用特殊函数零点计算数值积分的算法,如高斯型求积公式,也可以鼓励那些感兴趣的学生查找相关文献或者自己编写相应的程序,通过实验结果分析各种算法的优缺点。
(二)利用MATLAB实现科学计算的可视化
在多项式插值方法中,为了获得更好的近似效果,往往要增加插值节点个数,从而提高插值多项式的次数。但是在实际应用中,很少采用高于七次的插值。一方面节点数增多固然使插值多项式在更多的节点处与被插值函数具有相同的函数值,但是在两个相邻的插值节点间,插值函数未必能很好地近似被插值函数,有时它们之间甚至会有非常大的差异。另一方面通过舍入误差分析,对于等距离节点的牛顿插值公式,函数值的微小扰动可能引起高阶差分很大的变化。数学专业的学生可以参考文献中详细的理论分析,但是对于工科的学生来说,只需要知道高次插值数值不稳定就可以。此时,恰好可以利用MATLAB强大的绘图功能,对于特定的函数在指定的区间上选取不同个数的插值节点构造不同次数的插值多项式,并在一个坐标系下绘出各种次数的插值多项式的图像,用图像直观的说明大范围内采用高次插值会出现龙格震荡现象,从而合理地引出分段的低次插值规避高次插值的数值不稳定性。
插值方法是处理数据近似的一种数值方法,在处理大量的实验数据的时候具有明显的不足。首先,如果给出的数据是通过观察或者测量等手段得到的实验数据,那么不可避免地带有测量误差,个别数据的误差可能还很大,这时要求所求的近似函数的曲线精确无误地通过每一个数据点,就会使曲线保留所有的测量误差,从而失去原数据表示的规律。其次,实验数据往往很多,用插值方法得到的近似函数明显的缺乏实用价值。而数据拟合时,不要求拟合曲线严格的经过所有的数据点,只要求拟合函数按照一定的准则最接近这组数据。使每点处的误差平方和最小的方法称为最小二乘法,其中首要的是关键的一步是恰当地选取一组函数系。如果通过分析,确定y与x之间应该满足的函数关系,则函数关系是比较容易选定的。若无法知道y与x之间的关系,通常需要先将数据作出散点图,直观地判断应该用什么样的曲线去拟合,选几种常用的曲线分别拟合,可以通过图像比较,也可以利用最小二乘准则比较,最终确定拟合曲线。此过程如果利用手工计算和画图的话,繁琐程度可想而知,但是如果充分发挥MATLAB强大的计算能力和绘图功能的话,曲线拟合问题可以迎刃而解,老师讲解起来既省时省力又形象生动,而且学生更容易接受,印象更深刻。
(三)注意算法的理论分析和MATLAB实现的侧重
在介绍常微分方程初值问题数值解法构造思想的时候,可以欧拉公式、梯形公式等一些低阶方法为例,但是为了使学生将来更好地投身科研工作,在求解实际问题时得到较高精度的数值结果。高阶的Runger-Kutta方法可以不细讲其构造过程,但是应该着重介绍其在MATLAB中的函数命令,知道其输入量的意义、输入方法及参数设置,看懂输出量的意义就够了。换句话说,掌握MATLAB中微分方程求解函数的适用范围,会调用函数命令求解就可以,并不需要学生掌握高阶R-K公式的具体推导过程。针对不同专业的学生,根据不同的教学内容和教学目的,一定要把握好算法的理论推导和MATLAB实现之间的侧重关系。
三、结语
基于MATLAB软件的数值分析多媒体辅助教学,增强课堂教学的直观性,使学生对有关枯燥抽象的概念和算法的理论分析更容易接受。并且有效培养学生的程序设计能力,进而提高学生解决实际问题的能力。实践表明,以优秀的数学软件MATLAB为平台,在教学的各个环节协调配合,引进先进的教学观念,便可以达到不同凡响的教学效果。
参考文献:
[1]刘正君.MATLAB科学计算与可视化仿真宝典[M].电子工业出版社,2009.
[2]任玉杰.数值分析及其MATLAB实现[M].高等教育出版社,2007.