数值计算课件_绪论

合集下载

数值计算1-5章

数值计算1-5章

数值计算1-5章数值计算⽅法第1章绪论1.1数值计算⽅法的研究对象和特点数值计算⽅法也称数值分析,它研究⽤计算机求解各种数学问题的数值⽅法及其理论。

数学学科内容⼗分⼴泛,数值计算⽅法属于计算数学的范畴,这⾥只涉及科学和⼯程计算中常见的数学问题,如函数的插值、逼近、离散数据的拟合、数值积分与数值微分、线性和⾮线性⽅程数值解法和矩阵特征值问题数值解法和微分⽅程数值解法等.由于计算机科学与技术的迅速发展,数值计算⽅法的应⽤已经普遍深⼊到各个科学领域,很多复杂和⼤规模的计算问题都可以在计算机上进⾏计算,新的、有效的数值⽅法不断出现.现在,科学与⼯程中的数值计算已经成为各门⾃然科学和⼯程技术科学研究的⼀种重要⼿段,成为与实验和理论并列的⼀个不可缺少的环节.所以,数值计算⽅法既是⼀个基础性的,同时也是⼀个应⽤性的数学学科分⽀,与其他学科的联系⼗分紧密.⽤数值⽅法求解数学问题⾸先要构造算法,即由运算规则(包括算术运算、逻辑运算和运算顺序)构成的完整的解题过程.同⼀个数学问题可能有多种数值计算⽅法,但不⼀定都有效.评价⼀个算法的好坏主要有两条标准:计算结果的精度和得到结果所付出的代价.我们⾃然应该选择代价⼩⼜能满⾜精度要求的算法.计算代价也称为计算复杂性,包括时间复杂性和空间复杂性.时间复杂性好是指节省时间,主要由运算次数决定.空间复杂性好是指节省存储量,主要由使⽤的数据量决定.⽤计算机求数学问题的数值解不是简单地构造算法,它涉及多⽅⾯的理论问题,例如,算法的收敛性和稳定性等.除理论分析外,⼀个数值⽅法是否有效,最终要通过⼤量的数值实验来检验.数值计算⽅法具有理论性、实⽤性和实践性都很强的特点.作为数值计算⽅法的基础知识,本课程不可能⾯⾯俱到.除构造算法外,各章根据内容⾃⾝的特点,讨论的问题有所侧重.学习时我们⾸先要注意掌握⽅法的基本原理和思想,要注意⽅法处理的技巧及其与计算机的结合,要重视误差分析、收敛性和稳定性的基本理论.其次,要通过例⼦,学习使⽤各种数值⽅法解决实际计算问题,熟悉数值⽅法的计算过程.最后,为了掌握本课程的内容,还应做⼀定数量的理论分析与计算练习.1.2数值计算的误差1.2.1误差的来源应⽤数学⼯具解决实际问题,⾸先,要对被描述的实际问题进⾏抽象、简化,得到实际问题的数学模型.数学模型与实际问题之间会出现的误差,我们称之为模型误差.在数学模型中,通常要包含⼀些由观测数据确定的参数.数学模型中⼀些参数观测结果⼀般不是绝对准确的.我们把观测模型参数值产⽣的误差称为观测误差.例如,设⼀根铝棒在温度t时的实际长度为Lt,在t=0时的实际长度为L0,⽤lt来表⽰铝棒在温度为t时的长度计算值,并建⽴⼀个数学模型l t =L(1+at), a≈0.0000238/℃,其中a是由实验观测得到的常数,a∈[0.0000237,0.0000239],则称Lt -lt为模型误差,a-0.0000238是a 的观测误差.在解实际问题时,数学模型往往很复杂,因⽽不易获得分析解,这就需要建⽴⼀套⾏之有效的近似⽅法和数值⽅法.我们可能⽤容易计算的问题代替不易计算的问题⽽产⽣误差,也可能⽤有限的过程代替⽆限的过程⽽产⽣误差.我们将模型的准确解与⽤数值⽅法求得的准确解之间的误差称为截断误差或⽅法误差.例如,对函数()()35721sin 13!5!7!21!n x x x xn x x n +=-+-+++-+,该式右边有⽆限多项,计算机上⽆法计算.然⽽,根据微积分学中的泰勒(Taylor )定理,当|x |较⼩时,我们若⽤前3项作为sin x 的近似值,则截断误差的绝对值不超过77!x .⽤计算机做数值计算时,⼀般也不能获得数值计算公式的准确解,需要对原始数据、中间结果和最终结果取有限位数字.我们将计算过程中取有限位数字进⾏运算⽽引起的误差称为舍⼊误差.例如,13=0.33333…,如果我们取⼩数点后4位数字,则13-0.3333=0.000033…就是舍⼊误差.在数值分析中,除了研究数学问题的算法外,还要研究计算结果的误差是否满⾜精度要求,这就是误差估计问题.在数值计算⽅法中,主要讨论的是截断误差和舍⼊误差.1.2.2 误差与有效数字定义1.1 设x 是某实数的精确值,A x 是它的⼀个近似值,则称x -A x 为近似值A x 的绝对误差,或简称误差.Ax x x-称为x A 的相对误差.当x =0时,相对误差没有意义.在实际计算中,精确值x 往往是不知道的,所以通常把AAx x x -作为A x 的相对误差.定义1.2 设x 是某实值的精确值,A x 是它的⼀个近似值,并可对A x 的绝对误差作估计|x -A x |?A ε,则称εA 是A x 的绝对误差界,或简称误差界.称AAx ε是A x 的相对误差界.例 1.1 我们知道π=3.1415926…,若取近似值πA =3.14,则π-πA =0.0015926…,可以估计绝对误差界为0.002,相对误差界为0.0006.例 1.2 测量⼀⽊板长是954 cm,问测量的相对误差界是多⼤?解因为实际问题中所截取的近似数,其绝对误差界⼀般不超过最⼩刻度的半个单位,所以当x =954 cm 时,有A ε=0.5 cm ,其相对误差界为0.50.00052410.053%954AAx ε==< .定义1.3 设A x 是x 的⼀个近似值,将A x 写成12100.,k A i x a a a =±? , (1.1) 它可以是有限或⽆限⼩数的形式,其中i a (i =1,2,…)是0,1,…,9中的⼀个数字,1a ≠0,k 为整数.如果|x -A x |?0.5×10k n -,则称A x 为x 的具有n 位有效数字的近似值.可见,若近似值A x 的误差界是某⼀位的半个单位,该位到A x 的第⼀位⾮零数字共有n 位,则A x 有n 位有效数字.通常在x 的准确值已知的情况下,若要取有限位数的数字作为近似值,就采⽤四舍五⼊的原则,不难验证,采⽤四舍五⼊得到的近似值,其绝对误差界可以取为被保留的最后数位上的半个单位.例如|π-3.14|?0.5×210-, |π-3.142|?0.5×310-.按定义,3.14和3.142分别是具有3位和4位有效数字的近似值.显然,近似值的有效数字位数越多,相对误差界就越⼩,反之也对.下⾯,我们给出相对误差界与有效数字的关系.定理1.1 设x 的近似值A x 有(1.1)式的表达式. (1) 如果A x 有n 位有效数字,则 111×102A nAx x x a --≤; (1.2)(2) 如果()111×1021A nAx x x a --≤+, (1.3)则A x ⾄少具有n 位有效数字.证由(1.1)式可得到()111--?+≤≤?k A k a x a . (1.4)所以,当A x 有n 位有效数字时11110.5101×10,×102k nA nk Ax x x a a ----?≤=即(1.2)式得证.由(1.3)式和(1.4)式有()()nk nk AAA A a a x x x x x x ---?=?+?+≤-=-105.0101211011111,即说明A x 有n 位有效数字,(2)得证.例1.30.1%,应取⼏位有效数字?解由于因此1a =4,设有n 位有效数字,则由(1.2)式,可令11110a -?≤,即410n -?18,得n ?4.故只要对4位有效数字,其相对误差就可⼩于0.1%,4.472.例1.4 已知近似数A x 的相对误差界为0.3%,问A x ⾄少有⼏位有效数字?解设A x 有n 位有效数字,由于A x 的第⼀个有效数1a 没有具体给定,⽽我们知道1a ⼀定是1,2,…,9中的⼀个,由于()12311101000210291A Ax x x --≤<=+,故由(1.3)式知n=2,即A x ⾄少有2位有效数字.1.2.3 函数求值的误差估计对⼀元函数f(x ),⾃变量x 的⼀个近似值为A x ,以f(A x )近似f(x ),其误差界记作ε(f(A x )).若f(x )具有⼆阶连续导数,f′(A x )与f″(A x )的⽐值不太⼤,则可忽略|x -A x |的⼆次项,由Taylor 展开式得到f(A x )的⼀个近似误差界ε(f(A x ))≈|f′(A x )|ε(A x ).对n 元函数f(x 1,x 2,…,x n ),⾃变量x 1,x 2,…,x n 的近似值分别为x 1A ,x 2A ,…,x n A ,则有()()()12121,,,,,,nn A A nA k kA k k Af f x x x f x x x x x x=??-≈- ∑ ,其中()12,,,A A nA k k f f x x x x x A.因此,可以得到函数值的⼀个近似误差界()()()121,,,nAA nA kA k k Af f x x x x x εε=??≈ ∑. 特别地,对f(x 1,x 2)=x 1±x 2有ε(x 1A ±x 2A )=ε(x 1A )+ε(x 2A ).同样,可以得到ε(x 1A x 2A )≈|x 1A |ε(x 2A )+|x 2A |ε(x 1A ),()()12211222A A A A A A A x x x x x x x εεε+??≈,20A x ≠例1.5 设有长为l,宽为d 的某场地.现测得l 的近似值l A =120 m,d 的近似值d A =90 m ,并已知它们的误差界为|l-l A |?0.2 m,|d-d A |?0.2 m.试估计该场地⾯积S=ld 的误差界和相对误差界.解这⾥ε(l A )=0.2,ε(d A )=0.2,并且有2,,10800A A A S S d l S l d mld====.于是有误差界()21200.2900.242A S m ε≈?+?=,相对误差界()()420.39%10800A r A AS S l dεε=≈=.例1.6 设有3个近似数a=2.31, b=1.93, c=2.24,它们都有3位有效数字.试计算p=a+bc 的误差界和相对误差界,并问p 的计算结果能有⼏位有效数字?解 p=2.31+1.93×2.24=6.6332.于是有误差界ε(p)=ε(a)+ε(bc)≈ε(a)+|b|ε(c)+|c|ε(b) =0.005+0.005(1.93+2.24)=0.02585,相对误差界εr (p)=()0.025856.6332p pε≈≈0.39%.因为ε(p)≈0.02585<0.05,所以p=6.6332能有2位有效数字.1.2.4 计算机中数的表⽰任意⼀个⾮零实数⽤(1.1)式表⽰,是规格化的⼗进制科学记数⽅法.在计算机中通常采⽤⼆进制的数系(或其变形的⼗六进制等),并且表⽰成与⼗进制类似的规格化形式,即浮点形式±2m ×0.β1β2…βt ,这⾥整数m 称为阶码,⽤⼆进制表⽰为m=±α1α2…αs , αj =0或1(j=1,2,…,s),s 是阶的位数.⼩数0.β1β2…βt 称为尾数,其中β1=1,βj =0或1(j=2,3,…,t),t 是尾数部位的位数.s 和t 与具体的机器有关.由于计算机的字长总是有限位的,所以计算机所能表⽰的数系是⼀个特殊的离散集合,此集合的数称为机器数.⽤浮点⽅式表⽰的数有⽐较⼤的取值范围.⼗进制输⼊计算机时转换成⼆进制,并对t 位后⾯的数作舍⼊处理,使得尾数为t 位,因此⼀般都有舍⼊误差.两个⼆进制数作算术运算时,对计算结果也要作类似的舍⼊处理,使得尾数为t 位,从⽽也有舍⼊误差.在实现算法时,计算的最后结果与算法的精确解之间的误差,从根本上说是由机器的舍⼊误差造成的,包括输⼊数据和算术运算的舍⼊误差.因此有必要对计算机中数的浮点表⽰⽅法和舍⼊误差有⼀个初步的了解.有时为了分析某⼀个计算⽅法可能出现的误差现象,为了适应⼈们的习惯,我们会采⽤⼗进制实数系统进⾏误差分析.1.3 数值稳定性和要注意的若⼲原则 1.3.1 数值⽅法的稳定性实际计算时,给定的数据会有误差,数值计算中也会产⽣误差,并且,这些误差在进⼀步的计算中会有误差传播.因此,尽管数值计算中的误差估计⽐较困难,我们还是应该重视计算过程中的误差分析.定义 1.4 对于某个数值计算⽅法,如果输⼊数据的误差在计算过程中迅速增长⽽得不到控制,则称该算法是数值不稳定的,否则是数值稳定的.下⾯举例说明误差传播的现象.例 1.7 计算积分值105nxdx I x =+?, n=0,1,…,6.解由于要计算系列的积分值,我们先推导In 的⼀个递推公式.由1110555n n n n x x I I dx x --++=+?111n xdx n-==,可得下⾯两个递推算法.算法1:115n n I I n-=-,n=1,2, (6)算法2:1115n n I I n -??=-,n=6,5, (1)直接计算可得0ln 6ln 5I =-.如果我们⽤4位数字计算,得I 0的近似值为0I *=0.1823.记n n n E I I *=-,I n *为In 的近似值.对算法1,有15n n E E -=-=…=()5n-E 0.按以上初始值I0的取法有|E 0|?0.5×410-,事实上|E 0|≈0.22×410-.这样,我们得到|E 6|=65|E 0|≈0.34.这个数已经⼤⼤超过了I 6的⼤⼩,所以6I *连⼀位有效数字也没有了,误差掩盖了真值.对算法2,有E k-n =15n ??-E k ,|E 0|=615??|E 6|.如果我们能够给出I 6的⼀个近似值,则可由算法2计算I n (n=5,4,…,0)的近似值.并且,即使E 6较⼤,得到的近似值的误差将较⼩.由于()()11011616551kkk xxI d d x x k k =<<=++??,因此,可取Ik 的⼀个近似值为()()11126151k I k k *=+?? ? ?++??. 对k=6有6I *=0.0262.按0I *=0.1823和6I *=0.0262,分别按算法1和算法2计算,计算结果如表1-1,其中()1n I 为算法1的计算值, ()2n I 为算法2的计算值.易知,对于任何⾃然数n,都有0表1-1n()1nI()2nInI (4位)0 0.1823 0.1823 0.18231 0.0885 0.0884 0.08842 0.0575 0.0580 0.05803 0.0458 0.0431 0.04314 0.0210 0.0344 0.03435 0.0950 0.0281 0.02856-0.3083 0.0262 0.0243当然,数值不稳定的⽅法⼀般在实际计算中不能采⽤.数值不稳定的现象属于误差危害现象.下⾯讨论误差危害现象的其他表现及如何避免问题.1.3.2 避免有效数字的损失在数值计算中,参加运算的数有时数量级相差很⼤,⽽计算机位数有限,如不注意,“⼩数”的作⽤可能消失,即出现“⼤数”吃“⼩数”的现象. 例1.8 ⽤3位⼗进制数字计算x =101+δ1+δ2+…+δ100,其中0.1?δi ?0.4,i =1,2, (100)解在计算机内计算时,要写成浮点数形式,且要对阶.如果是101与δ1相加,对阶时,101=0.101×103,δ1=0.000×103.因此,如果我们⾃左⾄右逐个相加,则所有的δi 都会被舍掉,得x ≈101.但若把所有的δi 先加起来,再与101相加,就有111=101+100×0.1?x ?101+100×0.4=141.可见,计算的次序会产⽣很⼤的影响.这是因为⽤计算机计算时,在运算中要“对阶”,对阶引起了⼤数吃⼩数的现象.⼤数吃⼩数在有些情况下是允许的,但有些情况下则会造成谬误.在数值计算中,两个相近数相减会使有效数字严重损失.例1.9 求实系数⼆次⽅程20ax bx c ++=的根,其中b 2-4ac>0,ab ≠0. 解考虑两种算法. 算法1:1,22x a=算法2:(12b sign b x a--=, 21c x ax =,其中sign 表⽰取数的符号,即()1,0,0,0,1,0.b sign b b b >??==??-对算法1,若ac b 42>>,则是不稳定的,否则是稳定的.这是因为在算法1中分⼦会有相近数相减的情形,会造成有效数字的严重损失,从⽽结果的误差很⼤.算法2不存在这个问题,在任何情况下都是稳定的.因此称算法1是条件稳定的,算法2是⽆条件稳定的.例如,对于⽅程262.10 1.0000x x ++=,⽤4位有效数字计算,结果如下:算法1:x 1=-62.08, x 2=-0.02000. 算法2:x 1=-62.08, x 2=-0.01611.准确解是x 1=-62.083892…,x 2=-0.016107237….这⾥,ac b 42>>,所以算法1不稳定,舍⼊误差对x 2的影响⼤.在进⾏数值计算时,如果遇到两相近数相减的情形,可通过变换计算公式来避免或减少有效数字的损失.例如,如果|x |≈0,有变换公式1cos sin sin 1cos x x xx-=+.如果x 1≈x 2,有变换公式1122lg lg lgx x x x -=.如果x 〉〉1,有变换公式.此外,⽤绝对值很⼩的数作除数时,舍⼊误差会很⼤,可能对计算结果带来严重影响.因此,要避免除数绝对值远远⼩于被除数绝对值的除法运算.如果⽆法改变算法,则采⽤增加有效位数进⾏计算,或在计算上采⽤双精度运算,但这要增加机器计算时间和多占内存单元.1.3.3 减少运算次数在数值计算中,要注意简化计算步骤,减少运算次数,这也是数值分析中所要研究的重要内容.同样⼀个计算问题,如果能减少运算次数,不但可节省计算机的计算时间,还能减少误差的积累.下⾯举例说明简化计算公式的重要性.例1.10 给定x ,计算多项式()110nn n n n P x a x a xa --=+++的值.如果我们先求ak x k ,需要进⾏k 次乘法,再相加,则总共需要()12n n +次乘法和n次加法才能得到⼀个多项式的值.如果我们将多项式写成下⾯的形式()(){}1210n n n n P x x x x a x a a a a --??=+++++?? ,则只需n 次乘法和n 次加法即可得到⼀个多项式的值,这就是著名的秦九韶算法,可描述为1,,1,2,,0,n n k k k u a u u x a k n n +=??=+=--?最后有()0n u P x =.例1.11 计算ln2的值. 解如果利⽤级数()()11ln 11nn n xx n∞+=+=-∑计算ln2,若要精确到误差的绝对值⼩于10-5,要计算10万项求和,计算量很⼤,并且舍⼊误差的积累也⼗分严重.如果改⽤级数()35211ln 213!5!21!n xx x xx x n +??+=+++++ ? ?-+??来计算ln2,取x =1,则只要计算前9项,截断误差便⼩于10-10.1.4 向量和矩阵的范数为了对矩阵计算进⾏数值分析,我们需要对向量和矩阵的“⼤⼩”引进某种度量.在解析⼏何中,向量的⼤⼩和两个向量之差的⼤⼩是⽤“长度”和“距离”的概念来度量的.在实数域中,数的⼤⼩和两个数之间的距离是通过绝对值来度量的.范数是绝对值概念的⾃然推⼴.1.4.1 向量的范数定义1.5 如果向量x ∈n R 的某个实值函数f(x )=‖x ‖满⾜ (1) 正定性:x ?0,且x =0当且仅当x =0;(2) 齐次性:对任意实数α,都有αx =|α|x ; (3) 三⾓不等式:对任意x ,y ∈R n ,都有+x y ?x +y ,则称x 为n R 上的⼀个向量范数.在n R 中,记()12,,,Tn x x x =x ,实际计算中最常⽤的向量范数有: (1) 向量的∞范数1max i i nx ∞≤≤=x;(2) 向量的1范数11nii x ==∑x;(3) 向量的2范数12221in x i ==??∑x.容易验证,向量的∞范数和1范数满⾜定义1.5中的条件.对于2范数,满⾜定义1.5中的条件(1)和(2)是显然的,对于条件(3),利⽤向量内积的Cauchy-Schwarz 不等式可以验证.更⼀般地,有如下向量的p 范数1pipn px i ==??∑x,其中p ∈ [1,+∞).容易验证1ppn∞∞≤≤xxx,由此可得如下定理.定理1.2 lim pp ∞→∞=xx.下⾯,我们利⽤向量范数的连续性来说明向量范数的重要特征.定理1.3 设给定A ∈R n ×n ,x =(x 1,x 2,…,x n )T ∈R n ,则对R n 上每⼀种向量范数,‖A x ‖都是x 1,x 2,…,x n 的n 元连续函数.证设a j 为A 的列向量,将A 写成A =(a 1,a 2,…,a n ). 则由三⾓不等式,对h =(h 1,h 2,…,h n )T ∈R n,有|‖A (x +h )‖-‖A x ‖|?‖A h ‖=‖1ni i h =∑a i ‖1ni i h =∑‖a i ‖M max|h i |,其中M=1ni =∑‖a i ‖.所以,对任意的ε>0,当max|h i |<Mε时,有|‖A (x +h )‖-‖A x ‖|<ε, 这就证明了‖A x ‖的连续性.推论1.1 ‖x ‖是x 的各分量的连续函数. 向量范数的⼀个重要特征是具有等价性.定理 1.4 R n 上的所有向量范数是彼此等价的,即对R n 上的任意两种向量范数‖x ‖s和‖x ‖t ,存在常数c 1,c 2>0,使得对任意x ,有c 1‖x ‖s ?‖x ‖t ?c 2‖x ‖s .证只要就‖x ‖s =‖x ‖∞证明上式成⽴即可,即证明存在常数c 1,c 2>0,对⼀切x ∈R n且x ≠0,有c 1‖x ‖∞?‖x ‖t ?c 2‖x ‖∞.记R n 上的有界闭集D={x :x =(x 1,x 2,…,x n )T ,‖x ‖∞=1}.由定理1.3的推论知,‖x ‖t 是D 上的n 元连续函数,所以在D 上有最⼤值c 2和最⼩值c 1,且x ∈D 时有x ≠0,故有c 2?c 1>0.现考虑x ∈R n ,且x ≠0,则有∞x x ∈D,所以有c 1?‖∞x x ‖t ?c 2, ?x ∈R n ,x ≠0.从⽽对x ≠0有c 1‖x ‖∞?‖x ‖t ?c 2‖x ‖∞.⽽x =0时上式⾃然成⽴,定理得证.由于向量范数之间具有等价性,对于范数的极限性质,我们只需对⼀种范数进⾏讨论,其余范数也都具有相似的结论.⽐如,我们可以⽅便地讨论向量序列的收敛性.定义1.6 设向量序列x (k)=()()()()12,,,Tk k k nx x x ∈R n ,k=1,2,…,若存在x *=()12 ,,,Tn x x x ***∈R n ,使得()lim k iik x x *→∞=, i =1,2,…,n,则称序列{x (k)}收敛于x *,记为()lim k ik *→∞=x x.按定义有)()lim lim 0k k k k **→∞→∞∞=?-=xx xx.⼜因为()()()12k k k c c ***∞∞-≤-≤-xxxxxx,所以有()()lim lim 0k k k k **→∞→∞=?-=xx xx.因此,若向量序列在⼀种范数下收敛,则在其他范数下也收敛.不必强调是在哪种范数意义下收敛.1.4.2矩阵的范数定义1.7 如果矩阵A ∈R n ×n 的某个实值函数f(A )=‖A ‖满⾜ (1) 正定性:‖A ‖?0,且‖A ‖=0当且仅当A =0;(2) 齐次性:对任意实数α,都有‖αA ‖=|α|‖A ‖;(3) 三⾓不等式:对任意A ,B ∈R n ×n ,都有‖A +B ‖?‖A ‖+‖B ‖; (4) 相容性:对任意A ,B ∈R n ×n ,都有‖A B ‖?‖A ‖‖B ‖;则称‖A ‖为Rn ×n上的⼀个矩阵范数.可以验证,对()ij n na ?=A ,12211Fn n a ij i j ?? ?=∑∑ ?==??A是⼀种矩阵范数,称之为Froben i us 范数,简称F 范数.由于矩阵与向量常常同时参与讨论与计算,矩阵范数与向量范数之间需要有⼀种联系. 定义1.8 对于给定的R n 上的⼀种向量范数‖x ‖和R n ×n 上的⼀种矩阵范数‖A ‖,如果满⾜‖A x ‖?‖A ‖‖x ‖,则称矩阵范数‖A ‖与向量范数‖x ‖相容.上⾯的定义1.7是矩阵范数的⼀般定义,下⾯我们通过已给的向量范数来定义与之相容的矩阵范数.定义 1.9 设x ∈R n ,A ∈R n ×n ,对给出的⼀种向量范数v x ,相应地定义⼀个矩阵的⾮负函数m axvvx v≠=A x Ax.称之为由向量范数导出的矩阵范数,也称为算⼦范数或从属范数.由定义可得vvv≤A xAx,1max vvv==xAAx.算⼦范数满⾜矩阵范数⼀般定义中的条件(1)和(2)是显然的,现验证满⾜条件(3)和(4).对任意的A ,B ∈R n ×n ,有()1maxvvv =+=+xA B x11max max v vvvvvxx==≤+=+Ax BxAB1max vvv==xABABx1max vvvvvv=≤=xABxA.因此,算⼦范数满⾜矩阵范数⼀般定义中的条件(3)和(4).由常⽤的向量范数,可以导出与其相容的矩阵算⼦范数.定理1.5 设A ∈R n ×n ,记()ij n na ?=A ,则(1)11max nij i nj a ∞≤≤==∑A,称之为矩阵A 的⾏范数;(2) 111m ax nij j ni a ≤≤==∑A ,称之为矩阵A 的列范数;(3)2=A称之为矩阵A 的2范数或谱范数,其中,()max TλA A 表⽰T A A的最⼤特征值.证这⾥只对(1)和(3)给出证明,(2)的证明同理可得. 先证明(1):设x =(x 1,x 2,…,x n )T ≠0,不妨设A ≠0,则有1111max max nnij j ij i ni nj j xa x xa ∞∞≤≤≤≤===≤∑∑A .111max max nij xi nj a ∞∞∞=≤≤===∑AAx.设矩阵A 的第p ⾏元素的绝对值之和达到最⼤,即111max nnpj ij i nj j a a ≤≤===∑∑.取向量()12,,,Tn ξξξ= ξ,其中1,0,1,0.a pj j apjξ≥??=?-显然,‖ξ‖∞=1,⽽且1111m ax m axnn∞∞=≤≤===≥==∑∑xAA xA ξ.于是(1)得证.再证明(3):显然,A TA 是对称半正定矩阵,它的全部特征值均⾮负,设为120n λλλ≥≥≥≥ .由实对称矩阵的性质,各特征值对应的特征向量必正交.设对应的标准正交特征向量为12,,,nu u u ,即T i i i λ=A Au u (i =1,2,…,n),(u i ,u j )=δi j (i ,j=1,2,…,n).对向量x ∈R n ,‖x ‖2=1,可由R n 的⼀组基u i (i =1,2,…,n)线性表⽰,即有1niii c ==∑x u ,22211nii c===∑x11nnT Ti ii i i cc λλλ====≤=∑∑A xx A A x .另⼀⽅⾯,取ξ=u 1,显然有‖ξ‖2=1,211112T T Tλλ===A ξξA A ξu u .因此,2221m ax ===xAA x得证.由定理1.5可见,计算⼀个矩阵的⾏范数和列范数是⽐较容易的,⽽矩阵的2范数计算却不⽅便,但由于它有许多好的性质,所以在理论上还是有⽤的.例1.12 设矩阵1234-??=解 {}m ax 3,77∞==A,{}1m ax 4,66==A ,10141420T-??=-A A ()21014det 3041420Tλλλλλ--==-+-I A A ,求得115λ=+215λ=-因此25.46=≈A.定义1.10 设A ∈R n ×n 的特征值为λi (i =1,2,…,n),称()1max i i nρλ≤≤=A为A 的谱半径.谱半径在⼏何上可解释为以原点为圆⼼,能包含A 的全部特征值的圆的半径中最⼩者.例1.13 计算例1.12中矩阵的谱半径.解由A 的特征⽅程()2=--=-I A得12λ=,22λ=所以() 5.372ρ=≈A .定理1.6 设A ∈R n ×n ,则有()ρ≤A A .证设A x =λx ,x ≠0,且|λ|=ρ(A ),必存在向量y ,使x y T 不是零矩阵.于是()TTTTA ρλ==≤A xyxyxyA xy,即得ρ(A )?‖A ‖.例1.14 设矩阵A 与矩阵B 是对称的,求证ρ(A +B )?ρ(A )+ρ(B ).证因T =A A ,于是有()()()222max max 2A A AA ,即‖A ‖2=ρ(A ).同理‖B ‖2=ρ(B ).由于A +B =(A +B )T,因此()()()222ρρρ+=+≤+=+A B A BABA B .定理1.7 如果‖B ‖<1,则I ±B 为⾮奇异矩阵,且()111-±≤-I B B,这⾥的矩阵范数是指矩阵的算⼦范数.证若I ±B 奇异,则存在向量x ≠0,使(I ±B )x =0,故有ρ(B )?1,这与‖B ‖<1⽭盾,所以I ±B ⾮奇异.由于()()11--±=± I B I B I B ,于是得()()11--±≤+±I B I BI B .上的任意两种矩阵范数都是等价的,即对Rn ×n上的任意两种矩阵范数sA和t A ,存在常数c 1,c 2>0,使得12stsc c ≤≤AAA.由矩阵范数的等价性,我们可以⽤矩阵的范数描述矩阵序列的极限性质.定义1.11 设矩阵序列()()()kk n nijn na ??=∈A R,k=1,2,…,若存在()n nij n na **=∈A R,使得()lim k ijijk a a *→∞()lim k k *→∞=AA.可以验证()()lim lim 0k k k k **→∞→∞=?-=AA AA.评注本章介绍了数值计算的研究对象、误差及相关概念、数值计算的稳定性及构造算法的基本原则.考虑到矩阵计算的数值分析,本章还介绍了向量范数和矩阵范数的基本概念和常⽤定理.误差分析问题是数值分析中重要⽽困难的问题.误差的基本概念和误差分析的若⼲原则,对学习本课程是很有必要的.但是,作为⼯程或科学计算的实际问题则要复杂得多,往往要根据不同问题分门别类地进⾏分析.例如,由于舍⼊误差有随机性,有⼈应⽤概率的观点研究误差规律.在⼯程计算中,常⽤⼏种不同办法(包括实验⽅法)进⾏⽐较,以确定计算结果的可靠性.20世纪60年代以来,发展了两种估计误差的理论:⼀种是J.H.W i lk i nson 等⼈针对计算机浮点算法提出了⼀套预先估计的研究误差的⽅法,使矩阵运算的舍⼊误差研究获得了新发展;另⼀种是R .E.Moore 等⼈应⽤区间分析理论估计误差,开创了研究误差的新⽅法. 关于范数⽅⾯,所述内容是为以下各章服务的⼀些初步概念和常⽤的定理,对本书够⽤就可以了.例如只讨论了R n ×n 的范数,⽽没有顾及R n ×m .⼜例如介绍了R n 和R n ×n 上范数的等价性,此性质对有限维空间都是成⽴的,⽽对于C[a,b]则没有这个性质,这些都是赋范线性空间有关的问题,详细讨论这些问题是泛函分析的内容.习题 11.1 已知e=2.71828…,问下列近似值A x 有⼏位有效数字,相对误差界是多少? (1) x =e, A x =2.7; (2) x =e, A x =2.718; (3) x =e100, A x =0.027; (4) x =e100, A x =0.02718. 1.2 设原始数据的下列近似值每位都是有效数字:1x *=1.1021, 2x *=0.031, 3x *=56.430. 试计算(1) 1x *+2x *+3x *;(2),并估计它们的相对误差界.1.3 设x 的相对误差界为δ,求n x 的相对误差界.1.4 设x >0,x 的相对误差界为δ,求ln2的绝对误差界.1.5 为了使计算球体体积时的相对误差不超过1%,问测量半径R 时的允许相对误差界是多少?1.6 三⾓函数值取4位有效数字,怎样计算1-cos2°才能保证精度? 1.7 设0Y =28,按递推公式nY=1n Y --…,计算.若取27.982(5位有效数字),试问计算Y 100将有多⼤误差?1.8 求解⽅程25610x x ++=,使其根⾄少具有4位有效数字(≈27.982).1.9 正⽅形的边长⼤约为100 cm ,应怎样测量才能使其⾯积的误差不超过21cm ? 1.10 序列{yn}满⾜递推关系1101n n y y -=-,n=1,2,….若y 0 1.41(3位有效数字),计算到y 10时的误差有多⼤?这个计算过程稳定吗?1.11 对积分11n x n I x edx -=,n=0,1,…,验证101I e-=-,11n n I nI -=-.若取e -1≈0.3679,按递推公式11n n I nI -=-,⽤4位有效数字计算I 0,I 1,…,I 9,并证明这种算法是不稳定的.1.12 反双曲正弦函数为()(ln f x x =+.如何计算f(x )才能避免有效数字的损(1) sin x -siny ; (2) arctan x -arctany ;(3)2; (4)212xe-.1.14 已知三⾓形⾯积1sin 2s ab C=,其中C 为弧度,0π,且测量a,b,C 的误差分别为Δa,Δb,ΔC ,证明⾯积的误差Δs 满⾜s a b C s ab C≤++ .1.15 设P ∈R n ×n 且⾮奇异,⼜设‖x ‖为R n 上的⼀种向量范数,定义p=xP x.试证明‖x‖P 是R n 上的⼀种向量范数.1.16 设A ∈R n ×n 为对称正定矩阵,定义()12,A=xA x x .试证明‖x‖A 为R n 上的⼀种向量范数.1.17 设矩阵0.60.50.10.3??=2F≤≤AA,并说明‖A ‖F 与‖x‖2相容.1.19 设P ∈Rn ×n且⾮奇异,⼜设‖x‖为R n上的⼀种向量范数,定义范数‖x‖P =‖P x ‖.证明对应于‖x‖P 的算⼦范数1 p-=APAP.1.20 设A 为⾮奇异矩阵,求证:11m iny ∞-≠∞∞=A y yA.。

数值计算ppt课件

数值计算ppt课件

ans =
030000000 004000000 000500000 000060000 000007000 000000800 000000090 0 0 0 0 0 0 0 0 10
多项式表示
多项式在MATLAB中使用降幂系数的行向 量表示。表示中需要包含零系数的项。 poly2str:
使用函数roots可找出多项式等于零的根。 规定:多项式用行向量,根用列向量。 给出多项式的根,使用poly函数也可以构造
总结:多项式常用函数
poly(A) %A 为矩阵,计算A的特征多项式 poly(x) roots(p) conv(p,q)%p*q [k,r]=deconv(p,q) %p/q,k为商,r为余数
曲线拟合与插值
在分析试验数据中,常常要面临将试验数据作解 析描述的任务,这个问题有曲线拟合和插值两种 方法。
即y=0.5318+0.9191t-0.2387t2
最小二乘拟合
数据规律并不是多项式形式,即非线性 方式。
nlinfit 或lsqcurvefit 函数 需建立m脚本文件
举例
J=a*exp(-pt)求a和p 观察序列为
t=(0,1,2,3) J=(2.010,1.210,1.740,0.450)
稀疏矩阵
只存储非0元素 常用建立稀疏矩阵的方法
sparse(建立一般稀疏矩阵) speye(建立单位稀疏矩阵) spdiags(建立带状稀疏矩阵) sprand(建立均匀分布随机稀疏矩阵) sprandn(建立正态分布随机稀疏矩阵) sprandsym(建立对称稀疏矩阵)
稀疏矩阵_sparse函数
sparse(A)%A转为系数矩阵 sparse(m,n) %m*n维全0 zeros? sparse(i,j,s) %i,j,s向量要求长度相同,分别

1数值计算方法1解析

1数值计算方法1解析
Ax b
i 2 ,3 , , n
第一章
引论
Ax b 第一章
i 2 ,3 , , n 绪论
§ 1.1 数值计算的研究对象与特点 § 1.2 数值问题与数值方法
a11 a21 A an 1 a12 a1 n 误差 § 1.3 a22 a2 n i 1 b l x i ij j j 1 an 2 ann x i lii
§ 1.1 计算机数值方法的研究对象与特点
以计算机为工具,求解各种数学模型,都要经历三个过程:
总体设计——模型的细化 详细设计——主要为算法设计 程序设计
计算机数值方法研究的是将数学模型化为数值问题, 并研究求解数值问题的数值方法进而设计数值算法
§ 1.2 数值问题与数值算法
一、数值问题 数值问题: 输入数据与输出数据之间关系
如求根公式 应化为公式
x1 , 2
x1 , 2
b b 2 4ac 2a
b sqrt(b 2 4ac) 2a
2 n x x ex 1 x 2! n!
超越函数e
x
应化为
函数y( x)的导数y( x)的计算应化为
y( x h ) y( x ) y( x ) h
3.14159265
2 1.414213562
1 1 0.166666666 3! 6
过失误差
3.1415927
2 1.4142136
1 0.16666667 3!
由于模型错误或方法错误引起的误差. 这类误差一般可以避免
数值计算中除了过失误差可以避免外,其余误差都是 难以避免的.数学模型一旦建立,进入具体计算时所考 虑和分析的就是截断误差和舍入误差

数值计算方法--绪论

数值计算方法--绪论
* * * * * y* = f ( x1* , x2 , ⋯ , xn )。假设函数在 ( x1 , x2 ,⋯ , xn ) 处可微,则
有:
* * ¶f ( x1* , x2 , ⋯, x n ) e( y ) » df ( x , x ,⋯, x ) = å × e ( xi* ) ¶xi i=1


Mathematic,
Maple Lindo

交互式数学系统:MathCAD,Calcwin
作业:书后练习 弄清楚几个基本概念
误差的来源及分类 绝对误差、相对误差与有效数字 概念及计算 数值运算中误差传播规律 数值运算中应注意的原则 (5个)
谢谢大家!
数值运算中误差传播规律
乘法运算中的误差传播:
数值运算中误差传播规律
除法运算中的误差传播:
数值运算中误差传播规律
加减乘除的绝对误差限:
数值运算中误差传播规律
加减乘除的相对绝对误差限:
数值运算中应注意的原则
� 选用数值稳定性好的算法 � 相近两数应避免相减 � 绝对值相对太小的数不宜作除数 � 要防止大数“吃掉”小数的危害 � 使用计算复杂性好的算法
数值计算方法
� 主讲:唐旭清
� Email:
txq5139@ txq5139@
� 教材:1)《数值计算方法
》, 北理工出版社 ,丁丽娟; 2) 《数值计算方法 》,江南大 学,蔡日增

