计算方法教程 数学与统计学院 马军 理科楼 338 QQ : 67017261 foyo2000@126.com
计算方法教程 数学与统计学院 马军 理科楼 338 QQ 67017261 foyo2000@126.com
求解方程组
例 使用高斯消去法解方程组
计算方法教程 《计算方法教程》凌永祥 陈明逵 西安交通大学出版社
计算方法教程 参考书 《计算方法》邓建中,西安交通大学出版社 《数值分析》李乃成,梅立泉 科学出版社
课程基础 数学基础 计算机基础 高等数学 线性代数 计算机语言 数据结构
第1章 绪论 计算方法的英文翻译 Calculation method Computational Thoughts
第1章 绪论 什么是计算方法 《计算方法》中介绍基本的数学问题中的主要数值方法,介绍方法的思想、结构、条件、对输入数据的要求、生成数据的意义、应注意的事项等等 介绍对最常见的应用问题进行数值处理的可靠方法 在科学计算中的一些最基本的概念
计算方法的任务 用计算机计算出数学问题的数值解 寻求、设计求解各类问题的数值方法 对数值方法的数值性质进行研究 (1)分析方法的可靠性 第1章 绪论 1.1 数值计算 计算方法的任务 用计算机计算出数学问题的数值解 寻求、设计求解各类问题的数值方法 对数值方法的数值性质进行研究 (1)分析方法的可靠性 (2)分析方法的效率
问题的类型 离散问题 如求解方程组 连续问题的离散化 如数值积分、数值微分、常微分方程数值解、偏微分方程数值解 第1章 绪论 1.1 数值计算 问题的类型 离散问题 如求解方程组 连续问题的离散化 如数值积分、数值微分、常微分方程数值解、偏微分方程数值解 离散问题的连续化 数值拟合、数据逼近
定义 误差是指近似值与真正值之差 模型误差 数据误差 截断误差 舍入误差 1.2 数值方法的分析 在建立数学模型时,忽略次要因素而造成的 第1章 绪论 1.2 数值方法的分析 定义 误差是指近似值与真正值之差 误差分类 模型误差 在建立数学模型时,忽略次要因素而造成的 数据误差 由于问题中的值通过观察得到的,从而产生误差 截断误差 通过近似替代,简化为较易求解的问题 舍入误差 由于计算机中的性能限制而造成的
第1章 绪论 1.2 数值方法的分析 定义 通常以计算机完成操作 a+b*c ,即一次浮点加法 和一次浮点乘法所需的时间作为一个时间单位,称为 浮点运算,记为flop. 11500 flop 125000 flop 2200 flop
第1章 绪论 1.2 数值方法的分析 浮点数系
第1章 绪论 1.2 数值方法的分析 1.2.1 计算机上数的运算
1.2.1 计算机上数的运算 浮点数运算结果产生误差的情况 (1)结果的指数l不在范围[L,U]中 上溢会出错,下溢会变为0 第1章 绪论 1.2 数值方法的分析 1.2.1 计算机上数的运算 浮点数运算结果产生误差的情况 (1)结果的指数l不在范围[L,U]中 上溢会出错,下溢会变为0
需对结果进行舍入处理,产生的误差称为舍入误差 第1章 绪论 1.2 数值方法的分析 1.2.1 计算机上数的运算 浮点数运算结果产生误差的情况 (2)结果的尾数多于t位数字 需对结果进行舍入处理,产生的误差称为舍入误差
第1章 绪论 1.2 数值方法的分析 1.2.1 计算机上数的运算 浮点数运算结果产生误差的情况 (2)结果的尾数多于t位数字
第1章 绪论 1.2 数值方法的分析 1.2.1 计算机上数的运算 浮点数运算结果产生误差的情况 (2)结果的尾数多于t位数字
(4)在相同的指数条件下,两个数量相差较大的数字相加(减)时,较小数的有效数字会被丧失 第1章 绪论 1.2 数值方法的分析 1.2.1 计算机上数的运算 浮点数运算结果产生误差的情况 (3)在浮点数系中数据的尾数字长t是有限 当两个相近数相减时,会损失比较多的有效数字 (4)在相同的指数条件下,两个数量相差较大的数字相加(减)时,较小数的有效数字会被丧失
浮点运算原则 1.2.1 计算机上数的运算 (1)避免产生大结果的运算,尤其是避免小数作为除数 参加运算; (2)避免“大”“小”数相加减; 第1章 绪论 1.2 数值方法的分析 1.2.1 计算机上数的运算 浮点运算原则 (1)避免产生大结果的运算,尤其是避免小数作为除数 参加运算; (2)避免“大”“小”数相加减; (3)避免相近数相减,防止大量有效数字损失; (4)尽可能简化运算步骤,减少运算次数。
定义 数据相对小的变化引起解的相对大的变化的问题称为病态问题,否则称为良态问题。 第1章 绪论 1.2 数值方法的分析 1.2.2 问题的性态 定义 数据相对小的变化引起解的相对大的变化的问题称为病态问题,否则称为良态问题。 问题的性态就是问题的解对原始数据扰动的敏感性
第1章 绪论 1.2 数值方法的分析 1.2.2 问题的性态
定义 在执行某一数值方法时,如果由初始误差导致最终解的误差能被有效地控制,这样的方法是数值稳定的 第1章 绪论 1.2 数值方法的分析 1.2.3 方法的数值稳定性 定义 在执行某一数值方法时,如果由初始误差导致最终解的误差能被有效地控制,这样的方法是数值稳定的 反之,如果各个计算过程中的误差不断增长,且不能被有效地控制,则该方法称为数值不稳定的 方法的数值稳定性是指运算中由初始误差通过计算导致的最终解的误差的可控性
定义 算法是由有限个无二义性的法则组成的一个计算过程,这些法则明确规定了一串运算,以产生一个问题或者一类问题的解 第1章 绪论 1.3 数值方法的分析 定义 算法是由有限个无二义性的法则组成的一个计算过程,这些法则明确规定了一串运算,以产生一个问题或者一类问题的解 算法可以使用框图、算法语言、伪代码、数学语言、自然语言来进行描述
具有的特征 算法应具有以下的特征: 正确性 有穷性 适用范围广 运算工作量少 使用资源少 逻辑结构简单 便于实现 计算结果可靠 第1章 绪论 1.3 数值方法的分析 具有的特征 算法应具有以下的特征: 正确性 有穷性 适用范围广 运算工作量少 使用资源少 逻辑结构简单 便于实现 计算结果可靠
算法实例 算法SUM1(A,n,S) 将数组A中的n个数按顺序相加,并将和存放于S中 1. 0->s 2. For i=1,2,…,n 第1章 绪论 1.3 数值方法的分析 算法实例 算法SUM1(A,n,S) 将数组A中的n个数按顺序相加,并将和存放于S中 1. 0->s 2. For i=1,2,…,n 2.1 S+a[i]->S 3. 输出S
将数组A中的n个数中的正数与负分别相加,并将和存放于S中 第1章 绪论 1.3 数值方法的分析 算法SUM2(A,n,S) 将数组A中的n个数中的正数与负分别相加,并将和存放于S中 1. 0->s1;0->S2; 2. For i=1,2,…,n 2.1 if a[i] <0 then S1+a[i]->S1 else S2+a[i]->S2 3. S1+S2->S
将数组A中的有相同符号的n个数的和,按绝对值递增的顺序将它们求和 第1章 绪论 1.3 数值方法的分析 算法SUM3(A,n,S) 将数组A中的有相同符号的n个数的和,按绝对值递增的顺序将它们求和 1. 0->s; 2. For i=1,2,…,n 2.1 max->m 2.2 for k=1,2,…,n 2.2.1 If a[k]<>0 and abs(a[k])<m then abs(a[k])->m;k->j; 2.3 S+a[i]->s 2.4 0->a[i]
将数组A中的数按其符号分成两组,分别按算法SUM3求和,最后计算和S 第1章 绪论 1.3 数值方法的分析 算法SUM4(A,n,S) 将数组A中的数按其符号分成两组,分别按算法SUM3求和,最后计算和S 1. 0->n1;0->n2; 2. For i=1,2,…,n 2.1 if a[i]>=0 then n1+1->n1; a[i]->b[n1]; else n2+1->n2; a[i]->c[n2]; 3. 调用SUM3(B,n1,S1); 4. 调用SUM3(C,n2,S2); 5. S1+S2->S
可靠的算法,每一步的误差不应对计算结果产生过大影响,也即具有稳定性. 第1章 绪论 1.3 数值方法的分析 计算机在计算过程中,由于原始数据可能有误差,每次运算也 可能产生舍入误差,误差积累起来,很可能淹没真正解,使得结 果根本不可靠 可靠的算法,每一步的误差不应对计算结果产生过大影响,也即具有稳定性. 良态问题 + 稳定的计算方法 → 可靠的计算结果