海阳摄影家协会:各位好汉,谁有数值分析的电子版材料可以提供,在下感激不尽!

来源:百度文库 编辑:高考问答 时间:2024/04/28 21:00:06

数值分析

数值分析是研究“连续数学”(区别于“离散数学”)问题的算法的学科。这说明了它主要处理实数与复数的问题,求实数与复数的领域的数值线性代数,解微分方程,以及处理其他与物理学和工程学有关的问题。

简要介绍

一些连续数学中的问题可以通过一种算法而得到准确的结果。这些算法称为直接方法。比如解决线性方程系统的高斯消元法,和线性规划中的单纯形法。

尽管如此,并非所有的问题都存在直接方法。我们可能需要将连续问题转换为一个离散的问题。这个过程叫做离散化。另一个可行的方法是使用迭代。这种方法来自于猜测和寻找一个接近于要求解的近似值的方法。即使当直接方法不存在时,迭代法也可能是更可取的方法,因为它效率高。

误差的产生与传播

由此得出结论,误差的研究是构成数值分析的重要的组成部分。误差产生于迭代方法,因为近似值不同于真实值。同样由于离散问题的解不能等同于连续问题的解,离散方法也存在着离散误差的问题。即使使用了直接方法,但由于使用了浮点数,误差也是不可避免的。

当一个误差产生时,它会通过计算过程传播。这就产生了数值稳定性的概念:当产生的误差,不会在计算过程中产生过大的增长,就称这个算法是数值稳定的。这种情况只有当问题具备很好的条件时才有可能。也就是说,当问题的已知条件改变微小的值,结果只产生微小的变化。的确,如果问题的条件不好,那么所有的误差都会剧烈增长。

应用

通常,数值分析的算法应用于计算一些科学和工程设计问题。比如:桥梁和飞机的结构设计(可以参考计算物理学和计算流体动力学),天气预报,气候模拟,分子分析与设计(计算化学),寻找石油储藏。事实上,所有的超级计算机都在连续不断地运用着数值分析算法。

总之,效率发挥着重要的作用,并且启发式的方法比一个具有坚实理论基础的方法更重要,因为它的更有效。一般来说,数值分析使用经验的估计值去寻找新的方法和分析问题的目的,即使它也使用数学公理,定理和证明。

软件

现在,所有的算法都已经在计算机中实现,运行。Netlib知识库中收藏着丰富的数值问题的程序,它们大多是用Fortran和C语言编写的。(http://www.answers.com/main/ntquery?method=4&dsid=2222&dekey=Netlib&gwp=8&curtab=2222_1)商用的产品实现了很多不同的数值算法包括IMSL和NAG方法库;还有另一个免费的选择是GNU的科学函数库。另一种有特别吸引力的获得途径是Numerical Ricipes库,它重点放在算法的详细的理解之上。

有许多执行了数值计算的计算机程序,它们有:

· MATLAB:(一种用于数学计算的程序,特别是线性代数的计算),它是一个被广泛使用的执行数值计算的程序。它与它特有的程序语言同时产生,这种语言可用于实现数值计算。
· GUN Octave:它是一个免费的近似Matlab的程序。
· R编程语言:一个被广泛使用的擅长于数据操作和统计的系统。有几百个专用包可免费下载可到。
· Scilib。
· IDL 编程语言。

研究领域

根据解决的问题不同,数值分析领域可被分为不同的学科。

★函数的值

其中一个最简单的问题是,给定一点的函数估计。但是,即使估计一个多项式也不是直接得到的:Homer计划经常比明显的方法更有效。一般而言,评估和控制浮点运算产生的舍入误差是很重要的。

★内插,外插和回归

内插方法可解决下列问题:为一些点给出未知的函数值,或在所给的点之间的其它点的函数值。一个非常简单的方法是使用线性内插方法,它是假设未知函数在每两个点之间都是线性的。这可以一般化为多项式内插法,这种方法有时更加精确但是会有龙格现象(Runge phenomenon)。其他的插值方法使用定位函数,如:样条或微波。

除了我们先寻找已知点范围之外的函数值外,外插法与内插法很相似。

回归也很类似,但是它考虑到那些数据是不精确。我们想根据给出的一些点和这些点的一些函数值(有误差),决定未知的函数。实现它最流行的方法是最小方差(least squares)。

★解方程组

另一个重要的问题是求给定方程组的解。有两个情况是非常重要的,那就是方程是线性的还是非线性的。

在解线性方程组的方法的改进上,我们已经做了很多的努力。标准的方法有“高斯-约旦消元法”和“LU-分解法”。迭代法比如“共轭梯度法”通常比较适合于大型系统。

根查找算法用于解决非线性方程组(如此命名的原因是有个函数的根是该函数为此输出零的一个条件)。如果该函数是可微的并且导数是可知的,那么牛顿(插值)法个合适的选择。线性化是解非线性问题的另一种技术。

★最优化

主要文章:优选法(数学)

http://www.answers.com/main/ntquery?method=4&dsid=2222&dekey=Optimization+%28mathematics%29&gwp=8&curtab=2222_1

最优化问题需要寻找所给的函数的最大或最小值的点。经常,这个点必须满足一些约束调条件。

根据目标函数和约束限制的形式,最优化领域可进一步分为几个子域。举个例子,线性规划处理目标函数和约束条件都是线性的情况。在线性规划中的一个著名的方法就是“单纯形法”。

拉格朗日乘子可用于将约束的最优问题简化为无约束的最优问题。

★积分评测

主要文章:数值积分

http://www.answers.com/main/ntquery?method=4&dsid=2222&dekey=Numerical+integration&gwp=8&curtab=2222_

数值积分,也叫数值积分法,用于求解定积分。流行的方法是使用“牛顿-科特”公式(比如中点法则或梯形法则),或者高斯求积法。尽管如此,当积分定义的维数很大时,这种方法会付出高昂的代价。在这种情况下,可能要使用“蒙特卡罗法”(统计试验法),或者当定义域(维数)适当大时,使用稀疏栅格法。

★微分方程

主要文章:数值常微分方程组,数值偏微分方程组

不管是解常微分方程还是解偏微分方程,数值分析都同样关心解计算的逼近方法。

偏微分方程是把问题离散化成有限维的子空间来求解。这种方法可以通过一个“有限元法”, 或者一个“有限差分法”,或者(特别是在工程技术中)一个“有限容积法”来完成。这些方法的理论依据经常牵涉到一些泛函分析的理论。这可把问题简化为代数方程的求解。

历史

数值分析领域的研究比现代计算机的发明早了许多世纪。事实上,过去的许多数学家就投入数值分析的研究当中,很明显从现在的一些重要的算法的名称就可以看出,比如:“牛顿插值”,“拉格朗日插值多项式”,“高斯消元”,或着“欧拉方法”。
为了方便手算,出版了许多的书,书中包含有很多的公式和很多数据表如插值点和一些函数的系数。这些表格中的数据经常要保留16为小数,有些函数则计算出了更多位的小数。使用者可以利用这些表中的数据,代到给定的公式并非常好地完成许多函数的数值估计。为了规范该领域的工作, Abramovitz和Stegun编辑NIST出版物。这是一本1000多页的书,书中包含了大量常用的公式和函数以及它们的许多点的值。当计算机可以用时,这些函数的值不再非常的重要。但是那些大量的公式的列表依然很方便。
机械计算器也是为手动计算而创造出的工具。在20世纪40年代时,这些计算器发展到了电子计算机。而且发现这些计算机对于管理目的也非常有用。但是,计算机的发明同样影响了数值分析的领域,因为现在能够实现更大更、复杂的计算器了。