文档库 最新最全的文档下载
当前位置:文档库 › 西安交通大学计算方法(C)讲义

西安交通大学计算方法(C)讲义

西安交通大学计算方法(C)讲义
西安交通大学计算方法(C)讲义

计算方法(C)

目录

第1章绪论

1.1 数值计算

1.2 数值方法的分析

1.2.1计算机上数的运算

1.2.2算法分析

第2章线性代数方程组

2.1 Gauss消去法

2.1.1消去法

2.1.2主元消去法

2.2 矩阵分解

2.2.1Gauss消去法的矩阵意义

2.2.2矩阵的LU分解及其应用

2.2.3其他类型矩阵的分解

2.2.4解三对角矩阵的追赶法

2.3线性方程组解的可靠性

2.3.1向量和矩阵范数

2.3.2残向量与误差的代数表征

2.4解线性方程组解的迭代法

2.4.1基本迭代法

2.4.2迭代法的矩阵表示

2.4.3收敛性

第3章数据近似

3.1 多项式插值

3.1.1插值多项式

3.1.2Lagrange插值多项式

3.1.3Newton插值多项式

3.1.4带导数条件的插值多项式

3.1.5插值公式的余项

3. 2 最小二乘近似

3.2.1 最小二乘问题的法方程

3.2.2 正交化算法

第4章数值微积分

4.1 内插求积,Newton-Cotes公式

4.1.1Newton-Cotes公式

4.1.2复化求积公式

4.1.3步长的选取

4.1.4Romberg方法

4.1.5待定系数法

4.2数值微分

4.2.1插值公式方法

4.2.2Taylor公式方法(待定系数法)

4.2.3外推法

第5章非线性方程求解

5.1 解一元方程的迭代法

5.1.1简单迭代法

5.1.2Newton法

5.1.3割线法

5.1.4区间方法

5.2 收敛性问题

5.2.1简单迭代——不动点

5.2.2收敛性的改善

5.2.3Newton法的收敛性

5.2.4收敛速度

第1章绪论

1.1数值计算

现代科学的发展,已导致科学与技术的研究从定性前进到定量,尤其是现代数字计算机的出现及迅速发展,为复杂数学问题的定量研究与解决,提供了强有

力的基础。

通常我们面对的理论与技术问题,绝大多数都可以从其物理模型中抽象出数学模型,因此,求解这些数学模型已成为我们面临的重要任务。

一、本课程的任务:

寻求解决各种数学问题的数值方法——如何将高等数学的问题回归到初等数学(算术)的方法求解——了解计算的基础方法,基本结构(否则只须知道数值软件)——并研究其性质。

立足点:

面向数学——解决数学问题

面向计算机——利用计算机作为工具

充分发挥计算机的功能,设计算法,解决数学问题

例如:迭代法、并行算法

二、问题的类型

1、离散问题:例如,求解线性方程组b

Ax=——从离散数据:矩阵A和向量b,求解离散数据x;

2、连续问题的离散化处理:例如,数值积分、数值微分、微分方程数值解;

3、离散问题的连续化处理:例如,数据近似,统计分析计算;

1.2数值方法的分析

在本章中我们不具体讨论算法,首先讨论算法分析的基础——误差。

一般来讲,误差主要有两类、三种(对科学计算):

1)公式误差——“截断误差”,数学?计算,算法形成——主观(人为):数学问题-数值方法的转换,用离散公式近似连续的数学函数进行计算时,一般都会发生误差,通常称之为“截断误差”;——以后讨论

2)舍入误差及输出入误差——计算机,算法执行——客观(机器):由于计算机的存储器、运算器的字长有限,在运算和存储中必然会发生最末若干位数字的舍入,形成舍入误差;在人机数据交换过程中,十进制数和二进制数的转换也会导致误差发生,这就是输入误差。这两种误差主要是由于计算机的字长有限,采用浮点数系所致。

首先介绍浮点数系

1.2.1 计算机上的运算——浮点运算

面向计算机设计的算法,则先要讨论在计算机上数的表示。科学记数法——浮点数:约定尾数中小数点之前的数全为零,小数点后第一个数不能为零。

目前,一般计算机都采用浮点数系,一个存储单元分成首数和尾数:

× × ┅┅┅┅ ± × × × ┅┅┅┅┅┅┅┅ × ×

首数l 尾数(t 位)

其中首数存放数的指数(或“阶”)部分,尾数存放有效数字。对于

进制,尾