用数学方法解决实际问题的过程:实际问题 →建立数学模型→确定数值计算方法 →编程 并计算近似解
绝对误差、相对误差与有效数字


若近似值 x 的绝对误差限不超过小数点后第n * n 位数字的半个单位,即 ε = 1 × 10 − 。则 x 称 精确到小数点后第n位。 2 * 若近似值 x 的绝对误差限不超过某一位数字的 * 半个单位,而从该位数字到 x (从左边起)的第 一个非零数字共有n位,则称 x * 具有n位有效 数字。

数值分析-第一章ppt课件

数值分析-第一章ppt课件

数及其图形作出判断. 整理版课件
6
由分部积分法可得:
Ine101xndex
n=1,2,4,6, 8,10,15
e 1 x n ex|1 0 e 1 0 1 nn 1 x ex dx
1 nn 1 I (n 1 ,2 , ).
如果取 I0 = 1–e–1 = 0.63212056 (八位有效数字).
x1,2b
b24ac 2a
直接进行计算则得: x1=109, x2=0. 其中的x2=0明பைடு நூலகம்失真, 这也是由于舍入误差造成的.
整理版课件
8
§1 误差的来源
实际 问题
建立数 学模型
确定计 算方法
编程 上机
由抽象简 化产生的 模型误差 及参数的 观测误差
由计算方 法本身产 生的截断 误差或称 方法误差
er(x* )e(x x* )x xx*
同样, 由于精确值 x 经常是未知的, 所以, 需要另
外的近似表达形式. 我们注意如下公式的推导,

