您的当前位置:首页正文

MATLAB在《数值分析》课程教学与实验中的应用

2024-02-10 来源:好走旅游网
维普资讯 http://www.cqvip.com

第29卷第1期 2008年3月 淮北煤炭师范学院学报(自然科学版) Journal of Huaibei Coal Industry Teachers College(Natural Science) Vo1.29 No.1 Mar.2008 MATLAB在《数值分析》课程教学与实验中的应用 冯崇岭,刘 升,陈国龙,胡国亮,韩 玲 (淮北煤炭师范学院计算机科学与技术系,安徽淮北235000) 摘要:讨论了MATLAB在《数值分析》课程教学与实验中的应用问题,利用MATLAB实现《数值分析》中的算法并直 观展示算法的实现过程,提出将MATLAB应用于《数值分析》课程教学与实验中的构想与改革模式. 关键词:MATLAB;曲线拟合;迭代法;样条插值;矩阵计算;方程组求解;科学计算可视化 中图分类号:O 241—39 文献标识码:C 文章编号:1672—7177(2008)O1—0088—04 数值分析是一门研究如何在计算机上求解数学问题算法的学科,主要内容有:误差分析、插值法、数值微 积分、数值代数、矩阵计算和微分方程数值解法等,是众多理工科和计算机应用等专业的必修课 】.数值分 析属于应用学科,不是纯数学,理论上的完美并不代表实用,要既讲理论又讲应用.在长期的教学实践中,我 们深刻体会到,该门课的教学存在很多亟待解决的问题,主要有:1)该课程算法多、公式多、计算量大、实践 性强.教学中难免出现从数字到数字,从公式到公式,繁琐、枯燥,缺乏直观性.2)课时少,一般只有40多课 时,打不好基础;3)只有理论没有实践.这是一门实践性很强的学科,没有实践配套是学不好的.比如我系, 该课程教学原是60课时(48课时理论+l2课时上机),但管理者认为课时紧张又把上机课时取消了.4)老 式教学,质量低劣.我们认为,只有进行改革才有出路.数值分析是一门专业基础课,是学生知识结构中的重 要组成部分,必要的算法是不可缺的,比如计算机应用专业的学生,不懂算法,很多软件是无法开发的.事实 上,在计算机技术如此发达的今天,只要把教学过程和相关的计算机技术结合起来,就可以减轻教师负担, 优化学习环境,缩短课时,实现低价高效的教学效果.MATLAB是一种具有强大数值计算、分析和图形处理 功能的科学计算语言,其应用领域极为广泛,而且使用方便、调试容易、代码少、效率高,有人称之为第四代 程序设计语言 】. 1 和计算机结合,优化学习环境,缩短课时 随着计算机处理数据和图形的功能越来越强,数值分析教学和计算机结合已成为必然的选择.比如曲 线拟合、迭代法求根、方程组求解等教学内容中,有大量的数据和计算,用人工计算枯燥、繁琐、容易出错,有 时量大,要完成计算几乎是不可能的,而且从数据到数据,从公式到公式,单调乏味,十分影响学习兴趣.和 计算机结合起来就不同了,学生只要搞清算法设计原理和计算过程,算法实现由计算机来完成.计算轻松愉 快,由于算法的结果很容易得到,所以很容易评判算法的优劣,以便及时改进,加上计算机图形处理的应用, 我们可以把算法实现的过程展示出来,使教学过程直观生动,效率高了,时间反而短了.比如下面曲线拟合 问题:【3 例1某风机性能测试数据如下,使用最/b-乘法进行曲线拟合,并绘制曲线图. 流量t 风压f 1323 1049 1489 1040 1654 1030 1820 990 2000 961 2166 873 2331 764 2496 716 仅8个数据,但用传统方法教学至少要用1节课,而且从数据计算到数据计算,枯燥、繁琐不直观,改用 MATLAB以后,在计算机上十来分钟就可轻松解决问题,由于能够在计算机屏幕上看到拟合效果,所以直 生 !亟旦堕 在比较中选择最优解.下面是本例的MATLAB程序: 收稿日期:2007—1l一05 基金项目:安徽省教学研究资助项目(jyxm297);安徽省优秀青年科技基金资助(06046099) 作者简介:冯崇岭(1947一 ),男,安徽五河人,副教授,研究方向:计算机在数值计算中的应用 维普资讯 http://www.cqvip.com