数字长为t 位的浮点数系),,,(U L t F β中的(浮点)数,可以用以下形式表示:

t

j j

d d l t

t d d

d x fl ,,3,2,

01

1)221()( =<≤<≤?++±=ββββββ

此处,指数l (称为阶)限制在U l L ≤≤范围内。

以下记实数系中的实数为R x ∈,它在浮点数系),,,(U L t F β中对应的浮点数记为),,,()(U L t F x fl β∈——β进制,t 尾数位数,U L ,阶的范围。

几乎所有近代计算机都采用“二进制”(即2=β):位、字节和字分别是指位数不同的二进制数。例如

十进制

转换

二进制

1 021= 0000 0001

2 122= 0000 0010 4 224= 0000 0100 8 328= 0000 1000 9 03229+= 0000 1001 10 132210+=

0000 1010

27

013422221281627+++=+++=

字节

100011011

是字节。

单精度浮点数(single precision )按32位存储,双精度浮点数(double precision )按64位存储。精度用于指明每个浮点数保留多少位以及尾数和阶数各分配多少位。单精度浮点数的尾数为23位、阶数为8位;双精度浮点数的尾数为53位(包含符号位)、阶数为11位(包含符号位)。双精度浮点数的等价二进制数如下所示:

位尾数

符号位

位指数(含符号位)645211ddddd ddd f bb bbbb 浮点数的特点:

1、 实数转换到浮点数——浮点化,〈缺点:〉总会产生误差(除极个别的情

况: ,2,1,0,2±±==l x l )

按 四舍五入,绝对误差:t

l x fl x -≤

-β2

1)((举例)

, 〈优点:〉浮点化产生的相对误差有界(与数字本身的数量级无关)

t x x fl x x -≤-=

12

1

)()(βδ 注:设实数R x ∈,则按β进制可表达为:

1,,,3,2,011)1

1221(+=<≤<≤?+++++++±=t t j j d d l t t d t t d d d x βββββββ按四舍五入的原则,当它进入浮点数系),,,(U L t F β时,若β2

1

1<

+t d ,则 l t

t d d

d x fl ββββ?+++±=)221()(

若β211

≥+t d ,则 l t

t d d d x fl ββββ?++++

±=)1221()(

对第一种情况:

t l l

t l t t d x fl x -++=?≤

?+=-βββββ21)2

1(1)(

)(1

1

对第二种情况:

t l l

t

l t t d x fl x -++=?≤?--=

-ββββββ21)2

1(1)(11 就是说总有: t

l x fl x -≤

-β2

1)( 另一方面,由浮点数要求的 β<≤11d , 有l

x ββ

1≥,将此两者相除,便得

t x x fl x -≤-12

1

)(β

2、每一个浮点数系的数字有限: 1)1()1(21++---L U t ββ

3、浮点数系中的运算非自封闭,(因为数字有限、尾数字长有限、指数数字有限等)

例:在)5,5,4,10(-F 中,32102001.,105420.?=?=-y x ,运算y x *和y x /,的结果显然已不在此浮点数系内,而y x +或y x -也不在此浮点数系内,需

)(y x fl 结果才在此浮点数系内。

浮点运算应注意:

1)避免产生大结果的运算,尤其是避免小数作为除数参加运算; 2)避免“大”“小”数相加减;

3)避免相近数相减,防止大量有效数字损失; 4)尽可能简化运算步骤,减少运算次数。 原因:

记t

x x fl x x -=-==12

1)(max

)(max βδ?,由x x fl x ?≤-)(,可得: y x y x fl y x ?≤-)()( (“。”表示任意一种四则运算)

此处 ? 是由机器字长(实质上是尾数字长t 的大小)确定的常数(它反映了实际运算的精度)。

显然,若要求运算的舍入误差小,应使运算结果(如:y x y x y x ,,?±)较小。 尤其是小分母运算:

y

y x y x δ

δ=-+,小y ?大误差。 其次,当浮点数系中两个数量级相差较大的数相加(或减),注意到由于浮点数系中数字字长的有限性,可能导致“大数吃小数”。例如,)5,5,4,10(-F 中

13102317.,108231.-?=?=y x ,则

x y x =?±?=?±?=±-3313100000.108231.102317.108231.

似乎)(x y y <<没有参加运算。

第三,同样,由于浮点数系中数字字长的有限性,当两个相近数相减时:例如,在)5,5,8,10(-F 中,331082317832.,1082317844.?=?=y x ,两数相减:

31012000000.-?=-y x ,计算结果仅剩2位有效数字,而原来参加运算的数字有8

位有效数字,这将严重影响最终计算结果的精度。

1.2.2 算法分析

作为一个可用的算法,必须考虑其效率和可靠性,

定义:计算机完成一个乘法和一个加法,称为一个浮点运算(记为flop ); 注:由于计算机在运算时,加(减)法所耗时间远少于乘(除)法,所以通常只须计算乘法的次数,因此也有“一个算法需要多少个‘乘法’”这一提法。

1、计算效率——可计算性(计算复杂性——空间、时间) 例:解线性方程组b Ax =的Grammar 方法:A

A i

i x =

,其中A 是方程

组系数矩阵A 对应的行列式,而i A 则是以右端向量b 替代A 的第i 列所得矩阵对应的行列式。由线性代数知识可知,若)(ij α=A ,则

相关文档