数值分析

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

从自我视角谈数值分析数值分析又常被称为计算方法。数值分析是计算数学的一个主要部分。而计算数学是数学科学的一个分支,它研究用计算机求解数学问题的数值计算方法及其软件实现。计算数学几乎与数学科学的一切分支有联系,它利用数学领域的成果发展了新的更有效的算法及其理论,反过来很多数学分支都需要探讨和研究适用于计算机的数值方法。因此,数值分析内容十分广泛。首先,数值计算的误差分析,误差是衡量我们的计算有效与否的标准,我们的算法解决问题如果在误差允许的范围内,则算法是有效的,否则就是一个无效的问题求解。其次,在科学研究和工程技术中有许多问题可归结为求解方程及方程组,根据方程式是否线性分为线性方程(组)和非线性方程(组)。线性方程(组)的主要解法有:直接接法和迭代法。直接法是线性方程组的系数以矩阵来表示,再利用矩阵分解的方式求解,这些方法包括:高斯消去法、矩阵的三角分解法(具体包括直接三角分解法、一般非奇异矩阵的三角分解法(LU分解法)、追赶法)。这部分还包括了向量与矩阵的范数、扰动方程的误差界等知识。迭代法包括有雅可比迭代法、高斯–塞德尔迭代法、逐次超松驰迭代法(SOR)及对称逐次超松弛迭代法,一般会用在大型的线性方程组中。非线性方程,其名称是因为函数的根就是使其值为零的点。若函数本身可微且其导数是已知的,可以用牛顿法求解,其他的方法包括二分法、弦割法、抛物线法等。再次,求解特征值和特征向量的数值算法问题。在已学过的线性代数中我们已经学习过直接求解低阶方阵的特征值和特征向量的方法,但是对于高阶方阵的特征值和特征向量直接求解是不现实的,所以,我们有必要用数值的方法来求解。其方法包括有乘幂法、反幂法、雅可比法、QR法等等。还有,函数插值问题。这在工程技术中,我们经常会遇到只知道某函数在某区间内有限个点处的函数值及其部分导数值,而不知道其具体表达式,或知道其具体表达式,但由于表达式太复杂不易于计算它在其他点处的函数及其导数值等,所以就需要一个易于求解函数值及导数值的函数来近似代替原函数,这就是函数插值问题。其主要方法包括:拉格朗日插值法、牛顿插值法、埃尔米特插值法、分段插值法、样条插值法等等。另外,就是函数逼近。在简单集合中用简单函数来代替一个复杂的已知函数或一个仅知道有限个函数值的函数,是数值计算中最基本的方法之一,也就是函数逼近方法。其主要有最佳一致逼近、最佳平方逼近、最小二乘法等方法。再者,就是数值积分与数值微分的问题了。数值积分的目的是在求一定积分的值。一般常用牛顿-柯特斯公式,包括辛普森积分法、高斯求积等,还有龙贝格求积算法、高斯型求积公式等等。用数值方法求微分有插值法、泰勒展开法等方法。最后,就是微分方程的初值问题的数值解法。在自然科学与工程技术等许多领域中,常常还需要求解微分方程的初值问题。因此,我们需要用数值的方法去解微分方程的初值问题。数值分析用近似的方式计算微分方程的解,包括常微分方程及偏微分方程。常微分方程往往会使用迭代法,已知曲线的一点,设法算出其斜率,找到下一点,再推出下一点。欧拉方法是其中最简单的方式,较常使用的是龙格-库塔法。偏微分方程的数值分析解法一般都会先将问题离散化,转换成有限元素的次空间。可以透过有限元素法、有限差分法及有限体积法,这些方法可将偏微分方程转换为代数方程,但其理论论证往往和泛函分析的定理有关。另一种偏微分方程的数值分析解法则是利用离散傅立叶变换或快速傅立叶变换。近几十年来由于计算机的发展及其在各技术科学领域的应用推广与深化,新的计算性学科分支纷纷兴起,如计算力学、计算物理、计算化学、计算经济学等等,不论其背景与含义如何,要用计算机进行科学计算都必须建立相应的数学模型,并研究其适合于计算机编程的计算方法.因此,计算数学是各种计算性科学的联系纽带和共性基础,是一门兼有基础性、应用性和边缘性的数学学科。计算数学作为数学科学的一个分支,当然具有数学科学的抽象性与严密科学性的特点,但它又具有广泛的应用性和边缘性特点。现代科学发展依赖于理论研究、科学实验与科学计算三种主要手段,它们相辅相成,互相独立,可以互相补充又都不可缺少,作为三种科学研究手段之一的科学计算是一门工具性、方法性、边缘性的新学科,发展迅速,它的物质基础是计算机(包括其软硬件系统),其理论基础主要是计算数学。计算数学与计算工具发展密切相关,在计算机出现以前,数值计算方法只能计算规模小的问题,并且也没形成单独的学科,只有在计算机出现以后,数值计算才得以迅速发展并成为数学科学中一个独立学科--计算数学。当代计算能力的大幅度提高既来自计算机的进步,也来自计算方法的进步,计算机与计算方法的发展是相辅相成、互相促进的。计算方法的发展启发了新的计算机体系结构,而计算机的更新换代也对计算方法提出了新的标准和要求。例如为在计算机上求解大规模的计算问题、提高计算效率,诞生并发展了并行计算机。自计算机诞生以来,经典的计算方法业已经历了一个重新评价、筛选、改造和创新的过程,与此同时,涌现了许多新概念、新课题和能充分发挥计算机潜力、有更大解题能力的新方法,这就构成了现代意义下的计算数学.这也是数值分析的研究对象与特点。说了这么多,那么到底什么是数值分析呢?概括地说,数值分析是研究适合于在计算机上使用的实际可行、理论可靠、计算复杂性好的数值计算方法。具体说就是:第一,面向计算机,要根据计算机特点提供实际可行的算法,即算法只能由计算机可执行的加减乘除四则运算和各种逻辑运算组成;第二,要有可靠的理论分析,数值分析中的算法理论主要是连续系统的离散化及离散型方程数值求解。有关基本概念包括误差、稳定性、收敛性、计算量、存储量等,这些概念是刻画计算方法的可靠性、准确性、效率以及使用的方便性;第三,要有良好的复杂性及数值试验,计算复杂性是算法好坏的标志,它包括时间复杂性(指计算时间多少)和空间复杂性(指占用存储单元多少)。对很多数值问题使用不同算法,其计算复杂性将会大不一样,例如对20阶的线性方程组若用代数中的Cramer法则作为算法求解,其乘除法运算次数需要,若用每秒运算1亿次的计算机计算也要30万年,这是无法实现的,而用数值分析中介绍的Gauss消去法求解,其乘除法运算次数只需3060次,这说明选择算法的重要性.当然有很多数值方法不可能事先知道其计算量,故对所有数值方法除理论分析外,还必须通过数值试验检验其计算复杂性.本课程虽然只着重介绍数值方法及其理论,一般不涉及具体的算法设计及编程技巧,但如果能在计算机上做一些数值试验的话,它对算法的理解是很有好处的。就我本学期的学习,我想提出以下几点见解:(1)本学期数值分析学习的内容主要是,只包括非线性方程及线性方程组求解,插值与最小二乘法,数值积分与常微分方程数值解,学习本课程必须具备微积分,线性代数与常微分方程的基础知识和具有编程进行科学计算的技能。(2)数值分析是研究适合于计算机进行计算的实际可行,理论可靠计算复杂性好的数值计算方法,它具有以下特点。第一,面向计算机,第二,要有可靠的理论分析,第三,有良好的计算复杂性。(3)怎样学好数值分析课程?我想提出提几点意见供参考:一、树立信心,克服怕的思想。二、要先复习相关的数学基础。三、要搞清每章要解决什么问题?如何解决,搞清各种方法的思想及其数学原理,注重基本概念及基本方法,不要死记硬背。四、及时复习,在复习基础上做给定的习题。并且,习题要自己先做,不要一上来就看答案。实在不会做再看解答,但必须自己搞清为什么这样做。数值分析是一门理论与实践相结合的学科,这与我们从小到大接触到的许多纯理论学科的学习方法是有很大差异的。所以在学习的时候,方法必须有所突破,才能有好的学习效果。下面基于我自己的学习,我想说说需要怎么去学这门课程,主要有以下几点:(1)确立学习目标首先应该明确“学习目的”,也就是指在选择学习课程时应该少一些盲从性。要学好数值分析,必须先为自己定下一个切实可行的目标。(2)了解学习内容“预习”是学习中一个很重要的环节。但和其他学科中的“预习”不同的是,数值分析中的不是说要把教材从头到尾地看上一遍,这里的“预习”是指:在学习之前,应该粗略地了解一下诸如课程内容是用来做什么的,用什么方式来实现等一些基本问题。目前,在数学教学中流行的所谓“任务驱动”学习方法,就是指先有结果,再研究实施策略的学习方法。在任务驱动教学中,打破了常规教学方法中由浅入深的基本顺序,每一章节的知识点都是通过几个有代表性的案例来学习的,甚至包括认识程序。让你先体会到效果,从而增加学习兴趣。用这种方法来学习数值分析,尤其是一些视窗界面的计算程序,往往可以达到事半功倍的效果。(3)正确利用书籍建议大家预习教材和参考书,善学习者,可以在一开始用较短的时间对学习课程内容架构一个基本。使我们在继续下面较为复杂的学习之前,可以在一定的高度上对课程有一个大体轮廓。如若不然,一开始就急于“深入其中”,之后便云雾罩不知身在何处了。为自己的学习搭建了基本构架之后,不要急于立刻再为其添砖加瓦。也就是说不要马上去阅读那些参考书。这样做,不仅难度圈套,而且效果也不会很好。暂时从文字中放松一下,换一种方式——从实践中学习。在计算机上新手去检验一下已有的知识。(4)有关实践的问题数值分析的实践,不只是简单地模仿别人的练习。在实践中最难得的是有自己的想法,并尽力去寻求解决办。在这种开支了脑筋的实践中,都会尝到真正的东西。总之,想在任何事情上学有所成,都必须遵循一定的方法。尤其是数值分析,只要方法得当,刻苦勤奋,自己又敢于摸索,基本都不会成为成功的障碍。相信在不久的将来,会把这门课学得很好。此外,还要做到以下几点:(1)上课认真听讲;(2)课后要认真完成作业;(3)注重Matlab等软件上机实验;(4)要多动手编写一些自己的程序;(5)注意掌握各种方法的基本原理;(6)注意各种方法的构造手法;(7)重视各种方法的误差分析;(8)做一定量的习题;(9)注意与实际问题相联系。关于数值分析的一个学习误区就是仅仅学习理论知识,而很难和程序设计结合起来,也就是利用仿真软件(用的比较多的就是Matlab)来把具体的算法实现。然而理论学习毕竟是个过程,最终的目标还是要用于程序设计解决实际的计算问题实际上通过上面的论述,大家已经能够初步地认识到这个学科是应当与程序设计紧密联系才能够体现它的重要性的。所以要主动地多编写一些程序,来把我们学到的数值分析中的算法用程序的方式来实现。通常所学的其他数学类学科都是由公式定理开始,从研究他们的定义,性质再到证明与应用。但实际上,尤其是工程,物理,化学等其它具体的学科。往往你拿到手的只是通过实验得到的数据。如果是验证性试验,需要代回到公式进行分析、验证。但往往更多面对的是研究性或试探性试验,无具体公式定理可代。那就必须通过插值,拟合等计算方法进行数据处理以得到一个相对可用的一般公式。还有许多计算公式理论上非常复杂,在工程中不实用,所以必须根据实际情况把它转化成多项式近似表示。这都是数值分析的任务。学习数值分析,不应盲目记公式,因为公式通常很长且很乏味。我个人认为,应从公式所面临的问题以及用途出发。比如插值方法,就是就是把实验所得的数据看成是公式的解(好比函数图像上的各个点),由这些解反推出一个近似公式,可以具有局部一般性。再比如说拟合,在插值的基础上考虑实验误差,通过拟合能将误差尽可能缩小,之后目的也是得到一个具有一定条件下的一般性的公式。数值分析在工程,经济等许多邻域都有广泛的用途。比如:有些方程是没有解析解就是数学表达式,或者工程上并不关心抽象的表示而是更关心数值结果;数值计算在数学上对理论的猜测也有指导作用,例如,矩阵的谱半径和什么范数的关系,直接分析有点难猜,算出来就可以比一比了;在工程上可以说没有能脱离数值分析的,比如快速傅里叶变换就是频谱分析常用的,现在医学影像学的CT、PET、MRI的影像增强等图像处理PDE方法就要用离散方法化为矩阵问题求解;再比如生化的实验分析中的半透膜的浓度分析,就是一滴药在什么时刻什么位置的浓度是多少,其实就是热传导方程的数值解;还有现在的天气预报,想把预报准些,就把离散

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功