第1期 冯崇岭等:MATLAB在《数值分析》课程教学与实验中的应用 89 t=[1323,1489,1654,1820,2000,2166,2331,2496】; f=[1049,1040,1030,990,961,873,764,716】; n=input(’n=?’); [P,s】:polyfit(t,f,n); pause; y=polyval(p,t1); plot(t,f,’:O’,t,y,’一-k’) 执行时只要输入拟合多项式的次数n,就可在屏幕上看到拟合效果,易知本例7次多项式有良好的拟合 效果.见图1. 图1多项式拟合效果图 又如迭代问题,原理很好懂,只是计算重复,量大,手算力不从心,由于结果难以得到,同学往往怀疑其 实用性.使用计算机就不同了,计算过程可全部展示在屏幕上,同学们可以看到动点(迭代值)是怎么样一步 步逼近定点(目的值)的.例如下面M文件求极限:并可展示求解过程(见图2). %迭代求根.m X:input(’请输入初值x0’) xl=X.-k x/(2-k X一1); t=一1:0.01:2: y t.★t; yl=t: hold on axis([0 2 0 2】) axis(axis) grid plot(t,y) plot(t,y1) plot(1,1,’0g’) for i=1:6 plot(x,xl,’-k r’) x:xl; xl=(X.-k X)./(2-k X一1); pause(1) end hold off 运行结果如下: 维普资讯 http://www.cqvip.com 90 淮北煤炭师范学院学报(自然科学版) 2008直 图2 迭代求解过程的展示 这种把抽象的内容形象化教学,会加深学生对有关内容的理解和记忆,学习过程也比过去有趣多了。 2应用MATLAB的优势 为了展示算法的实现过程,当然也可采用别的高级语言(比如C语言)进行辅助数值分析课程教学和实 验,但难度较大,它要求学生既要对算法有充分了解,又要熟练掌握相关语言的语法和编程技巧,导致教师和 学生将大量时问和精力都花在繁琐的数值计算以及对各种结果绘图上面,有时甚至影响到学生对算法的掌 握;另外使用计算机辅助教学也可达到较好的效果,但展示算法的实现过程往往是用模拟的方法,使人感到 不真实,而应用MATLAB就不同了,它是一种面向科学与工程计算的高级语言,计算、绘图功能强大.不仅 算法实现效率高,而且能直观展示算法的实现过程,操作简单方便能让学生从繁琐的底层编程中解放出来, 激发他们的学习兴趣和效率.教师也可以把精力放在算法原理、方法和技巧的研究上,更有利该学科的发展. 2.1在矩阵计算和方程组求解方面的优势独具一格 矩阵的各种分解、特征值、特征向量的计算以及方程组求解都是相当繁杂的,用其它高级语言编程求解, 也并非容易之事,而用MATLAB却只要一二个简单的命令,结果就出来了.例如求下面矩阵的特征值和特征 向量: 10 2 1 1 2 25 1 6 30 只需用一个命令: >>[v,d】=eig(a) 即可求出其特征值(d中的对角线元素)和特征向量( 中对应的列向量): d= 9.847 6 0 0 0 0 31.259 4 0 0 23.892 9 = 一0.994 9 0.027 1 0.097 4 0.099 0 0.696 8 0.710 4 —0.125 5 —0.971 7 0.200 2 2.2 MA11 AB在插值问题中的应用 插值方法教学和MATLAB结合起来,效果也十分理想.教师只要讲清其原理和方法,用MATLAB实现, 命令简单,结果图文并茂,学生的学习兴趣自然也就高了.例如:三次样条插值的例子: 例2给定函数sin( )上的11个数据点: >>x0:0:10; >>y0=sin(x0); 求三次样条插值函数在下列41个数据点(0:0.25:10)上的函数值,并绘制原数据点和三次样条插值函 数的图形. 解 只要在MATLAB命令窗口输入如下命令: 维普资讯 http://www.cqvip.com

第1期 >>x=0:0.25:10; 冯崇岭等:MATI AB在《数值分析》课程教学与实验中的应用 9l >>Y=spline(x0,y0,x) >>plot(xO,yO,’or’,x,Y,’:’) 即可得到解和函数图形(如图3所示). 图3原插值节点和三次样条插值曲线 注:图中圆圈是原插值节点,虚线是三次样条插值曲线 对于诸如插值中的“龙格现象”等问题的展示,使用MATLAB也是非常容易的. 3加速实现科学计算的可视化 科学计算的可视化是科学计算工作者长期以来一直希望解决的问题,MATLAB提供了比较完备的科学 计算可视化函数.利用这些函数不仅可以展示数值分析中各种基本算法的实现过程,而且可以绘制二维/-- 维的矢量图、等值线图、剖面图以及流线图等H】.这一功能应用数值分析教学,必将带来深远的影响. 4小结 教学实践表明,借助于MATLAB的辅助教学,数值分析的教与学不再枯燥、繁琐,而是轻松愉快,有声有 色.不仅知识面广了、掌握的程度深了,更主要的是同学们实现基本算法的技能提高了,在课时方面,相同的 内容,跟传统教学方法相比,课时并没有增加,教学有事半功倍的效果. 参考文献: 【1]王能超.数值分析简明教程【M].北京:高等教育出版社,2004. f2]李海涛,邓樱.MATLAB程序设计程【M].北京:高等教育出版社,2004. 【3]刘卫国.MATLAB程序设计与应用【M].北京:高等教育出版社,2006. I4]石博强.MATLAB数学计算范例教程【M].北京:中国铁道出版社,2004. 【5]张志斌、MATLAB在数值计算方法教学中的应用【J].山西大同大学学报:自然科学版,2007,23(2):76—78 【6】阮沈勇,王永利,桑群芳、MATLAB程序设计【M].北京:电子工业出版社,2004. Application of MATLAB in the Teaching and Experiment of Numerical Analysis FENG Chong—ling,LIU Sheng,CHEN Guo—long,HU Guo—liang,HAN Ling (Department of Computer,Huaibei Coal Industry Teachers College,235000,Huaibei,Anhui,China) Abstract:The paper discusses the application of MATLAB for the teaching and experiment for the course of numerical analysis.Using the advantage of MATLAB to realize and intuitional display the realization process of basic algorithm for numerical analysis,the paper raises an innovation mode that using MATLAB as a tool for teaching and experiment for the course of numerical analysis. Key words:MATLAB:CUlW'e fitting;spine interpolation;matrix calculation;solving equation set;visualization in scientific computing 

因篇幅问题不能全部显示,请点此查看更多更全内容