欢迎来到天天文库
浏览记录
ID:65595300
大小:453.00 KB
页数:38页
时间:2024-08-29
《第三章 数值计算方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
《计算机在冶金中的应用》计算机在稀土工程中的应用 第三章数值计算方法 第3章数值计算方法计算方法(也称数值分析、数值求解):研究求解数学模型的算法及相关理论,它是随着计算机技术的发展而发展起来的应用数学分支。在工程实际和科学研究中,绝大多数数学模型很难求得其解析解,或根本就没有解析解,只能用计算机求出其数值解。从应用角度来看,这也就足够了。在数值求解中,常使用如下技术:1.迭代求解技术2.连续问题离散化技术3.离散数据连续化技术评价算法优劣的标准:1.速度:速度涉及计算量、算法收敛速度等2.精度:涉及计算误差 3-1误差与有效数字数值分析,常常给人一种不严格、不准确的感觉。实际上,误差是不可避免的,近似是正常的,根本不存在绝对的严格和准确。问题是我们如何分析误差,控制误差,保证计算结果误差在允许范围内。 1.误差的来源在用数模处理实际问题时,误差来源主要有以下四个方面:模型误差、观测误差、截断误差、舍入误差(1)模型误差:模型的建立往往要忽略一些次要因素,所以模型的解与实际结果必然存在一定的误差,这类误差称为模型误差;(2)观测误差:数学模型常常要用到一些参量数据,如温度、初始浓度等,这些数据又往往是由观测获得,由观测数据带来的误差称为观测误差;(3)截断误差:许多函数常用无限级数表示,而用计算机进行计算时,只能取前有限项,由此引起的误差称为截断误差;比如函数:(4)舍入误差:由于计算机表示的实数有效位数有限,超出部分只能按四舍五入法处理,这部分误差称为舍入误差。尽管一次舍入误差极小,但当运算次数极多时,误差的积累也可能不可忽视。 2.绝对误差与相对误差设x*为某数据的准确值,x为近似值绝对误差:若称为绝对误差限(2)相对误差:当准确值未知时,可用近似值代替:称为相对误差限 3.有效数字设近似值x的绝对误差限不大于某一位上的半个单位,且从该位到的第一非零数字位共有n位,则近似值x有n位有效数字。设数据近似值为:0.0276521035712652若绝对误差限为:0.00006,则有效数字有3位,即0.0276;若绝对误差限为:0.00004,则有效数字有4位,即0.02765;0.00006<0.0005=0.5×10-30.00004<0.00005=0.5×10-4相对误差与有效数字位数,在最保守的情况下有如下关系:|相对误差| 3-2数值计算的误差估计数值计算中误差的产生与传播的情况非常复杂,对误差估计也比较困难,本节主要介绍采用函数的泰勒(Taylor)级数展开来估计误差,这是一种常用方法。 1.函数运算的误差传播估计同理,对多元函数 2.算术运算的误差传播估计设两个近似数x1,x2的误差限分别为,则其两个数的四则运算误差,可用前述多元函数运算误差估计公式计算: 3-3数值计算中的一些基本原值在数值计算中,为使误差在传播过程中不增大,应遵循一些基本原则:1.避免绝对值小的数作除数2.避免两个相近的数据相减3.防止大数“吃”小数4.尽量减少计算工作量5.选用数值稳定性好的算法 1.避免绝对值小的数作除数由除法的误差估计公式可知,除数的绝对值越小,商的绝对误差越大。所以要尽量避免采用绝对值很小的数作除数。 2.避免两个相近的数据相减当两个相近的数据相减时,差的有效数字位数大大减少,相对误差大大增加。相对误差为了避免两个相近的数据直接相减,常用恒等式将其变形后计算,如:绝对误差 3.防止大数“吃”小数一个绝对值很大的数与一个绝对值很小的数相加时,很容易发生大数“吃”小数的现象。这是因为计算机表示的实数有效数字位数有限所至。当绝对值很小的数个数极多时,对计算结果的影不可忽视。在处理这类累加问题时,应按绝对值从小到大的顺序进行累加。 4.尽量减少计算工作量在考虑算法时应注意尽量减小运算次数,计算机完成算法运算所花费的时间与算术运算量有关,主要取决于乘法、除法的运算次数,减少乘法、除法的运算次数,不仅缩短了解题时间,而且误差的积累相应也要小一些。比如,多项式求和可用两种算法处理:(1)直接累加(2)秦九韶算法共进行n次乘法运算共进行n(n+1)/2次乘法运算 5.选用数值稳定性好的算法对同一问题,采用不同数值求解算法,对计算结果的误差影响也不一样。舍入误差对计算结果影响不大的算法称为数值稳定算法。实际上,分析一个算法在计算过程中是否稳定,就是考察其误差是否增大。例:计算定积分经推导,有下式成立: 算法1:正向递推由此可见,该递推算法随n的增大,误差传播迅速增大,是不稳定算法。由正向递推计算I20得 算法2:逆向递推由:有:按In估计式:取:按得逆向递推 3-4非线性方程求解非线性方程求解是科学与工程中的常见问题。通常将非线性方程表示为如下形式:若函数为多项式时,即:则称为代数方程,否则称为超越方程。对于高于4次的代数方程,不存在通用求解公式,而对超越方程,一般很难有解析解。所以数值求解就是一种非常实用和有效的方法。 用计算机求解非线性方程的步骤若方程有多个解,可先对方程按步长法进行根隔离,找出隔根区(区间内只有一个解);(2)利用迭代法求解。在该区间内确定一合适的初值x0,按某种算法产生一个近似解序列,该序列收敛于精确解x* 2.二分法a1b1x1a0b0x0设函数在区间上连续,且,采用二分法求解可按下列步骤进行:(1)取近似解x为区间中点值,计算f(x);(2)若,则解在区间,调整(3)若,则解在区间,调整反复循环执行,直至或 二分法收敛速度与误差因每次二分后,取有根区间的中间值为近似解:与准确解的误差为: 例:铜闪速熔炼反应塔产物温度计算热收入项热支出项热支出项计算公式入炉物料显热铜锍显热化学反应热炉渣显热重油燃烧热烟气显热塔散热经验数据通过求解方程:热收入+热支出=0,即可求得温度T。现已知某生产时期热平衡方程如下,求温度T: 3.简单迭代法将方程改写为由此得反复迭代,直至相邻两次解的相对误差小于给定精度即可。如前面的例子可改写为:(也称不动点迭代法) 简单迭代的误差与收敛两式相减,并由中值定理有:若:为小于1的正数则:即:所以,只要其导数的绝对值小于1,可保证收敛。 简单迭代的加速当导数g’(x)变化不大时,近似有:为加快收敛速度,可预先对近似解进行补尝:移项后,两边再减 4.牛顿迭代法牛顿迭代法其实质是将非线性函数近似为线性函数来处理,即在近似解xn处,按泰勒级数展开,忽略高阶项,得线性方程:由此得牛顿迭代公式: 3-5线性方程组数值求解消元法迭代法雅可比法高斯-塞德尔法松弛法约当法高斯法追赶法 1.雅可比法(以三元线性方程组为例)直至相邻两次解误差小于给定精度 2.塞德尔法由于塞德尔法总是使用最新的迭代解进行运算,所以其收敛速度高于雅可比法。 3.松驰法无论是雅可比法,或是塞德尔法,都可使用松驰法进一步加速:通常取,此时称为超松驰迭代,具体值取多大,通常由试算确定。 4.迭代法求解举例 5.消元法常用的消元法主要有以下三类:约当法消元法高斯消元法(约当法的改进算法)追赶法(针对三对角型方程组)实用中使用最多的是高斯消元法。 6.约当消元法约当消元法的步骤:将第一个方程x1的系数化为1,并从其余方程中消除x1;(2)将第二个方程x2的系数化为1,并从其余方程中消除x2;……依此类推,直至每一个方程仅含一个变元为止。可以证明,对于n元线性方程组的求解,所用乘法次数为: 约当消元法实例 5.高斯消元法高斯(Gauss)消元法是约当法的改进,目的是为了减少计算量。高斯法对子方程组不断消元降阶,直到最后一个方程仅含一个变元,形成三角方程组,最后通过回代求出其它变元的解。 6.高斯消元过程举例 回代求解逐步消元7.求解步骤
此文档下载收益归作者所有
举报原因
联系方式
详细说明
内容无法转码请点击此处