1、P27.习题一:8.9.10.11.本章要点:绝对误差(限)和相对误差(限)有效数字位数及其与误差的关系数值问题的性态与误差的关系数值算法设计原则本章作业以计算机为工具,求解各种数学模型,都要经历三个过程:总体设计模型的细化详细设计主要为算法设计程序设计计算机数值方法研究的是将数学模型化为数值问题,并研究求解数值问题的数值方法进而设计数值算法数值问题:输入数据与输出数据之间函数关系的一个确定而无歧义的描述即:输入与输出的都是数值的数学问题如求解线性方程组求解二次方程是数值问题求解微分方程不是数值问题将其变成数值问题,即将其“离散化”“离散化”是将非数值问题的数学模型化为数值问题的主要方法,这也
2、是计算方法的任务之一数值方法:是指解数值问题的在计算机上可执行的系列计算公式在计算机上可执行的公式 是指只含有加减乘除的公式现在的计算机中几乎都含有关于开方的标准函数sqrt()常见的在计算机上不能直接运行的计算有:开方、极限、超越函数、微分、积分等等要在计算机上实行上述运算需将其化为可执行的等价或近似等价运算应化为如求根公式应化为公式研究数值方法的主要任务:1.将计算机上不能执行的运算化为在计算机上可 执行的运算2.针对所求解的数值问题研究在计算机上可执行 的且有效的计算公式3.因为可能采用了近似等价运算,故要进行误差分析,即数值问题的性态及数值方法的稳定性本课程的重点就是对线性方程组、微积
3、分、微分方程、矩阵特征值及回归拟合等问题寻找行之有效的数值方法数值算法是指有步骤地完成解数值问题的过程.数值算法有四个特点:1.目的明确算法必须有明确的目的,其条件和结论均应有清楚的规定2.定义精确对算法的每一步都必须有精确的定义3.可执行算法中的每一步操作都是可执行的4.步骤有限算法必须在有限步内能够完成解题过程例1.给出等差数列1,2,3,10000的求和算法解:记数器置零模型误差在建立数学模型过程中,要将复杂的现象抽象归结为数学模型,往往要忽略一些次要因素的影响,而对问题作一些简化,因此和实际问题有一定的区别.观测误差在建模和具体运算过程中所用的数据往往是通过观察和测量得到的,由于精度的
4、限制,这些数据一般是近似的,即有误差截断误差由于计算机只能完成有限次算术运算和逻辑运算,因此要将有些需用极限或无穷过程进行的运算有限化,对无穷过程进行截断,这就带来误差.如:若将前若干项的部分和作为函数值的近似公式,由于以后各项都舍弃了,自然产生了误差Taylor展开舍入误差在数值计算过程中还会遇到无穷小数,因计算机受到机器字长的限制,它所能表示的数据只能有一定的有限位数,如按四舍五入规则取有限位数,由此引起的误差过失误差由于模型错误或方法错误引起的误差.这类误差一般可以避免数值计算中除了过失误差可以避免外,其余误差都是难以避免的.数学模型一旦建立,进入具体计算时所考虑和分析的就是截断误差和舍
5、入误差经过大量的运算之后,积累的总误差有时会大得惊人,因此如何控制误差的传播也是数值方法的研究对象.定义1.绝对误差限或误差限,显然或且哪个更精确呢?定义2.relativeerror绝对误差限相对误差限往往未知代替相对误差代替相对误差限因此例1.解:例2.解:可见,经四舍五入取近似值,其绝对误差限将不超过其末位数字的半个单位即绝对误差增长因子相对误差增长因子思考:试分析四则运算、乘方和开方的误差传播规律有4位有效数字有6位有效数字定义3.有8位有效数字只有4位有效数字且因此,可根据上述分析对有效数字有如下结果:或定理1.P15.定义4的错误例3.求下列四舍五入近似值的有效数字个数.3个3个4
6、个4个3个5个例4.实际上只1有个例5.从以上分析可见,四舍五入的近似值的数字都是有效数字而不是四舍五入得到的近似值的数字不一定是有效数字定理2.证明:即则有则由定理1.可知例6:解:定理3 该结论可以参照定理2的证明,请同学们自证补充例7.解:则有定理3,相对误差满足即应取4位有效数字,近似值的误差不超过0.1%.(略)例8.计算定积分解:误差放大 5千倍!但如果利用递推公式因此在计算公式选用及算法设计时,应注意以下原则1.四则运算中的稳定性问题(1)防止大数吃小数这一类问题主要由计算机的位数引起假如作一个有效数字为4位的连加运算误差会放大误差不会放大而如果将小数放在前面计算在作连加时,为防
7、止大数吃小数,应从小到大进行相加,如此,精度将得到适当改善.当然也可采取别的方法.(2)作减法时应避免相近数相减两个相近的数相减,会使有效数字的位数严重损失由于在算法设计中,若可能出现两个相近数相减,则改变计算公式,如使用三角变换、有理化等等例9.解方程解:由中学知识韦达定理可知,方程的精确解为而如果在字长为8,基底为10的计算机上利用求根公式机器吃了因此在计算机上上式是解二次方程的数值公式(3)避免小数作除数和大数作乘数由误差传播的估计式在算法设计时,要避免这类算法在计算公式中出现2.提高算法效率问题(1)尽量减少运算次数15次乘法运算而不是255次使用秦九韶算法对多项式可大大减少计算量(2)尽量使用耗时少的运算(3)充分利用存储空间