数值计算方法第一章.pptVIP

  • 57
  • 0
  • 约1.01万字
  • 约 81页
  • 2020-01-13 发布于湖北
  • 举报
预备知识 微积分 线性代数 常微分方程 C、C++语言 教学进度 2、天体力学中的Kepler方程 全球定位系统:在地球的任何一个位置,至少可以同时收到4颗以上卫星发射的信号 3、全球定位系统(Global Positioning System, GPS) 4、已经测得在某处海洋不同深度处的水温如下: 深度(M) 466 741 950 1422 1634 水温(oC)7.04 4.28 3.40 2.54 2.13 根据这些数据,希望合理地估计出其它深度(如500米,600米,1000米…)处的水温. 5、人口预测 下面给出的是中国1900 年到2000年的人口数, 我们的目标是预测未来 的人口数(数据量较大时) 6、铝制波纹瓦的长度问题 这个问题就是要求由函数f(x)=sin x 给定的曲线从x=0到x=48英寸间的弧长L. 由微积分学我们知道,所求的弧长可表示为: NY BJ 蝴蝶效应 —— 纽约的一只蝴蝶翅膀一拍,风和日丽的北京就刮起台风来了?! 这是一个病态问题 由题设中的递推公式(1)可看出, 的误差扩大了 5倍后传给 ,因而初值 的误差对以后各步 这就造成 的计算结果严重失真。 计算结果的影响,随着 的增大愈来愈严重。 要怎么做才能解决这个问题呢? 可求得I9 ? 0.017,按改写后的公式可逐次求得 不妨设I9 ? I10,于是由 将公式 变为 I8 ? 0.019 I7 ? 0.021 I6 ? 0.024 I8 ? 0.028 I4 ? 0.034 I3 ? 0.043 I2 ? 0.058 I1 ? 0.088 I0 ? 0.182 稳定的算法 ! 在我们今后的讨论中,误差将不可回避, 算法的稳定性会是一个非常重要的话题。 注:递推公式(1)的舍入误差以5的幂次增长进行传播,因此是数值不稳定的,而递推公式(2)的舍入误差在一定范围内以0.2的幂次进行传播,随着n的增大,误差逐步减少,因此该算法是数值稳定的。 因此,可以看出数值不稳定的算法是不能使用的,实际计算中对任何输入数据都是数值稳定的算法,称为无条件稳定。而对某些数据数值稳定,对其它数据数值不稳定的算法,称为条件稳定。 1. 简化计算步骤,避免误差积累。 一般来说,计算机处理下列运算的速度为 例:多项式求值:给定的 x 求下列n次多项式的值。 解:1. 用一般算法,即直接求和法; 2. 逐项求和法; 3. 秦九韶方法(即Hornor算法); 先计算x2, x3, …, xn, 再作线性组合,需做 2n-1次乘法和n次加法。 解法一:直接求和法 解法二:逐项求和法 按顺序依次计算每一项的值再求和,需做 n(n+1)/2次乘法和n次加法。 解法三:秦九韶算法(即Horner算法) 只需做n次乘法和n次加法。且可以递推实现。 好处:① 节省计算时间; ② 减少舍入误差。 2.要避免两个相近的数相减 在数值计算中,两个相近的数作减法时有效数字会损失。 例: 求 的值。当x = 1000,y 的准确值为0.01580 放大相对误差限,导致计算结果有较大误差! 类似地 (2) 若将原式改写为 则 y = 0.01581 (1)直接相减 有3位有效数字! 只有1位有效数字 当 | x | 1 时: 3.尽量避免绝对值太小的数作分母 例: 如分母变为0.0011,也即分母只有0.0001的变化时 结果相差这么大! 4. 避免大数吃小数 精确解为 ? 算法1:利用求根公式 例:用单精度计算 的根。 在计算机内,109存为0.1?1010,1存为0.1?101。做加法时,两加数的指数先向大指数对齐,再将浮点部分相加。即1 的指数部分须变为1010,则:1 = 0.0000000001 ? 1010,取单精度时就成为: 109+1=01010+0?1010=0?1010 算法2:先解出 再利用 注:求和时从小到大相加,可使和的误差减小。 例:按从小到大、以及从大到小的顺序分别计算 1 + 2 + 3 + … + 40 + 109 5.尽量采用数值稳定性好的算法 在计算过程中产生的舍入误差能被控制在一定的 范围内,且对最后的结果影响不大的算法称为数 值稳定算法。不是数值稳定的算法称为数值不稳 定算法。 数值稳定:运算中误差不增长; 数值不稳定:运算中误差不断增长,产生积累。 约翰·冯·诺依曼 (John von Neumann,190

文档评论(0)

1亿VIP精品文档

相关文档