|
e ( x*) x*
|
较小时,

e(x* )e(x* )e(x*x )* (x)
x x*
xx*
[x*[ee((xx**))2]x] *1[e(exx(**x*)]2)
整理版课件
18
乘法相关的误差公式: 设 f (x1, x2)= x1 x2 . e ( x 1 x 2 ) x 2 e ( x 1 ) x 1 e ( x 2 ) e r ( x 1 x 2 ) e r ( x 1 ) e r ( x 2 ) |e ( x 1 x 2 ) | |e ( x 1 ) | |e ( x 2 ) | |e r ( x 1 x 2 ) | |e r ( x 1 ) | |e r ( x 2 ) |

数学数值计算PPT课件

数学数值计算PPT课件

( x xn ) ( xk xn )
其中, k = 0, 1 ,⋯, n .
lk(x) A(x x0 ) ( x xk1)(x xk1) (x xn)
lk( xk ) 1,
A
1
( xk x0 ) ( xk xk1) ( xk xk1) ( xk xn )
第22页/共44页
2.构造插值多项式(Ln(x)是n+1个插值基函数的线性组合)
y0
x x0 x1 x0
y1
115 12110 115 100 11 10.71428 100 121 121100
y y* 10.723805 10.71428 0.01
有3位有效数字
抛物插值:x0 100, y0 10, x1 121, y1 11, x2 144, y2 14,x 115 y* L2 (115) 10.7228 y y* 10.723805 10.7228 0.001 有4位有效数字
• 泰勒多项式满足条件
p(k n
)
(
x0
)
f (k) ( x0 ),
k 0,1, 2,
,n
由定理知泰勒多项式逼近原函数f(x)的余项为
Rn( x)
f ( x) pn( x)
f (n1) ( )
(n 1)!
(
x
x0
)n1
问题1:(泰勒插值)
求一n次多项式pn ( x),使得
p(k n
)
(
x0
)
p1( x) 5 0.05x, p1(115) 10.75, R1(115) 0.026
p2( x) 5 0.05x
f
( x0 2
)
(
x

研究生数值分析课件ch

详细描述
数值分析是数学的一个重要分支,主要研究如何利用数值方法求解数学问题和近似计算 实际问题的数值解。它为科学研究、工程技术和实际应用等领域提供了重要的数学工具。 数值分析的重要性在于它能够将许多抽象的数学概念和理论转化为具体的数值计算方法,
使得我们能够更加方便地解决各种复杂的实际问题。
数值分析的应用领域
在金融领域,数值分析也被 广泛应用于风险评估、投资 组合优化、期权定价等方面 。通过数值分析的方法,我 们可以更加准确地评估投资 风险和收益,从而做出更加 明智的决策。
数值分析的发展历程
总结词
数值分析的发展历程可以追溯到上世纪初,随着计算 机技术的不断发展,数值分析的理论和方法也在不断 更新和完善。
05
数值积分与微分
牛顿-莱布尼兹公式与复化求积法
牛顿-莱布尼兹公式
该公式是微积分中的一个基本定理,用于计算定积分。 通过将积分区间分成若干小区间,并在每个小区间上应 用微积分基本定理,再利用定积分的线性性质进行求和 ,最后取极限得到定积分的值。
复化求积法
当被积函数是复杂函数或者积分区间是复杂形状时,直 接应用牛顿-莱布尼兹公式可能会遇到困难。此时,可以 采用复化求积法,即将积分区间分成若干个小区间,然 后在每个小区间上应用牛顿-莱布尼兹公式,最后将所有 的结果相加得到定积分的近似值。
改进欧拉法
为了提高欧拉方法的精度,可以对欧拉方法进行改进。一种常见的改进方法是使用二阶 欧拉方法,它考虑了更多的函数值,从而提高了逼近的精度。
龙格-库塔方法
龙格-库塔方法是一种高阶数值方法,用于求解常微分方程。它基于泰勒级数的思想,通过迭代的方式逐步逼近方程的精确解 。与欧拉方法相比,龙格-库塔方法具有更高的精度和更好的稳定性。

《数值分析教程》课件

总结词
一种适用于大规模计算的数值方法
详细描述
谱方法适用于大规模计算,通过将问题分解为较小的子问 题并利用多线程或分布式计算等技术进行并行计算,可以 有效地处理大规模的计算任务。
感谢您的观看
THANKS
具有简单、稳定和可靠的优点。
05
数值积分与微分
牛顿-莱布尼兹公式
要点一
总结词
牛顿-莱布尼兹公式是数值积分中的基本公式,用于计算定 积分。
要点二
详细描述
牛顿-莱布尼兹公式基于定积分的定义,通过选取一系列小 区间上的近似值,将定积分转化为一系列小矩形面积之和 ,从而实现了数值积分。
复化求积公式
总结词
算机实现各种算法,为各个领域的科学研究和技术开发提供了强有力的支持。
数值分析的应用领域
总结词
数值分析的应用领域非常广泛,包括科学计算、工程 、经济、金融、生物医学等。
详细描述
数值分析的应用领域非常广泛,几乎涵盖了所有的科学 和工程领域。在科学计算方面,数值分析用于模拟和预 测各种自然现象,如气候变化、生态系统和地球科学等 。在工程领域,数值分析用于解决各种复杂的工程问题 ,如航空航天、机械、土木和电子工程等。在经济和金 融领域,数值分析用于进行统计分析、预测和优化等。 在生物医学领域,数值分析用于图像处理、疾病诊断和 治疗等。总之,数值分析已经成为各个领域中不可或缺 的重要工具。
03
线性方程组的数值解法
高斯消去法
总结词
高斯消去法是一种直接求解线性方程组的方法,通过一系列 行变换将系数矩阵变为上三角矩阵,然后求解上三角方程组 得到解。
详细描述
高斯消去法的基本思想是将系数矩阵通过行变换化为上三角 矩阵,然后通过回带求解得到方程组的解。该方法具有较高 的稳定性和精度,适用于中小规模线性方程组的求解。

数值分析原理课件第一章

第一章 绪 论本章以误差为主线,介绍了计算方法课程的特点,并概略描述了与算法相关的基本概念,如收敛性、稳定性,其次给出了误差的度量方法以及误差的传播规律,最后,结合数值实验指出了算法设计时应注意的问题.§1.1 引 言计算方法以科学与工程等领域所建立的数学模型为求解对象,目的是在有限的时间段内利用有限的计算工具计算出模型的有效解答。

由于科学与工程问题的多样性和复杂性,所建立的数学模型也是各种各样的、复杂的. 复杂性表现在如下几个方面:求解系统的规模很大,多种因素之间的非线性耦合,海量的数据处理等等,这样就使得在其它课程中学到的分析求解方法因计算量庞大而不能得到计算结果,且更多的复杂数学模型没有分析求解方法. 这门课程则是针对从各种各样的数学模型中抽象出或转化出的典型问题,介绍有效的串行求解算法,它们包括(1)非线性方程的近似求解方法;(2)线性代数方程组的求解方法;(3)函数的插值近似和数据的拟合近似;(4)积分和微分的近似计算方法;(5)常微分方程初值问题的数值解法;(6)优化问题的近似解法;等等从如上内容可以看出,计算方法的显著特点之一是“近似”. 之所以要进行近似计算,这与我们使用的工具、追求的目标、以及参与计算的数据来源等因素有关.计算机只能处理有限数据,只能区分、存储有限信息,而实数包含有无穷多个数据,这样,当把原始数据、中间数据、以及最终计算结果用机器数表示时就不可避免的引入了误差,称之为舍入误差.我们需要在有限的时间段内得到运算结果,就需要将无穷的计算过程截断,从而产生截断误差. 如的计算是无穷过程,当用作为的 +++=!21!111e !1!21!111n e n ++++= e 近似时,则需要进行有限过程的计算,但产生了截断误差.e e n - 当用计算机计算时,因为舍入误差的存在,我们也只能得到的近似值,也就是n e n e *e 说最终用近似,该近似值既包含有舍入误差,也包含有截断误差.*e e 当参与计算的原始数据是从仪器中观测得来时,也不可避免得有观测误差.由于这些误差的大量存在,我们得到的只能是近似结果,进而对这些结果的“可靠性”进行分析就是必须的,它成为计算方法的第二个显著特点. 可靠性分析包括原问题的适定性和算法的收敛性、稳定性.所谓适定性问题是指解存在、惟一,且解对原始数据具有连续依赖性的问题. 对于非适定问题的求解,通常需要作特殊的预处理,然后才能做数值计算. 在这里,如无特殊说明,都是对适定的问题进行求解.对于给定的算法,若有限步内得不到精确解,则需研究其收敛性. 收敛性是研究当允许计算时间越来越长时,是否能够得到越来越可靠的结果,也就是研究截断误差是否能够趋于零.对于给定的算法,稳定性分析是指随着计算过程的逐步向前推进,研究观测误差、舍入对于同一类模型问题的求解算法可能不止一种,常希望从中选出高效可靠的求解算法. 如我国南宋时期著名的数学家秦九韶就提出求n 次多项式值0111a x a x a x a n n nn ++++-- 的如下快速算法;n a s =; k n a t -=t sx s +=),,2,1(n k =它通过n 次乘法和n 次加法就计算出了任意n 次多项式的值. 再如幂函数可以通过如下64x 快速算法计算出其值;x s =;循环6次s s s ⋅=如上算法仅用了6次乘法运算,就得到运算结果.算法最终需要在计算机上运行相应程序,才能得到结果,这样就要关注算法的时间复杂度(计算机运行程序所需时间的度量)、空间复杂度(程序、数据对存储空间需求的度量)和逻辑复杂度(关联程序的开发周期、可维护性以及可扩展性). 事实上,每一种算法都有自己的局限性和优点,仅仅理论分析是很不够的,大量的实际计算也非常重要,结合理论分析以及相当的数值算例结果才有可能选择出适合自己关心问题的有效求解算法. 也正因如此,只有理论分析结合实际计算才能真正把握准算法.§1.2 误差的度量与传播一、误差的度量误差的度量方式有绝对误差、相对误差和有效数字.定义1.1 用作为量的近似,则称为近似值的绝对误差.*x x )(:**x e x x =-*x 由于量x 的真值通常未知,所以绝对误差不能依据定义求得,但根据测量工具或计算情况,可以估计出绝对误差绝对值的一个较小上界,即有ε (1.1)ε≤-=x x x e **)(称正数为近似值的绝对误差限,简称误差. 这样得到不等式ε*x εε+≤≤-**x x x 工程中常用ε±=*x x 表示近似值的精度或真值x 所在的范围.*x 误差是有量纲的,所以仅误差数值的大小不足以刻划近似的准确程度. 如量 (1.2)m m cm s μ50001230000005.023.15.0123±=±=±=为此,我们需要引入相对误差定义1.2 用作为量的近似,称为近似值的相对误差. 当0*≠x x )(:**x e xxx r =-*x 是x 的较好近似时,也可以用如下公式计算相对误差*x (1.3)***)(xx x x e r -= 显然,相对误差是一个无量纲量,它不随使用单位变化. 如式(1.2)中的量s 的近似,无论使用何种单位,它的相对误差都是同一个值.同样地,因为量x 的真值未知,我们需要引入近似值的相对误差限,它是相*x )(*x r ε对误差绝对值的较小上界. 结合式(1.1)和(1.3),相对误差限可通过绝对误差限除以近似*x 值的绝对值得到,即(1.4)***)()(xx x r εε=为给出近似数的一种表示法,使之既能表示其大小,又能体现其精确程度,需引入有效数字以及有效数的概念.定义1.3 设量的近似值有如下标准形式x *x p n ma a a a x 21*.010⨯±= (1.5)()pm p n m n m m a a a a ----⨯++⨯++⨯+⨯±101010102211 =其中且,m 为近似值的量级. 如果使不等式}9,,1,0{}{1 ⊂=pi i a 01≠a (1.6)n m x x -⨯≤-1021*成立的最大整数为n ,则称近似值具有n 位有效数字,它们分别是、、… 和 . *x 1a 2a n a 特别地,如果有,即最后一位数字也是有效数字,则称是有效数.p n =*x 从定义可以看出,近似数是有效数的充分必要条件是末位数字所在位置的单位一半是绝对误差限. 利用该定义也可以证明,对真值进行“四舍五入”得到的是有效数. 对于有效数,有效数字的位数等于从第一位非零数字开始算起,该近似数具有的位数. 注意,不能给有效数的末位之后随意添加零,否则就改变了它的精度.例1.1 设量,其近似值,,. 试回答这三个近π=x 141.3*1=x 142.3*2=x 722*3=x 似值分别有几位有效数字,它们是有效数吗?解 这三个近似值的量级,因为有1=m 312*110211021005.000059.0--⨯=⨯=≤=- x x 413*2102110210005.00004.0--⨯=⨯=≤=- x x571428571428.3*3=x 312*310211021005.0001.0--⨯=⨯=≤=- x x 所以和都有3位有效数字,但不是有效数. 具有4位有效数字,是有效数.*1x *3x *2x 二、误差的传播这里仅介绍初值误差传播,即假设自变量带有误差,函数值的计算不引入新的误差. 对于函数有近似值,利用在点处),,,(21n x x x f y =),,,(**2*1*n x x x f y =),,,(**2*1n x x x 的泰勒公式(Taylor Formula),可以得到 )(),,,()(*1**2*1**i i ni n i x x x x xf y y y e -≈-=∑=(1.7))(),,,(*1**2*1i ni n i x e x x xf ∑== 其中,是的近似值,是的绝对误差. 式(1.7)表明函ii x f f ∂∂=:*i x i x )(*i x e *i x ),,2,1(n i =数值的绝对误差近似等于自变量绝对误差的线性组合,组合系数为相应的偏导数值. 从式(1.7)也可以推得如下函数值的相对误差传播近似计算公式 (1.8))(),,,()(***1**2*1*i r i ni ni r x e yx x x x f y e ∑=≈对于一元函数,从式(1.7)和(1.8)可得到如下初值误差传播近似计算公式)(x f y = (1.9))()()(***x e x f y e '≈ (1.10))()()(*****x e yx x f y e r r '≈式(1.9)表明,当导数值的绝对值很大时,即使自变量的绝对误差比较小,函数值的绝对误差也可能很大.例1.2 试建立函数的绝对误差(限)、相对误差n n x x x x x x f y +++== 2121),,,(的近似传播公式,以及时的相对误差限传播公式.{}ni i x 1*0=> 解 由公式(1.7)和(1.8)可分别推得和的绝对误差、相对误差传播公式如下(1.11)∑∑==≈ni i ini nix e x e x x xf y e 1**1**2*1*)()(),,,()(= (1.12)∑∑==≈ni i r i i r i ni ni r x e yx x e y x x x x f y e 1******1**2*1*)()(),,,()(= 进而有∑∑∑===≤≤≈ni i n i ini ix x e xe y e 1*1*1**)()()()(ε于是有和的绝对误差限近似传播公式 ∑=≈ni ixy 1**)()(εε当时,由式(1.3)推得相对误差限的近似传播公式{}ni i x 1*=>)(max )(max )(max )()()(*11***11***11****1**i r ni ni i ir n i ni i i r n i ni i r i ni ir x yx x yx x x y x yxy εεεεεε≤≤=≤≤=≤≤====≤=≈∑∑∑∑ 例1.3使用足够长且最小刻度为1mm 的尺子,量得某桌面长的近似值3.1304*=a mm ,宽的近似值mm (数据的最后一位均为估计值). 试求桌子面积近似值的绝8.704*=b 对误差限和相对误差限.解 长和宽的近似值的最后一位都是估计位,尺子的最小刻度是毫米,故有误差限 mm ,mm 5.0)(*=a ε5.0)(*=b ε面积,由式(1.7)得到近似值的绝对误差近似为ab S =***b a S = )()()(*****b e a a e b S e +≈进而有绝对误差限 mm 255.10045.03.13045.08.704)()()(*****=⨯+⨯=+≈b a a b S εεε相对误差限 %11.00011.08.7043.130455.1004)()(***=≈⨯=≈S S S r εε§1.3 数值实验与算法性能比较本节通过几个简单算例说明解决同一个问题可以有不同的算法,但算法的性能并不完全相同,他们各自有自己的适用范围,并进而指出算法设计时应该注意的事项. 算例1.1 表达式,在计算过程中保留7位有效数字,研究对不同)1(1111+=+-x x x x 的x ,两种计算公式的计算精度的差异.说明1:Matlab 软件采用IEEE 规定的双精度浮点系统,即64位浮点系统,其中尾数占52位,阶码占10位,尾数以及阶码的符号各占1位. 机器数的相对误差限(机器精度)eps=2-52≈2.220446×10-16,能够表示的数的绝对值在区间(2.2250739×10-308,1.797693×10308)内,该区间内的数能够近似表达,但有舍入误差,能够保留至少15位有效数字. 其原理可参阅参考文献[2, 4].分析算法1: 和算法2: 的误差时,精确解用双精111)(1+-=x x x y )1(1)(2+=x x x y 度的计算结果代替. 我们选取点集中的点作为x ,比较两种方法误差的差异.301}{=i i π 从图1.1可以看出,当x 不是很大时,两种算法的精度相当,但当x 很大时算法2的精度明显高于算法1. 这是因为,当x 很大时,和是相近数,用算法1进行计算时出x 111+x 现相近数相减,相同的有效数字相减后变成零,于是有效数字位数急剧减少,自然相对误差增大. 这一事实也可以从误差传播公式(1.12)分析出. 鉴于此,算法设计时,应该避免相近数相减.在图1.2中我们给出了当x 接近时,两种算法的精度比较,其中变量x 依次取为1-. 从图中可以看出两种方法的相对误差基本上都为,因而二者的精度相当.{}3011=--i iπ710-图1.1 算例1.1中两种算法的相对误差图()+∞→x图1.2 算例1.1中两种算法的精度比较)1(-→x 算例1.2 试用不同位数的浮点数系统求解如下线性方程组⎩⎨⎧=+=+2321200001.02121x x x x 说明2:浮点数系统中的加减法在运算时,首先按较大的阶对齐,其次对尾数实施相应的加减法运算,最后规范化存入计算机.算法1 首先用第一个方程乘以适当的系数加至第二个方程,使得第二个方程的的系1x 数为零,这时可解出;其次将带入第一个方程,进而求得(在第三章中称该方法为高2x 2x 1x 斯消元法). 当用4位和7位尾数的浮点运算实现该算法,分别记之为算法1a 和算法1b . 算法 2 首先交换两个方程的位置,其次按算法1计算未知数 (第三章中称其为选主元的高斯消元法). 当用4位和7位尾数的浮点运算实现该算法,分别记之为算法2a 和算法2b .方程组的精确解为, ,用不同的算法计算出的...25000187.01=x ...49999874.02=x 结果见表1.1.表1.1 对算例1.2用不同算法的计算结果比较算例1.2*1x )(*1x r ε*2x )(*2x r ε算法1a 0.00000.10×1010.50000.25×10-7算法2a 0.25000.75×10-70.50000.25×10-7算法1b 0.26000000.40×10-10.49999870.10×10-6算法2b0.25000200.50×10-80.50000000.25×10-7对于算例1.2,表中的数据表明,当用4位尾数计算时,算法1给出错误的结果,算法2则给出解很好的近似. 这是因为在实现算法1时,需要给第一个方程乘以加00001.0/2-至第二个方程,从而削去第二个方程中的系数,但在计算的系数时需做如下运算1x 2x(1.13)661610000003.0104.0103.0104.03200001.02⨯⨯⨯⨯=+⨯+=-+--对上式用4位尾数进行计算,其结果为. 因为舍入误差,给相对较大的数加以6104.0⨯-相对较小的数时,出现大数“吃掉”小数的现象. 计算右端项时,需做如下运算(1.14)661610000002.0102.0102.0102.02100001.02⨯⨯⨯⨯=+⨯+=-+--同样出现了大数吃小数现象,其结果为. 这样,得到的变形方程组6102.0⨯-⎩⎨⎧⨯-=⨯-⨯=⨯+⨯62612114102.0104.0101.0102.0101.0x x x 中没有原方程组中第二个方程的信息,因而其解远偏离于原方程组的解. 该算法中之所以出现较大数的原因是因为运算,因而算法设计中尽可能避免用绝对值较大的数00001.0/2-除以绝对值较小的数. 其实当分子的量级远远大于分母的量级时,除法运算还会导致溢出,计算机终止运行.虽从单纯的一步计算来看,大数吃掉小数,只是精度有所损失,但多次的大数吃小数,累计起来可能带来巨大的误差,甚至导致错误. 例如在算法1a 中出现了两次大数吃小数现象,带来严重的后果. 因而尽可能避免大数吃小数的出现在算法设计中也是非常必要的. 当用较多的尾数位数进行计算,舍入误差减小,算法1和2的结果都有所改善,算法1的改进幅度更大些.算例1.3 计算积分有递推公式,已知⎰+=1055dx x x I n ),2,1(511 =-=-n I nI n n . 采用IEEE 双精度浮点数,分别用如下两种算法计算的近似值.56ln 0=I 30I算法1 取的近似值为,按递推公式计算0I 6793950.18232155*0=I *1*51--=n n I nI *30I 算法2 因为,取的近似值为)139(5156)139(611039103939+⨯=<<=+⨯⎰⎰dx x I dx x 39I ,按递推公式计算3333330.004583332001240121*39≈⎪⎭⎫ ⎝⎛+=I ⎪⎭⎫ ⎝⎛-=-**1151n n I n I *30I 算法1和算法2 的计算结果见表1.2. 误差绝对值的对数图见图1.3.表1.2 算例1.3的计算结果算法1算法2n *nI n n I I -*n *nI nn I I -*18.8392e-002 1.9429e-01639 4.5833e-0033.9959e-0042 5.8039e-0029.8532e-016384.2115e-0037.9919e-0053 4.3139e-002 4.9197e-01537 4.4209e-003 1.5984e-0054 3.4306e-002 2.4605e-01436 4.5212e-003 3.1967e-0065 2.8468e-002 1.2304e-01335 4.6513e-003 6.3935e-0076 2.4325e-002 6.1520e-01334 4.7840e-003 1.2787e-007………33 4.9255e-003 2.5574e-00825 1.1740e+001 1.1734e+00132 5.0755e-003 5.1148e-00926-5.8664e+001 5.8670e+00131 5.2349e-003 1.0230e-00927 2.9336e+002 2.9335e+002 305.4046e-003 2.0459e-01028-1.4667e+003 1.4668e+003 297.3338e+0037.3338e+003 30-3.6669e+004 3.6669e+004图1.3 算例1.3用不同算法计算结果的误差绝对值的对数图从表1.2中的计算结果可以看出,算法1随着计算过程的推进,绝对误差几乎不断地以5的倍数增长,即有0*02*221*1*555I I I I I I I I n n n n n n n -≈≈-≈-≈----- 成立. 对于逐步向前推进的算法,若随着过程的进行,相对误差在不断增长,导致产生不可靠的结果,这种算法称之为数值不稳定的算法. 对于算法1绝对误差按5的幂次增长,但真值的绝对值却在不断变小且小于1,相对误差增长的速度快于5的幂次,导致产生错误的结果,因而算法1数值不稳定,不能使用. 而算法2随着计算过程的推进,绝对误差几乎不断地缩小为上一步的1/5,即有m m n m n n n n n n n I I I I I I I I 5/5/5/*22*21*1*++++++-≈≈-≈-≈- 成立. 绝对误差不断变小,真值的绝对值随着过程向前推进却在变大,这样相对误差也越来越小,这样的方法称之为数值稳定的算法. 算法1和算法2的误差对数示意图见图1.3. 这个算例告诉我们应该选用数值稳定的算法.知识结构图⎪⎪⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎪⎪⎨⎧⎪⎩⎪⎨⎧⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎨⎧⎩⎨⎧⎪⎩⎪⎨⎧⎩⎨⎧算法设计要点数值方法的稳定性数值方法的收敛性算法多元函数一元函数传播有效数字相对误差(限)绝对误差(限)度量截断误差舍入误差误差的产生误差误差与算法习题一1 已知有效数,,. 试给出各个近似值的绝对误105.3*1-=x 4*210125.0⨯=x 010.0*3=x 差限和相对误差限,并指出它们各有几位有效数字.2 证明当近似值是x 的较好近似时,计算相对误差的计算公式和相差一个*x x x x -***xxx -和同阶的无穷小量.2*⎪⎪⎭⎫⎝⎛-x x x 3 设x 的近似值具有如式(1.5)的表示形式,试证明*x 1)若具有n 位有效数字,则相对误差;*x n r a x e -⨯≤11*1021)(2)若相对误差,则至少具有n 位有效数字.n r a x e -⨯+≤11*10)1(21)(*x 4 试建立二元算术运算的绝对误差限传播近似计算公式.5 试建立如下表达式的相对误差限近似传播公式,并针对第1题中数据,求下列各近似值的相对误差限.1) ; 2) ; 3) *3*2*1*1x x x y +=3*2*2x y =*3*2*3/x x y =6若例题1.3中使用的尺子长度是80mm ,最小刻度为1mm ,量得某桌面长的近似值mm ,宽的近似值mm . 试估计桌子长度、宽度的绝对误差限,并3.1304*=a 8.704*=b 求用该近似数据计算出的桌子面积的绝对误差限和相对误差限.7 改变如下计算公式,使其计算结果更为精确.1) 且0,cos 1≠-x xx1<<x 2)1,1ln )1ln()1(ln 1>>--++=⎰+N N N N N xdx N N3) 1,133>>-+x x x 8 (数值试验)试通过分析和数值试验两种手段,比较如下三种计算近似值算法的可靠性.1-e 算法1 ;∑=--≈mn nn e 01!)1( 算法2 ;101!1-=-⎪⎭⎫ ⎝⎛≈∑m n n e算法3 ;101)!(1-=-⎪⎪⎭⎫ ⎝⎛-≈∑m n n m e9 (数值试验)设某应用问题归结为如下递推计算公式 ,,72.280=y 251-=-n n y y,2,1=n 在计算时取为具有5位有效数字的有效数. 试分析近似计算公式的2*c **1*5c y y n n -=-绝对误差传播以及相对误差传播情况,并通过数值实验验证 (准确值可以用IEEE 双精度浮点运算结果代替),该算法可靠可用吗?。

数值计算第一章


6
0.1120
7
0.2180
算法不稳定。
8
-0.7280
9
7.5520
,9 。
精确值
0.63212… 0.36787… 0.26424… 0.20727… 0.17089… 0.14553… 0.12680… 0.11238… 0.10093… 0.09161…12
稳定的算法:
0
In
1 n 1
0 ,取
对阶时 0.0001 0.000000001105 ,计算机表示为 0,计算结果为
10000
0.12345105 ,结果不可靠。这时得改变算法:先计算 i =1 ,再 i 1
与第一项相加得到12345+1=12346 。
15
4. 绝对值较小的数不宜做分母。 用绝对值很小的数做除数,会使误差增大;还有可能因计算溢出 而停机。
例:取 3.141592653...的近似值为 3.14,3.141,3.142,3.14159,
3.141592 分别有几位有效数字?
注:四舍五入得到的近似数,从其最后一位数字开始到前面第一位 非零数字为止的所有数字,均是有效数字。
8
3. 有效数字与误差限的关系
有效数的浮点表示:具有 n 位有效数字的近似数 x* 可以写成标准
0.1709
5
0.1480
0.14553…
0.1455
6
0.1120
0.12680…
0.1268
7
0.2180
0.11238…
0.1125
8
-0.7280
0.10093…
0.1000
9
7.5520
0.09161…
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档