一、背景
教材:数值分析 第5版 李庆扬 王能超 易大义
第一章——学习目标与要求
- 了解数值计算方法研究的对象及特点;
- 掌握计算绝对误差、绝对误差限、相对误差、相对误差限、有效数字的方法;
- 了解病态问题和条件数;
- 了解数值算法的稳定性;
- 掌握避免误差危害的若干原则;
- 掌握数值计算中算法设计的常用技术。
二、正文内容
1.1.1 数学科学与数值分析
数值分析也称计算数学,是数学科学的一个分支,研究用计算机求解各种数学问题的数值计算方法及其理论与软件实现,用计算机求解科学技术问题通常经历以下步骤:
- 根据实际问题建立数学模型
- 由数学模型给出数值计算方法
- 根据计算方法编制算法程序(数学软件)在计算机上算出结果
1.1.2 计算数学与科学计算
略
1.1.3 计算方法与计算机
略
1.1.4 数值问题与算法
能用计算机就算的“数值问题”是指输入数据(即问题中的自变量和原始数据)与输出数据(结果)之间函数关系的一个确定而无歧义的描述,输入输出数据可用有限维向量表示。
计算的基本单位是算法元,它由算子、输入元和输出元组成。
算子:简单操作,如算术运算(加减乘除)、逻辑运算、宏操作、向量运算、数组传输、基本初等函数求值……
输入元、输出元:若干变量/向量。
进程:算法元的有限序列,由一个或多个算法元组成。
一个数值问题的算法:按规定顺序执行一个或多个完整的进程,通过它们将输入元变换成一个输出元。
面向计算机的算法:串行算法(只有一个进程的算法)、并行算法(两个以上进程的算法)。
计算复杂性:计算时间复杂性、存储空间复杂性。
数值分析是研究数值问题的算法:面向计算机、有可靠的理论分析、有好的计算复杂性、有数值实验。
模型误差:数学模型与实际问题之间出现的误差。通常假定数学模型是合理的,误差忽略不计,不予讨论。
观测误差:由观测(物理量如温度、长度、电压等)产生的误差。不予讨论。
数值分析研究用数值方法求解数学模型产生的误差。
截断误差/方法误差:近似解与精确解之间的误差。
舍入误差:由于计算机的字长有限,原始数据在计算机上表示时会产生误差,计算过程可能产生新的误差;由原始数据或机器中的十进制数转化为二进制数产生的初始误差。
误差估计问题:研究计算结果的误差是否满足精度要求
1.2.2 误差与有效数字
定义1 设x为准确值,x*为x的一个近似值,称e*=x*-x为近似值的绝对误差,简称误差。
近似值x*的误差e*:如定义1。
定义2 若近似值x*的误差限是某一位的半个单位,该位到x*的第一位非零数字共有n位,就说x*有n位有效数字。
无量纲:相对误差、相对误差限;有量纲:绝对误差(误差)、绝对误差限(误差限)。
具有n位有效数字,误差限:
定理1 设近似数x*表示为
说明:有效位数越多,相对误差限越小。
1.2.3 数值运算的误差估计
1.3.1 算法的数值稳定性
定义3 一个算法如果输入数据有误差,而在计算过程中舍入误差不增长,则称此算法 是数值稳定的;否则称此算法为不稳定的。
1.3.2 病态问题与条件数
病态问题:对一个数值问题本身如果输人数据有微小扰动(即误差),引起输出数据(即问题解)相对误差很大
注意病态问题不是计算方法引起的,是数值问题自身固有的,因此,对数值问题首先要 分清问题是否病态,对病态问题就必须采取相应的特殊方法以减少误差危害。
1.3.3 避免误差危害
数值计算中通常不采用数值不稳定算法,在设计算法时还应尽量避免误差危害,防止有 效数字损失,通常要避免两相近数相减和用绝对值很小的数做除数,还要注意运算次序和减 少运算次数。
1.4.1 多项式求值的秦九韶算法
计算方法:
然后由内向外逐层计算一次多项式的值,将n次多项式f(x)的值转化为求n个一次多项式的值。
结论:对于一个n次多项式,至多做n次乘法和n次加法
Matlab代码实现秦九韶算法:
1.4.2 迭代法与开方求值
迭代法是一种按同一公式重复计算逐次逼近真值的算法,是数值计算普遍使用的重要方法,以开方运算为例,它不是四则运算,因此在计算机上求开方值就要转化为四则运算,使用的就是迭代法。
迭代法:也称辗转法,是一种不断用变量的旧值递推新值的过程,跟迭代法相对应的是直接法(或者称为一次解法),即一次性解决问题。迭代算法是用计算机解决问题的一种基本方法,它利用计算机运算速度快、适合做重复性操作的特点,让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值,迭代法又分为精确迭代和近似迭代。比较典型的迭代法如“二分法”和”牛顿迭代法”属于近似迭代法。
1.4.3 以直代曲与化整为”零”
1.4.4 加权平均的松弛技术
1.5 数学软件
MATLAB是 MATrixLABoratory 的缩写,即矩阵实验室,它整合了非线性方程组、数值积分、三次样条函数、曲线拟合、最优化、常微分方程和绘图工具等功能,但它主要是以EISPACK和 LINPACK子程序为基础.MATLAB目前是由C和汇编语言编写的,它的基本结构是执行矩阵运算,是一个对求解线性方程特别有用的功能强大的自包容系统. MATLAB的基本数据单元是不需要指定维数和特殊说明的矩阵,可把它看成一种计算机语言,它比其他高级语言简单方便,但绝不能取代高级语言
三、课后作业
1)matlab
1、略,主要熟悉matlab基本操作
2、分析:圆心(2,1)半径的平方为2,;圆心(2.5,0)半径的平方为3.5
关于matlab画圆的方法参考:Matlab画圆 – I加加 – 博客园 (cnblogs.com)
Matlab中rectangle函数使用_jk_101的博客-CSDN博客
2)复习与思考题
答案:略
- 什么是数值分析与数学科学和计算机的关系如何/span>
- 何谓算法何判断数值算法的优劣/span>
- 什么是绝对误差与相对误差么是近似数的有效数字与绝对误差和相对误差有何关系
- 什么是算法的稳定性何判断算法稳定什么不稳定算法不能使用
- 什么是问题的病态性是否受所用算法的影响
-
判断下列命题的正确性∶
- 解对数据的微小变化高度敏感是病态的
- 高精度运算可以改善问题的病态性
- 无论问题是否病态,只要算法稳定都能得到好的近似值
- 用一个稳定的算法计算良态问题一定会得到好的近似值
- 用一个收敛的迭代法计算良态问题一定会得到好的近似值
- 两个相近数相减必然会使有效数字损失
- 计算机上将1000个数量级不同的数相加,不管次序如何结果都是一样的
3)12题:填空+判断
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!