数值分析——第一章

一、背景

教材:数值分析 第5版 李庆扬 王能超 易大义

第一章——学习目标与要求

  • 了解数值计算方法研究的对象及特点;
  • 了解误差的来源及分类;
  • 掌握计算绝对误差、绝对误差限、相对误差、相对误差限、有效数字的方法;
  • 了解病态问题和条件数;
  • 了解数值算法的稳定性;
  • 掌握避免误差危害的若干原则
  • 掌握数值计算中算法设计的常用技术

二、正文内容

1.1.1 数学科学与数值分析

数值分析也称计算数学,是数学科学的一个分支,研究用计算机求解各种数学问题的数值计算方法及其理论与软件实现,用计算机求解科学技术问题通常经历以下步骤:

  1. 根据实际问题建立数学模型
  2. 由数学模型给出数值计算方法
  3. 根据计算方法编制算法程序(数学软件)在计算机上算出结果

1.1.2 计算数学与科学计算

1.1.3 计算方法与计算机

1.1.4 数值问题与算法

能用计算机就算的“数值问题”是指输入数据(即问题中的自变量和原始数据)与输出数据(结果)之间函数关系的一个确定而无歧义的描述,输入输出数据可用有限维向量表示。

计算的基本单位是算法元,它由算子、输入元和输出元组成。

算子:简单操作,如算术运算(加减乘除)、逻辑运算、宏操作、向量运算、数组传输、基本初等函数求值......

输入元、输出元:若干变量/向量。

进程:算法元的有限序列,由一个或多个算法元组成。

一个数值问题的算法:按规定顺序执行一个或多个完整的进程,通过它们将输入元变换成一个输出元。

面向计算机的算法:串行算法(只有一个进程的算法)、并行算法(两个以上进程的算法)。

计算复杂性:计算时间复杂性、存储空间复杂性。

数值分析是研究数值问题的算法:面向计算机、有可靠的理论分析、有好的计算复杂性、有数值实验。

1.2.1 误差来源与分类

模型误差:数学模型与实际问题之间出现的误差。通常假定数学模型是合理的,误差忽略不计,不予讨论。

观测误差:由观测(物理量如温度、长度、电压等)产生的误差。不予讨论。

数值分析研究用数值方法求解数学模型产生的误差

截断误差/方法误差:近似解与精确解之间的误差。

舍入误差:由于计算机的字长有限,原始数据在计算机上表示时会产生误差,计算过程可能产生新的误差;由原始数据或机器中的十进制数转化为二进制数产生的初始误差。

误差估计问题:研究计算结果的误差是否满足精度要求

1.2.2 误差与有效数字

定义1        设x为准确值,x*为x的一个近似值,称e*=x*-x为近似值的绝对误差,简称误差。

近似值x*的误差e*:如定义1。

近似值x*的误差限\varepsilon*:误差的绝对值不超过某正数\varepsilon*,总是正数,不唯一但是越小越好,不能完全表示近似值的好坏。  

近似值x*的相对误差e_{r}^{*}\bg_white \frac{e^{*}}{x}=\bg_white \frac{x^{*}-x}{x}=\frac{x^{*}-x}{x^{*}},用x*取代的条件是\bg_white e_{r}^{*}= \frac{e^{*}}{x^{*}}较小,可正可负。

近似值x*的相对误差限\varepsilon _{r}^{*}:近似值x*的相对误差e_{r}^{*}的绝对值上界,\varepsilon _{r}^{*}= \frac{\varepsilon ^{*}}{\left | x^{*} \right |},判断近似值的好坏。

定义2        若近似值x*的误差限是某一位的半个单位,该位到x*的第一位非零数字共有n位,就说x*有n位有效数字。

\bg_white x^{*}=\pm10^{m}\times\left ( a_{1}+a_{2}\times10^{-1}+...+a_{n}\times10^{-\left ( n-1\right )}\right )

|x-x^{*} |\leqslant \frac{1}{2}\times10^{m-n+1}

无量纲:相对误差、相对误差限;有量纲:绝对误差(误差)、绝对误差限(误差限)。

具有n位有效数字,误差限\varepsilon ^{*}=\frac{1}{2}\times10^{m-n+1}

 定理1        设近似数x*表示为x^{*}=\pm10^{m}\times\left ( a_{1}+a_{2}\times10^{-1}+...+a_{l}\times10^{-\left ( l-1\right )}\right ),x*具有n位有效数字,相对误差限:\varepsilon _{r}^{*}\leqslant \frac{1}{2a_{1}}\times10^{-\left(n-1\right)}

说明:有效位数越多,相对误差限越小。

1.2.3 数值运算的误差估计

近似数x_{1}^{*}x_{2}^{*}与误差限\varepsilon\left (x_{1}^{*}\right )\varepsilon\left (x_{2}^{*}\right )的加减乘除运算得到的误差限分别满足不等式:

1.3.1 算法的数值稳定性

定义3         一个算法如果输入数据有误差,而在计算过程中舍入误差不增长,则称此算法
是数值稳定的;否则称此算法为不稳定的。

1.3.2 病态问题与条件数

病态问题:对一个数值问题本身如果输人数据有微小扰动(即误差),引起输出数据(即问题解)相对误差很大
注意病态问题不是计算方法引起的,是数值问题自身固有的,因此,对数值问题首先要
分清问题是否病态,对病态问题就必须采取相应的特殊方法以减少误差危害。
数值分析——第一章_第1张图片

1.3.3 避免误差危害

数值计算中通常不采用数值不稳定算法,在设计算法时还应尽量避免误差危害,防止有
效数字损失,通常要避免两相近数相减和用绝对值很小的数做除数,还要注意运算次序和减
少运算次数

1.4.1 多项式求值的秦九韶算法

计算方法:

数值分析——第一章_第2张图片

然后由内向外逐层计算一次多项式的值,将n次多项式f(x)的值转化为求n个一次多项式的值。
结论:对于一个n次多项式,至多做n次乘法和n次加法

 Matlab代码实现秦九韶算法:

 function p=QJS(A,x)
    %秦九韶算法,A为函数系数向量,降幂排列,x为某点
    n=length(A);
    v=A(1);
    for k=1:1:n-1
        v=v*x+A(k+1);
    end

1.4.2 迭代法与开方求值

迭代法是一种按同一公式重复计算逐次逼近真值的算法,是数值计算普遍使用的重要方法,以开方运算为例,它不是四则运算,因此在计算机上求开方值就要转化为四则运算,使用的就是迭代法。
迭代法:也称辗转法,是一种不断用变量的旧值递推新值的过程,跟迭代法相对应的是直接法(或者称为一次解法),即一次性解决问题。迭代算法是用计算机解决问题的一种基本方法,它利用计算机运算速度快、适合做重复性操作的特点,让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值,迭代法又分为精确迭代和近似迭代。比较典型的迭代法如“二分法”和"牛顿迭代法”属于近似迭代法。

1.4.3 以直代曲与化整为"零"

1.4.4 加权平均的松弛技术

1.5 数学软件

MATLAB是 MATrixLABoratory 的缩写,即矩阵实验室,它整合了非线性方程组、数值积分、三次样条函数、曲线拟合、最优化、常微分方程和绘图工具等功能,但它主要是以EISPACK和 LINPACK子程序为基础.MATLAB目前是由C和汇编语言编写的,它的基本结构是执行矩阵运算,是一个对求解线性方程特别有用的功能强大的自包容系统. MATLAB的基本数据单元是不需要指定维数和特殊说明的矩阵,可把它看成一种计算机语言,它比其他高级语言简单方便,但绝不能取代高级语言

三、课后作业

1)matlab

数值分析——第一章_第3张图片

1、略,主要熟悉matlab基本操作

2、分析:圆心(2,1)半径的平方为2,;圆心(2.5,0)半径的平方为3.5

关于matlab画圆的方法参考:Matlab画圆 - I加加 - 博客园 (cnblogs.com)
Matlab中rectangle函数使用_jk_101的博客-CSDN博客

clear,clc;
%rectangle函数画圆
r = sqrt(2);%半径
x = 2;%横坐标
y = 1;%纵坐标
para = [x-r, y-r, 2*r,2*r];
%para-矩形的大小和位置
%矩形的大小和位置,指定为 [x y w h] 形式的四元素向量。
%x和y元素定义矩形的左下角的坐标。
%w和h元素定义矩形的维度。所有值都以数据单位表示。
rectangle('Position', para, 'Curvature', [1 1]);
axis equal

hold on

%plot画圆
r = sqrt(3.5);%半径
x = 2.5;%横坐标
y = 0;%纵坐标
theta = 0:pi/20:2*pi;%角度[0,2*pi] 
x = x+r*cos(theta);
y = y+r*sin(theta);
plot(x,y,'-')
axis equal

2)复习与思考题

答案:略

  • 什么是数值分析?它与数学科学和计算机的关系如何?
  • 何谓算法?如何判断数值算法的优劣?
  • 列出科学计算中误差的三个来源,并说出截断误差与舍人误差的区别
  • 什么是绝对误差与相对误差?什么是近似数的有效数字?它与绝对误差和相对误差有何关系?
  • 什么是算法的稳定性?如何判断算法稳定?为什么不稳定算法不能使用?
  • 什么是问题的病态性?它是否受所用算法的影响?
  • 数值分析——第一章_第4张图片
  • 判断下列命题的正确性∶      
    • 解对数据的微小变化高度敏感是病态的
    • 高精度运算可以改善问题的病态性
    • 无论问题是否病态,只要算法稳定都能得到好的近似值
    • 用一个稳定的算法计算良态问题一定会得到好的近似值
    • 用一个收敛的迭代法计算良态问题一定会得到好的近似值
    • 两个相近数相减必然会使有效数字损失
    • 计算机上将1000个数量级不同的数相加,不管次序如何结果都是一样的

3)12题:填空+判断

数值计算就是有效使用数字计算机求数学问题近似解的方法与过程。
计算复杂性一般包括时间复杂性和空间复杂性等等。
从误差的来源划分,误差一般包括如下四种:模型误差、观测误差、截断误差、舍入误差
用四舍五入取准确值的前n位x*作为近似值,则x*必有n位有效数字。
准确值具有无穷多位有效数字。
3.1415、3.142、3.14三个数分别作为圆周率的近似数,它们的有效数字分别是4、4、3位。
设 x = 4.26972,x*是x具有4位有效数字的近似值,则x*= 0.05
0.005是x*=1234.5678的误差限,则x*=1234.5678至少具有6位有效数字。
有效数字相同的两个近似数,绝对误差一定相同。(错)
绝对误差不超过末位有效数字的半个单位。(对)
有效数位越多,相对误差限越小。(对)

你可能感兴趣的:(数值分析,matlab)