第章数值的机器运算
数值计算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
1.1.2 计算数学与科学计算 现代科学的三个组成部分: 科学理论, 科学实验, 科学计算 科学计算 的核心内容是以现代化的计算机及数学软件 (Matlab, Mathematica, Maple, MathCAD etc. )为工具,以数学 模型为基础进行模拟研究。
一些边缘学科的相继出现:
计算数学,计算物理学,计算力学,计算化学,计算生物学, 计算地质学,计算经济学,等等
取 0 e
1
x2
dx S4 ,
S4
R4
/* Remainder */
1 1 1 1 由留下部分 称为截断误差 /* Truncation Error */ 4! 9 5! 11 /* included terms */ 1 1 这里 R4 引起.005 0 由截去部分 4! 9 /* excluded terms */ 1 1 1 S4 1 1 0 .333 0 .1 0 .024 0 .743 引起 3 10 42 | 舍入误差 /* Roundoff Error */ | 0.0005 2 0.001
数值分析
第1章
数值分析与科学计算引论
§1.1 数值分析的对象、作用与特点
1.1.1 什么是数值分析 数值分析是计算数学的主要部分,计算数学是数学 科学的一个分支,它研究用计算机求解各种数学问题的 数值计算方法及其理论与软件实现.这门课程又称为(数 值)计算方法、科学与工程计算等。
•
在电子计算机成为数值计算的主要工具的今天, 需要研究适合计算机使用的数值计算方法。使用计 算机解决科学计算问题时大致要经历如下几个过程:
造成这种情况的是不稳定的算法 /* unstable algorithm */ 我们有责任改变。
计算机基础数值运算
基础知
识
三、计算机的分类
1.按计算机用途分类
通用计算机:为了能够解决各种问题,具 有较强的通用性而设计的计算机。
它具有一定的运算速度和存储容量,带有 通用的外设,配备各种系统软件和应用软件。
专用计算机:为了解决一个或一类特定问 题而专门设计的计算机。
其软硬件的配置依据解决问题的需要而定。
1-9
计算机
1.1 计算机概述
基础知
识
3.计算机的发展趋势
巨型化 巨型化是指具有高速运算、大存储容量和
(功能巨型 功能强大的计算机系统,如:ILLIAC-IV、
化) 银河机、深超-21C(1.5万亿次/秒)。
微型化 微型化包括台式微型机、笔记本电脑、掌
(体积微型 上电脑。摩尔定律:集成电路→翻一番/18 化) 个月
典型机种
ENIAC EDVAC
IBM 7090 CDC 6600
IBM 360 VAX-II PDP-II IBM PC/Apple
1-6
计算机
1.1 计算机概述
基础知
识
第五代计算机(新一代计算机)
创新:基本元器件
生物计算 机
采用生物工程技术产生的蛋白质分子制成生物 芯片,其运算过程是蛋白质分子与周围物理化 学介质的相互作用过程。
基础知
识
3.过程控制或实时控制
利用计算机及时采集检测数据,按最优值 迅速地对控制对象进行自动调节或自动控制。
无人自动化工厂。
4.计算机辅助技术
计算机辅助设计:CAD
计算机辅助制造:CAM
计算机集成制造系统--CIMS
计算机辅助教学:CAI
1-14
计算机
1.1 计算机概述
第1章数据在计算机中的表示形式讲义.
数据在计算机中的表示形式
本章主要内容
(1) 机器数与真值的概念 (2) 常见的机器数表示形式 (3) 数的定点表示与浮点表示
1.1 机器数与真值
电子计算机实质上是一个二进制的数字系统,在机器
内部,二进制数总是存放在由具有两种相反状态的存储 元件构成的寄存器或存储单元中,即二进制数码0和1是 由存储元件的两种相反状态来表示的。
① 若定点小数原码序列为x0. x1x2… xn ,则 [x]原= x 0≤x<1 1-x -1<x≤0 式中x代表真值,[x]原为原码表示的机器数。 例如:
x=+0.1011,则[x]原 =0.1011 x=-0.1011,则[x]原 =1-(-0.1011)=1+0.1011=1.1011 ② 若定点整数原码序列为x0 x1 x2… xn ,则 [x]原= x 0≤x<2n 2n - x -2n<x≤0
例如: x=+1011,则[x]原=01011 x=-1011,则[x]原=24 –(–1011)=10000+1011=11011 对于原码表示,具有如下特点: ① 原码表示中,真值0有两种表示形式。 以定点小数的原码表示为例: [+0]原=0.00…0 [-0]原=1-(-0.00…0)=1+0.00…0=1.00…0 ② 在原码表示中,符号位不是数值的一部分,它们仅是 人为约定(“ 0 为正, 1 为负”),所以符号位在运算 过程中需要单独处理,不能当作数值的一部分直接参 与运算。
移码特点:
1)移码是把真值映射到一个正数域,因此移码的大小 可以直观地反映真值的大小。无论是正数还是负数, 用移码表示后,可以按无符号数比较大小。 2)移码的数值部分与相应的补码各位相同,而符号位 与补码相反。在移码中符号位为0表示真值为负数,符 号位为1表示真值为正数。 3)移码为全0时,它对应的真值最小。 4)真值0在移码中的表示是唯一的,即:
第4章 数值的机器运算
哈尔滨学院2014年秋季学期单元测试试卷课程名称:计算机组成原理单元名称:第四章数值的机器运算一、填空题1.影响并行加法器速度的关键因素是。
2.A、B均为8位二进制数,A=F0H,B=E0H,则A+B= ,A-B= 。
C4.两个补码数相加,采用1位符号位,当时,表示结果溢出。
A.符号位有进位B.符号位进位和最高数位进位异或结果为0C. 符号位为1D.符号位进位和最高数位进位异或结果为15.在双符号位判断溢出的方案中,出现正溢时,双符号位应当为。
A. 00B. 01C. 10D. 116.在定点机中执行算术运算时会产生溢出,其原因是。
A.主存容量不够 B.操作数过大C.操作数地址过大D.运算结果无法表示7. 当定点运算发生溢出时,应进行。
A. 向左规格化B.向右规格化91112.X、C.n+1 D. n+213.原码加减交替除法又称为不恢复余数法,因此。
A.不存在恢复余数的操作B.当某一步运算不够减时,做恢复余数的操作C.仅当最后一步余数为负时,做恢复余数的操作D.当某一步余数为负时,做恢复余数的操作14.在加法器、寄存器的基础上增加部分控制电路实现除法时,用B寄存器存放。
A.被乘数和被除数B.被乘数和除数C. 乘数和被除数D.乘数和除数15.若浮点数用补码表示,判断运算结果是否是规格化数的方法是。
16.20.计算机中的累加器。
A .没有加法器功能,也没有寄存器功能B.没有加法器功能,有寄存器功能C. 有加法器功能,没有寄存器功能D.有加法器功能,也有寄存器功能21.一个C 语言程序在一台32位机器上运行。
程序中定义了3个变量x 、y 和z ,其中x 和z 为int 型,y 为short 型。
当x=127、y=-9时,执行赋值语句z=x+y 后,x 、y 和z 的值分别是A .H z H FFF y FH x 00000076,9,0000007===B .H FFFF z H FFF y FH x 0076,9,0000007===C. H FFFF z H FFF y FH x 0076,7,0000007===D .H z H FFF y FH x 00000076,7,0000007===222325A. y x +B. y x +-C. y x -D. y x --三、判断题1.进位信号串行传递的加法器称为串行加法器。
计算机组成原理:4-2 数值的机器运算
( 小数点不动 !)
左移 ——绝对值扩大
右移—— 绝对值缩小
在计算机中,移位与加减配合,能够实现
乘除运算。
逻辑移位
逻辑移位——无符号数的移位。
逻辑左移:低位添 0,高位移丢。
0 逻辑右移:高位添 0,低位移丢。
0
例:
01010011
逻辑左移 10100110
逻辑右移 00101001
算术移位
较大正数相加 产生进位,影
响符号位
解: [X]补= 0 , 1 0 1 0 + [Y]补= 0 , 1 0 0 1 1,0011
设字长为5
例2:X=-1010 Y=-1011 求 X+Y
解: [X]补= 1, 0 1 1 0
+ [Y]补= 1, 0 1 0 1 0,1011
较大的负数对应较 小的正数补码,相 加无进位,符号位
例: X=-0.1100 Y=-0.1000,求 X+Y=? 解:设字长为5.
[X]补=11. 0100 + [Y]补=11. 1000
10. 1100 结果说明:
负数绝对值太大了对应的补码小,最高数据位向前无进位, 而符号位向前有进位; 两个符号位:10,表示负上溢
双符号位法溢出逻辑表达式为:V=Sf1⊕ Sf2
在模2意义下,任意两数的补码之和等于该两数之和 的补码。 这是补码加法的理论基础。
特点:
不需要事先判断符号,符号位与数值位一起参加 运算,符号位相加后若有进位,则舍去该进位数字。
补码加法运算举例
例: X=+0.1010, Y=+0.0011,求 X+Y 解: 设字长为5.
[X]补=0. 1 0 1 0 + [Y]补=0. 0 0 1 1
计算机组成原理第4章
本章学习要求
• 掌握:定点补码加法和减法运算方法 • 理解:3种溢出检测方法 • 理解:补码移位运算和常见的舍入操作方法 • 了解:串行加法器与并行加法器 • 理解:进位产生和进位传递 • 掌握:定点原码、补码乘法运算方法 • 掌握:定点原码、补码加减交替除法运算方法 • 理解:浮点加减乘除运算 • 理解:逻辑运算 • 了解:运算器的基本结构及浮点协处理器
第4章 数值的机器运算
设操作数信号为4、3、2、1、(最低 位信号为1)。向最低位进位的信号为C0、 Gi、Pi 分别是各位的进位产生函数和进位 传递函数。
(1)完善第4位先行进位信号的逻辑表达 式。 C4=G4+P4G3+……
(2)基于操作数,试述表达式中各项的 实际含义。
第4章 数值的机器运算
[-Y]补=[[Y]补]变补
第4章 数值的机器运算
2.补码减法(续)
“某数的补码表示”与“变补”是两个不 同的概念。一个负数由原码转换成补码时,符 号位是不变的,仅对数值位各位变反,末位加 “1”。而变补则不论这个数的真值是正是负, 一律连同符号位一起变反,末位加“1”。[Y]补 表示的真值如果是正数,则变补后[-Y]补所表示 的真值变为负数,反之亦然。
第4章 数值的机器运算
16位单级先行进位加法器
S1 6~S1 3
S1 2~S9
S8~S5
S4~S1
C16 4位CLA C12 4位CLA C8 4位CLA C4 4位CLA
加法器
加法器
加法器
加法器
C0
A1 6~A1 3
A1 2~A9
B1 6~B1 3
B1 2~B9
A8~A5 B8~B5
计算机组成原理课程教案
计算机组成原理课程教案二00九年九月上海建桥学院计算机组成原理课程教案周次 1 第 1 次课学时 2 教案设计人丁纪凯、范新上海建桥学院计算机组成原理课程教案周次 1 第 2 次课学时 2 教案设计人丁纪凯、范新计算机组成原理课程教案周次 2 第 3 次课学时 2 教案设计人丁纪凯、范新上海建桥学院计算机组成原理课程教案周次 2 第 4 次课学时2 教案设计人丁纪凯、范新上海建桥学院计算机组成原理课程教案计算机组成原理课程教案周次 3 第 6 次课学时 2 教案设计人丁纪凯、范新民计算机组成原理课程教案周次4 第7 次课学时 2 教案设计人丁纪凯、范新计算机组成原理课程教案周次4 第8 次课学时 2 教案设计人丁纪凯、范新上海建桥学院计算机组成原理课程教案周次5 第9 次课学时 2 教案设计人丁纪凯、范新计算机组成原理课程教案周次 5 第10 次课学时 2 教案设计人丁纪凯、范新上 海 建 桥 学 院计算机组成原理课程教案周次 6 第 11 次课 学时 2 教案设计人 丁纪凯、范新上海 建 桥 学 院计算机组成原理 课程教案周次 6 第 12 次课 学时 2 教案设计人 丁纪凯、范新计算机组成原理课程教案周次7 第13 次课学时 2 教案设计人丁纪凯、范新计算机组成原理课程教案周次7 第14 次课学时 2 教案设计人丁纪凯、范新计算机组成原理课程教案周次8 第15 次课学时 2 教案设计人丁纪凯、范新民上海建桥学院计算机组成原理课程教案周次8 第16 次课学时 2 教案设计人丁纪凯、范新上海建桥学院计算机组成原理课程教案周次9 第17 次课学时 2 教案设计人丁纪凯、范新计算机组成原理课程教案周次9 第18 次课学时 2 教案设计人丁纪凯、范新计算机组成原理课程教案周次10 第19 次课学时 2 教案设计人丁纪凯、范新上海建桥学院计算机组成原理课程教案周次10 第20 次课学时 2 教案设计人丁纪凯、范新上海建桥学院计算机组成原理课程教案周次11 第21 次课学时 2 教案设计人丁纪凯、范新计算机组成原理课程教案周次11 第22 次课学时 2 教案设计人丁纪凯、范新上海建桥学院计算机组成原理课程教案周次12 第23 次课学时 2 教案设计人丁纪凯、范新民计算机组成原理课程教案周次12 第24 次课学时 2 教案设计人丁纪凯、范新上海建桥学院计算机组成原理课程教案周次13 第25 次课学时 2 教案设计人丁纪凯、范新上海建桥学院计算机组成原理课程教案周次13 第26 次课学时 2 教案设计人丁纪凯、范新上 海 建 桥 学院计算机组成原理 课程教案周次 14 第 27 次课 学时 2 教案设计人 丁纪凯、范新上海建桥学院计算机组成原理课程教案计算机组成原理课程教案周次15 第29 次课学时 2 教案设计人丁纪凯、范新计算机组成原理课程教案周次15 第30 次课学时 2 教案设计人丁纪凯、范新民计算机组成原理课程教案周次16 第31 次课学时 2 教案设计人丁纪凯、范新计算机组成原理课程教案周次16 第32 次课学时 2 教案设计人丁纪凯、范新。
第一章 数值计算方法 绪论
er
e x
因为
e x
e x
er
e x
x x
x
e(x x)
(e )2
xx x ( x e )
( 1
e x
)2
e x
相对误差也可正可负
相对误差限——相对误差的绝对值的上界
r
/* relative accuracy */
e x
x x x
r
Def 1.3 (有效数字/*Significant Digits*/ )
0
e
记为
I
* 0
则初始误差
E0
I0
I
0
0.5 108
此公式精确成立
1
e
1 0
xn
e0
dx
In
1 e
1 x n e1 dx
0
1 e(n 1 )
In
1 n1
I 1
1
1
I 0
0.36787944
... ... ... ...
I 10
1
10
I 9
0.08812800
I 11
1 11
I 10
0.03059200
求函数y y(x)在某些点
xi
n i 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 n n ++++-- 值的如下快速算法n a s =;k n a t -=;t sx s += ),,2,1(n k =它通过n 次乘法和n 次加法就计算出了任意n 次多项式的值. 再如幂函数64x 可以通过如下快速算法计算出其值x s =;s s s ⋅=;循环6次如上算法仅用了6次乘法运算,就得到运算结果.算法最终需要在计算机上运行相应程序,才能得到结果,这样就要关注算法的时间复杂度(计算机运行程序所需时间的度量)、空间复杂度(程序、数据对存储空间需求的度量)和逻辑复杂度(关联程序的开发周期、可维护性以及可扩展性). 事实上,每一种算法都有自己的局限性和优点,仅仅理论分析是很不够的,大量的实际计算也非常重要,结合理论分析以及相当的数值算例结果才有可能选择出适合自己关心问题的有效求解算法. 也正因如此,只有理论分析结合实际计算才能真正把握准算法.§ 误差的度量与传播一、误差的度量误差的度量方式有绝对误差、相对误差和有效数字.定义 用*x 作为量x 的近似,则称)(:**x e x x =-为近似值*x 的绝对误差.由于量x 的真值通常未知,所以绝对误差不能依据定义求得,但根据测量工具或计算情况,可以估计出绝对误差绝对值的一个较小上界ε,即有ε≤-=x x x e **)( 称正数ε为近似值*x 的绝对误差限,简称误差. 这样得到不等式εε+≤≤-**x x x工程中常用ε±=*x x表示近似值*x 的精度或真值x 所在的范围.误差是有量纲的,所以仅误差数值的大小不足以刻划近似的准确程度. 如量m m cm s μ50001230000005.023.15.0123±=±=±=为此,我们需要引入相对误差定义 用0*≠x 作为量x 的近似,称)(:**x e xxx r =-为近似值*x 的相对误差. 当*x 是x 的较好近似时,也可以用如下公式计算相对误差***)(x xx x e r -=显然,相对误差是一个无量纲量,它不随使用单位变化. 如式中的量s 的近似,无论使用何种单位,它的相对误差都是同一个值.同样地,因为量x 的真值未知,我们需要引入近似值*x 的相对误差限)(*x r ε,它是相对误差绝对值的较小上界. 结合式和,*x 相对误差限可通过绝对误差限除以近似值的绝对值得到,即***)()(xx x r εε=为给出近似数的一种表示法,使之既能表示其大小,又能体现其精确程度,需引入有效数字以及有效数的概念.定义 设量x 的近似值*x 有如下标准形式 p n m a a a a x 21*.010⨯±=()p m p n m n m m a a a a ----⨯++⨯++⨯+⨯±101010102211 =其中}9,,1,0{}{1 ⊂=p i i a 且01≠a ,m 为近似值的量级. 如果使不等式n m x x -⨯≤-1021* 成立的最大整数为n ,则称近似值*x 具有n 位有效数字,它们分别是1a 、2a 、… 和 n a . 特别地,如果有p n =,即最后一位数字也是有效数字,则称*x 是有效数.从定义可以看出,近似数是有效数的充分必要条件是末位数字所在位置的单位一半是绝对误差限. 利用该定义也可以证明,对真值进行“四舍五入”得到的是有效数. 对于有效数,有效数字的位数等于从第一位非零数字开始算起,该近似数具有的位数. 注意,不能给有效数的末位之后随意添加零,否则就改变了它的精度.例 设量π=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所以*1x 和*3x 都有3位有效数字,但不是有效数. *2x 具有4位有效数字,是有效数.二、误差的传播这里仅介绍初值误差传播,即假设自变量带有误差,函数值的计算不引入新的误差. 对于函数),,,(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 x f y y y e -≈-=∑= )(),,,(*1**2*1i ni n i x e x x x f ∑== 其中ii x ff ∂∂=:,*i x 是i x 的近似值,)(*i x e 是*i x 的绝对误差),,2,1(n i =. 式表明函数值的绝对误差近似等于自变量绝对误差的线性组合,组合系数为相应的偏导数值.从式也可以推得如下函数值的相对误差传播近似计算公式)(),,,()(***1**2*1*i r ini n i r x e y x x x x f y e ∑=≈对于一元函数)(x f y =,从式和可得到如下初值误差传播近似计算公式)()()(***x e x f y e '≈)()()(*****x e yx x f y e r r '≈式表明,当导数值的绝对值很大时,即使自变量的绝对误差比较小,函数值的绝对误差也可能很大.例 试建立函数n n x x x x x x f y +++== 2121),,,(的绝对误差(限)、相对误差的近似传播公式,以及{}ni i x 1*0=>时的相对误差限传播公式. 解 由公式和可分别推得和的绝对误差、相对误差传播公式如下∑∑==≈ni i ini ni x e x e x x x f y e 1**1**2*1*)()(),,,()(=∑∑==≈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 in i in i ix x e x e y e 1*1*1**)()()()(ε于是有和的绝对误差限近似传播公式 ∑=≈ni i x y 1**)()(εε当{}ni i x 1*0=>时,由式推得相对误差限的近似传播公式)(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 y x x x y x yxy εεεεεε≤≤=≤≤=≤≤====≤=≈∑∑∑∑例 使用足够长且最小刻度为1mm 的尺子,量得某桌面长的近似值3.1304*=a mm ,宽的近似值8.704*=b mm (数据的最后一位均为估计值). 试求桌子面积近似值的绝对误差限和相对误差限.解 长和宽的近似值的最后一位都是估计位,尺子的最小刻度是毫米,故有误差限5.0)(*=a εmm ,5.0)(*=b εmm面积ab S =,由式得到近似值***b a S =的绝对误差近似为)()()(*****b e a a e b S e +≈进而有绝对误差限55.10045.03.13045.08.704)()()(*****=⨯+⨯=+≈b a a b S εεε mm 2相对误差限 %11.00011.08.7043.130455.1004)()(***=≈⨯=≈S S S r εε§ 数值实验与算法性能比较本节通过几个简单算例说明解决同一个问题可以有不同的算法,但算法的性能并不完全相同,他们各自有自己的适用范围,并进而指出算法设计时应该注意的事项.算例 表达式)1(1111+=+-x x x x ,在计算过程中保留7位有效数字,研究对不同的x ,两种计算公式的计算精度的差异.说明1:Matlab 软件采用IEEE 规定的双精度浮点系统,即64位浮点系统,其中尾数占52位,阶码占10位,尾数以及阶码的符号各占1位. 机器数的相对误差限(机器精度)eps=2-52≈×10-16,能够表示的数的绝对值在区间×10-308,×10308)内,该区间内的数能够近似表达,但有舍入误差,能够保留至少15位有效数字. 其原理可参阅参考文献[2, 4].分析算法1: 111)(1+-=x x x y 和算法2: )1(1)(2+=x x x y 的误差时,精确解用双精度的计算结果代替. 我们选取点集301}{=i i π中的点作为x ,比较两种方法误差的差异.从图可以看出,当x 不是很大时,两种算法的精度相当,但当x 很大时算法2的精度明显高于算法1. 这是因为,当x 很大时,x 1和11+x 是相近数,用算法1进行计算时出现相近数相减,相同的有效数字相减后变成零,于是有效数字位数急剧减少,自然相对误差增大. 这一事实也可以从误差传播公式分析出. 鉴于此,算法设计时,应该避免相近数相减.在图中我们给出了当x 接近1-时,两种算法的精度比较,其中变量x 依次取为{}3011=--i i π. 从图中可以看出两种方法的相对误差基本上都为710-,因而二者的精度相当.图 算例中两种算法的相对误差图(+∞→x )图 算例中两种算法的精度比较)1(-→x算例 试用不同位数的浮点数系统求解如下线性方程组⎩⎨⎧=+=+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 ,用不同的算法计算出的结果见表.表 对算例用不同算法的计算结果比较对于算例,表中的数据表明,当用4位尾数计算时,算法1给出错误的结果,算法2则给出解很好的近似. 这是因为在实现算法1时,需要给第一个方程乘以00001.0/2-加至第二个方程,从而削去第二个方程中1x 的系数,但在计算2x 的系数时需做如下运算661610000003.0104.0103.0104.03200001.02⨯⨯⨯⨯=+⨯+=-+--对上式用4位尾数进行计算,其结果为6104.0⨯-. 因为舍入误差,给相对较大的数加以相对较小的数时,出现大数“吃掉”小数的现象. 计算右端项时,需做如下运算661610000002.0102.0102.0102.02100001.02⨯⨯⨯⨯=+⨯+=-+--同样出现了大数吃小数现象,其结果为6102.0⨯-. 这样,得到的变形方程组⎩⎨⎧⨯-=⨯-⨯=⨯+⨯62612114102.0104.0101.0102.0101.0x x x 中没有原方程组中第二个方程的信息,因而其解远偏离于原方程组的解. 该算法中之所以出现较大数的原因是因为运算00001.0/2-,因而算法设计中尽可能避免用绝对值较大的数除以绝对值较小的数. 其实当分子的量级远远大于分母的量级时,除法运算还会导致溢出,计算机终止运行.虽从单纯的一步计算来看,大数吃掉小数,只是精度有所损失,但多次的大数吃小数,累计起来可能带来巨大的误差,甚至导致错误. 例如在算法1a 中出现了两次大数吃小数现象,带来严重的后果. 因而尽可能避免大数吃小数的出现在算法设计中也是非常必要的.当用较多的尾数位数进行计算,舍入误差减小,算法1和2的结果都有所改善,算法1的改进幅度更大些. 算例 计算积分⎰+=1055dx x x I n 有递推公式),2,1(511 =-=-n I n I n n ,已知56ln0=I . 采用IEEE 双精度浮点数,分别用如下两种算法计算30I 的近似值. 算法 1 取0I 的近似值为6793950.18232155*=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 的计算结果见表. 误差绝对值的对数图见图. 表 算例的计算结果139238337436535634 (33)25+001+0013226+001+0013127+002+002 3028+003+00329+003+00330+004+004图算例用不同算法计算结果的误差绝对值的对数图从表中的计算结果可以看出,算法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,即有mmn 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 已知有效数105.3*1-=x ,4*210125.0⨯=x ,010.0*3=x . 试给出各个近似值的绝对误差限和相对误差限,并指出它们各有几位有效数字.2 证明当近似值*x 是x 的较好近似时,计算相对误差的计算公式xxx -*和**x xx -相差一个和2*⎪⎪⎭⎫ ⎝⎛-x x x 同阶的无穷小量. 3 设x 的近似值*x 具有如式的表示形式,试证明 1) 若*x 具有n 位有效数字,则相对误差n r a x e -⨯≤11*1021)(; 2) 若相对误差n r a x e -⨯+≤11*10)1(21)(,则*x 至少具有n 位有效数字.4 试建立二元算术运算的绝对误差限传播近似计算公式.5 试建立如下表达式的相对误差限近似传播公式,并针对第1题中数据,求下列各近似值的相对误差限.1) *3*2*1*1x x x y +=; 2) 3*2*2x y =; 3) *3*2*3/x x y = 6 若例题中使用的尺子长度是80mm ,最小刻度为1mm ,量得某桌面长的近似值3.1304*=a mm ,宽的近似值8.704*=b mm . 试估计桌子长度、宽度的绝对误差限,并求用该近似数据计算出的桌子面积的绝对误差限和相对误差限. 7 改变如下计算公式,使其计算结果更为精确. 1)0,cos 1≠-x xx且1<<x 2) 1,1ln )1ln()1(ln 1>>--++=⎰+N N N N N xdx N N3) 1,133>>-+x x x8 (数值试验)试通过分析和数值试验两种手段,比较如下三种计算1-e 近似值算法的可靠性.算法1 ∑=--≈mn nn e1!)1(;算法2 101!1-=-⎪⎭⎫⎝⎛≈∑m n n e; 算法3 101)!(1-=-⎪⎪⎭⎫ ⎝⎛-≈∑m n n m e ;9 (数值试验)设某应用问题归结为如下递推计算公式72.280=y ,251-=-n n y y , ,2,1=n在计算时2取为具有5位有效数字的有效数*c . 试分析近似计算公式**1*5c y y n n -=-的绝对误差传播以及相对误差传播情况,并通过数值实验验证(准确值可以用IEEE 双精度浮点运算结果代替),该算法可靠可用吗。
计算机组成原理复习2
主存容量
一个主存储器所能存储的全部信息量称 为主存容量。衡量主存容量单位有两种: ① 字节数。这类计算机称为字节编址的计 算机。每1024个字节称为1K字节 (210=1K),(220=1M),(230=1G)。 ② 字数×字长。这类计算机称为字编址的 计算机。如:4096×16表示存储器有4096 个存储单元,每个存储单元字长为16位。
计算机组成原理复习
写出各种寻址方式的有效地址EA 的计算式(PC为程序计数器,A为 形式地址,Rx为变址寄存器): 寻址方式: 例:立即寻址 EA=(PC) 直接寻址 间接寻址 变址寻址 相对寻址
计算机组成原理复习
习题1:执行一条一地址的加法指令共 需要___ B 次访问内存(含取指令)。
A. 1 B. 2 C. 3 D. 4
计算机组成原理复习第第3章章指令系统计算机组成原理复习专业文档某机字长32位指令单字长指令系统中具有二地址指令一地址指令和零地址指令各若干条已知每个地址长12位采用扩展操作码方式问该指令系统中二地址指令一地址指令零地址指令各最多能有多少条
计算机组成原理
陈锦煌
E-mail:554237327@
A. 4K B. 8K C. 16K D. 24K
计算机组成原理复习
习题4:某计算机存储器按字(16位)编址, 每取出一条指令后PC的值自动+1,说明其 指令长度是___ B。
A. 1字节 B. 2字节 C. 3字节 D. 4字节
计算机组成原理复习
习题5:变址寄存器寻址方式中,若变址 寄存器的内容是4E3CH,指令中的形式地 址是63H,则对应的有效地址是___ D。
计算机组成原理复习
计算机的硬件应由运算器、存储器、控制器、输入设 备和输出设备五大基本部件组成。它们各自的功能是: ① 输入设备:把人们编好的程序和原始数据送到计算 机中去,并且将它们转换成计算机内部所能识别和接 受的信息方式。 ② 输出设备:将计算机的处理结果以人或其他设备所 能接受的形式送出计算机。 ③ 存储器:用来存放程序和数据。 ④ 运算器:对信息进行处理和运算。 ⑤ 控制器:按照人们预先确定的操作步骤,控制整个 计算机的各部件有条不紊地自动工作。
计算机组成原理数据的机器运算
3
1、全加器(FA)
全加器真值表
全加器(FA)是最基本 的运算单元,由它构成 加法器。
全加器有三个输入量: 操作数Ai、Bi、以及低 位传来的进位信号Ci-1 。
全加器有两个输出量: 本位和Si、以及向高位 的进位信号Ci。
Ai 0 0 0 0 1 1 1 1
Bi 0 0 1 1 0 0 1 1
27
2、补码加减溢出的判别
例3、X=1011,Y=111 求X+Y。 解:[X]补=0,1011,[Y]补=0,0111 0,1011 (+11) 0,0111 (+7) 1,0010 例4、X=-1011,Y=-111 求X+Y。 解:[X]补=1,0101,[Y]补=1,1001 1,0101 (-11) 1,1001 (-7 ) 0,1110
参加运算的操作数用补码表 示。 补码的符号位与数值位同时 参加运算。 若做加法,则两数补码直接 相加; 若做减法,用被减数与减数 的机器负数相加。 运算结果为和、差的补码。 注:机器负数等于补码连同 符号位按位求反,末位加1。
26
补码加减示例
例1、A=0.1011, B=-0.1110,求A+B. 解: [A]补 = 0.1011, [B]补 = 1.0010 0.1011 + 1.0010 1.1101 ∴ [A+B]补 = 1.1101 A+B = -0.0011 例2、A=0.1011, B=-0.0010,求A-B. 解: [A]补 = 0.1011, [B]补 = 1.1110, [-B]补 = 0.0010 0.1011 + 0.0010 0.1101 ∴ [A-B]补 = 0.1101 A-B = 0.1101
数值分析 第1章
3.计算复杂性尽可能小 从实际需要出发,我们还需要考虑计算量的大小, 即所谓计算复杂性问题。它由以下两个因素决定的: 使用中央处理器 CPU)的时间,主要由四则运算 使用中央处理器( 的时间 主要由四则运算 的次数决定; 占用内存储器的空间,主要由使用的数据量来决 定。
4.要有数值化结果 数值计算的许多方法是建立在离散化的基础上进 行的, 其解决问题的最终结果不是解析解而是数值近似 解。对于给定的数学模型,采用不同的离散手段可以导 致不同的数值方法,应该通过计算机进行数值试验,进 行分析、比较来选定算法。 对新提出的算法,有的在理论上虽然还未证明其 收敛性,但可以从具体试验中发现其规律,为理论证明 提供线索。
x2 =
−b − b 2 − 4ac 2c = 2a −b + b 2 − 4ac
9
来严重影响 应尽量避免 来严重影响,应尽量避免。 例3
,
在 4 位浮点十进制数下,用消去法解线性方程
⎧0.00003 x1 − 3 x 2 = 0.6 ⎨ x1 + 2 x 2 = 1 . ⎩
组
2 ×10 =1 . 109 + 109
§1.1
预备知识
一、集合
把一些确定的彼此不相同的事物汇集在一起成为一 个整体,称为集合。 表示方法:描述法;列举法。 分类:有限集;无限集(可列集,不可列集) 。
9
10
可列集(可数集) : 设 A 是无限集,若 A 中的一切元素可以用自然数 编号(即 A 与自然数集 N 一一对应) ,使 A 写成 A={ A { a1 , a2 , a3 ,L an ,L },则称 A 为可列集 (或可数集) 。 否则,称为不可列集。 如:有理数集是可列集,数列构成的集合是可列 集;无理数集、[0,1]中的全体实数构成的集合是不 可列集。
第章数值的机器运算
哈尔滨学院2014年秋季学期单元测试试卷课程名称:计算机组成原理 单元名称:第四章 数值的机器运算一、 填空题1 .影响并行加法器速度的关键因素是 ________ O2. A 、B 均为8位二进制数,A=F0H , B=E0H ,贝U A+B= ______ , A-B= ________ 3 ______ ,算术右移 1位后得 ________ O4. _____________________________ 向左规格化的规则为尾数 ,阶码为O5. _____________________________ 运算器的基本功能室实现 运算和 运算。
二、 选择题1 .在串行进位的并行加法器中,影响加法器运算速度的关键因素是 _____________A .门电路的级延迟 C .进位传递延迟2.并行加法器中每一位的进位产生函数 A . A i *B iC . A i 二 B i 二 C iD. A B i C i3 .补码力廿/减法是指 _______________ OA .操作数用补码表示,两尾数相加/减,符号位单独处理 B.操作数用补码表示,符号位和尾数一起参加运算,结果的符号与加/减数相同C. 操作数用补码表示,连同符号位直接相加,减某数用加某数的机器负数代替,结果 的符号在运算中形成D .操作数用补码表示,由数符决定两尾数的操作,符号位单独处理4. ___________________________________________ 两个补码数相加,采用1位符号位,当 ______________________________________________ 时,表示结果溢出。
A .符号位有进位B. 符号位进位和最高数位进位异或结果为 0 B .元器件速度D .各位加法器速度的不同Gi 为________________ OB . A 二 B iC. 符号位为1D .符号位进位和最高数位进位异或结果为15. ____________________________________________________________ 在双符号位判断溢出的方案中,出现正溢时,双符号位应当为___________________________ OC. 10D. 116. __________________________________________________ 在定点机中执行算术运算时会产生溢出,其原因是 _____________________________________8. _________ 。
数值计算方法第1章作业
第一章作业第一题问题叙述:构造算法并编程序精确计算二次方程的根。
●设a≠0,b2-4ac>0,且有方程ax2+bx+c=0●包括b2≈b2-4ac的情况(a=c=1,b=±1000000.000001)问题分析:对于普通的二次求根公式:x1,2=−b±√b2−4ac2a当b2>>4ac时,分子可能非常小。
由于计算机中的算术运算存在减性抵消的现象,即两个几乎相等的浮点数相减时会引起舍入误差,所以在这种极端条件下用这个公式就会带来很大的误差。
解决方法:1.使用双精度2.使用变换公式x1,2=−2cb±√b2−4ac3.先利用原公式计算较大的根(即分子不会引起减性抵消),再利用公式:x1x2=c a计算较小的根。
问题解决:1.使用双精度:%This program uses double precision to solve the equation of two degree%And make a comparision to the single precisionclear;clc;[a,b,c]=textread('data.txt','%n%n%n'); %read the numbers from data.txtdelta=b*b-4*a*c;x1=(-b+sqrt(delta))/(2*a);x2=(-b-sqrt(delta))/(2*a); %double precisiona=single(a);b=single(b);c=single(c);%use single precisiondelta=single(b*b-4*a*c);x11=single((-b+sqrt(delta))/(2*a));x12=single((-b-sqrt(delta))/(2*a));fid=fopen('out.txt','w');fprintf(fid,'%g %g %g %g',[x1 x2 x11 x12]);fclose(fid);%write the result into the out.txt下面是计算结果:结论:1.在一般情况下,即没有出现b2≈b2−4ac时,无论是单精度还是双精度下均可以得出正确答案。
知识点 计算机组成原理
知识点计算机组成原理知识点-计算机组成原理计算机组成原理重要知识点第一章绪论一、冯.诺依曼思想体系――计算机(硬件)由运算器、控制器、存储器、输入输出设备五部分组成,存储程序,按地址出访、顺序继续执行二、总线的概念。
按传送信息的不同如何划分;按逻辑结构如何划分三、冯.诺依曼结构(普林斯顿结构)与哈弗结构的存储器设计思想四、计算机系统的概念,软件与硬件的关系、计算机系统的层次结构(实际机器与交互式机器)五、计算机的主要性能指标的含义(机器字长,数据通路宽度,主存容量,运算速度)六、cpu和主机两个术语的含义,完备的计算机系统的概念,硬件、软件的功能分割七、总线概念和总线分时共享资源的特点、三态门与总线电路第二章数据的机器层次表示一、真值和机器数的概念数的真值变为机器码时存有四种则表示方法:原码表示法,反码表示法,补码表示法,移码则表示码。
其中移码主要用作则表示浮点数的阶码e,以利比较两个指数的大小和对阶操作方式二、一个定点数由符号位和数值域两部分组成。
按小数点位置不同,定点数有纯小数和纯整数两种表示方法。
几种定点机器数的数值则表示范围。
三、浮点数浮点数的标准表示法:符号位s、阶码e、尾数m三个域组成。
其中阶码e通常用移码表示(其值等于指数的真值e加上一个固定偏移值)。
规格化浮点数(原码,补码则表示的规格化浮点数的区别)五、处理字符信息(符号数据即非数值信息),七、常用的bcd码:8421码、2421码、余3码、格雷码(有权码,无权码,特点)八、检错纠错码:奇偶校验(掌握奇偶校验原理及校验位的形成及检测方法),海明码的纠错原理(理解)第三章指令系统一、指令格式:指令的基本格式,指令的地址码结构(3、2、1、0地址指令的区别),非规整型指令的操作码(扩展览会操作码)二、编址方式(位,字节,字…)三、操作数串行方式――立即串行、轻易串行、间接串行、寄存器串行、寄存器间接串行、相对串行、基址寻址、变址寻址、页面寻址四、指令串行方式――顺序对串行方式、弹跳串行方式五、指令类型及功能六、不同的计算机的i/o指令差别很大,通常有两种方式:独立编址方式,统一编址方式第四章数值的机器运算一、为运算器构造的简单性,运算方法中算术运算通常采用补码加减法,原码乘除法或补码乘除法。
计算机组成原理基础-孙德文课后习题解答
计算机组成基础习题详解(初稿)孙德文上海交通大学软件学院2009.3第1章计算机系统概论1.1 数字计算机和模拟计算机的区别?解:电子数字计算机的特点是数据由离散量来表示,是对离散变量进行处理和运算的解算装置。
电子模拟计算机的特点是数据由连续量来表示,是对连续变量进行运算的解算装置。
在电子模拟计算机中,变量为连续变化的直流电压、电流或电荷。
1.2 说明冯·诺依曼计算机的设计思想?写出冯·诺依曼计算机的主要组成部分?解:冯·诺依曼计算机的设计思想是:提出了“存储程序”的概念,程序设计者按计算要求编制好程序,将程序和运行程序中所用的数据以二进制代码的形式存入计算机的存储器中,由计算机自动执行程序。
使电子计算机有了通用性,只要能写出正确的指令,计算机执行时就无须人工干预。
冯·诺依曼计算机的主要组成部分是:运算器、控制器、存储器、输入设备和输出设备。
其中运算器和控制器合称“中央处理机”(或称为CPU,Central Processing Unit),CPU与存储器(内存储器)合称为“主机”,而输入设备和输出设备合称为“外部设备”。
1.3 描述计算机的发展过程及应用范围?解:电子数字计算机从1946年第一台ENIAC机至今可分为4代:第一代——电子管计算机;第二代——晶体管计算机第三代——集成电路计算机第四代——大规模和超大规模集成电路计算机应用范围1.4 计算机软件的组成?并举例说明。
解:计算机的主要应用领域包括:数值计算、数据处理、计算机控制、计算机辅助设计/计算机辅助制造和人工智能等。
1.5 说明计算机系统的层次结构及各层次结构的特点?解:计算机系统的层次结构共分8级,从L0~L7,其中:L0为硬联逻辑,实现微指令的控制时序,是计算机系统硬件的内核;L2为机器语言级计算机,该级的机器语言就是该计算机的指令系统;L3为操作系统,为用户提供一个操作环境;L4为汇编语言级计算机,该级的机器语言是汇编语言,由相应级的计算机进行解释、执行;L5为高级语言类计算机,该级的机器语言是各种高级语言,该级计算机基本上脱离了物理计算机,供程序员使用;L6 为应用语言计算机,该级的机器语言是面向非计算机专业人员直接使用的应用语言;L7为应用系统分析和设计,是系统总体分析级,用以建立数学模型和算法,确定系统配置。
第1章 - 数值计算的基本概念
( 1 )x ( 0. a1 an ) 10m
(m是整数),
, 0, , an1, … , 9 中的一个数字。 其中 a1 0, a2为
a x 则从最后一位 a到第一位非零数字 为 的有效数字(共 n位) n 1
x 的绝对误差满足
1 ( 2 ) x x 10m n 2
算法理论主要是连续系统的离散化数
递推性:复杂计算过程转化成简单的计算过程的多次
重复(适合计算机计算)。
限次计算替代。 计算。
近似替代:在误差允许的范围内,无限次的计算用有 模拟仿真:可通过计算机的仿真实验验证实际的工程
4
§2 误差与有效数字
误差种类与来源(以计算地球表面积可以用公式 A 4 r 2
1
§1 数值计算(分析)的对象与特点
数值分析:根据实际问题,抽象出数学模型,提出并研究求解 的数值计算方法(算法),计算并进行误差分析。 为了更具体地 说明数值分析 的研究对象, 我们考察用计 算机解决实际 问题时经历的 几个过程:
认识实际问题
数学模型 要求(特点):
实际可行、 理论可靠、 计算复杂性好
是 1
解: e( x ) x x 103, e( x ) x x 103 , 1 1 1 2 2 2 但是 x 的一个好的近似, x1
不是 2
x
的一个好的近似。 x2
103 103 er ( x1 ) 0.81%, er ( x2 ) 50%. 1.234 0.002
25
由上面的递推公式,可得到下面的计算结果: n
0 0.6321
n
5 0.1455
1
2
0.3679
第3章 数制与运算
3.1 数制
二进制数的算术运算:
加法规则
0+0=0;0+1=1;1+0=1;1+1=10(向高位有 进位
减法规则
0-0=0;10-1=1(向高位有借位);1-0=1;1-1=0
乘法规则
0×0=0;0×1=0;1×0=0;1×1=1
除法规则
0/1=0;1/1=1
3.1 数制
例如, (3AB.48)16 =3×162+A×161+B×160+4×16–1+8×16–2
=768+160+11+0.25+0.03125
=(939.28125)10
3.1 数制
表3-1 十、二、八、十六进制表示法
十进制
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
二进制
在数的右下角或右侧标注 B或2
八进制
在数的右下角或右侧标注 O或8
十六进制
在数的右下角或右侧标注 H或16
十进制
在数的右下角或右侧标注 D或10 省略进制字母,默认为十进制。
3.1 数制
1. 二进制数:
有两个不同的数码符号:0,1 ;
每个数码符号根据它在这个数中的数位,按 “逢二进一”来决定其实际数值。
1×8–1+S–2×8–2+…+S–m×8–m 其中,8为基数;8n-1,8n–2,…,81,80,8–1…,8–m是
八进制数的位权。
例如, (123.24)8 =1×82+2×81+3×80+2×8–1+4×8–2
=64+16+3+0.25+0.0625
=(83.3125)10
3.1 数制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
哈尔滨学院2014年秋季学期单元测试试卷课程名称:计算机组成原理单元名称:第四章数值的机器运算一、填空题1.影响并行加法器速度的关键因素是。
2.A、B均为8位二进制数,A=F0H,B=E0H,则A+B= ,A-B= 。
3 ,算术右移1位后得。
4.向左规格化的规则为尾数,阶码为。
5.运算器的基本功能室实现运算和运算。
二、选择题1.在串行进位的并行加法器中,影响加法器运算速度的关键因素是。
A.门电路的级延迟B.元器件速度C.进位传递延迟D.各位加法器速度的不同2.并行加法器中每一位的进位产生函数Gi为。
A.B.B?AB?A iiii C. D.CB?CA?B?A?iiiiii3.补码加/减法是指。
A.操作数用补码表示,两尾数相加/减,符号位单独处理B.操作数用补码表示,符号位和尾数一起参加运算,结果的符号与加/减数相同C.操作数用补码表示,连同符号位直接相加,减某数用加某数的机器负数代替,结果的符号在运算中形成D.操作数用补码表示,由数符决定两尾数的操作,符号位单独处理4.两个补码数相加,采用1位符号位,当时,表示结果溢出。
A.符号位有进位B.符号位进位和最高数位进位异或结果为0C. 符号位为11.符号位进位和最高数位进位异或结果为D.5.在双符号位判断溢出的方案中,出现正溢时,双符号位应当为。
A. 00 B. 01D. 11C. 106.在定点机中执行算术运算时会产生溢出,其原因是。
A.主存容量不够B.操作数过大C.操作数地址过大D.运算结果无法表示7. 当定点运算发生溢出时,应进行。
A. 向左规格化B.向右规格化C.发出出错信息D.舍入处理8.。
A.B.C. D9.将用8位二进制补码表示的十进制数-121,扩展成16位二进制补码,结果用十六进制表示为。
A.0087H B.FF87HD .FFF9HC.8079HX10.已知,计算机的机器字长为8位二进制编码,则。
HC[]?6?][X补补2A .8CH B.18HD .C. E3HF1H11.对于二进制数,若小数点左移1位则数值,若小数点右移1位则数值。
A.扩大一倍,扩大一倍B.扩大一倍,缩小一半C.缩小一半,扩大一倍D.缩小一半,缩小一半12.X、Y为定点二进制数,其格式为1位符号位,n位数值位。
若采用Booth 补码一位乘法实现乘法运算,则最多需要做加法运算的次数是。
A.n-1 B.nC.n+1 D. n+213.原码加减交替除法又称为不恢复余数法,因此。
.不存在恢复余数的操作A.B.当某一步运算不够减时,做恢复余数的操作C.仅当最后一步余数为负时,做恢复余数的操作D.当某一步余数为负时,做恢复余数的操作14.在加法器、寄存器的基础上增加部分控制电路实现除法时,用B寄存器存放。
A.被乘数和被除数B.被乘数和除数C. 乘数和被除数D.乘数和除数15.若浮点数用补码表示,判断运算结果是否是规格化数的方法是。
A.阶符与数符相同B.阶符与数符相异C.数符与尾数最高有效位相同D.数符与尾数最高有效位相异16.若浮点数用补码表示,一个数的阶码值为7,另一个数的阶码值为9,则需要将阶码值较小的浮点数的小数点。
A. 左移1位B. 右移1位D. 右移2 位位C. 左移217. 4片74181ALU和1片74182CLA相配合,具有传递功能。
A. 串行进位B.组内并行进位,组间串行进位C.组内串行进位,组间并行进位D.组内、组间均为并行进位18.运算器虽由许多部件组成,但核心部件是。
A.算术逻辑运算单元B.多路开关D.累加寄存器.数据总线C19.下列叙述中,错误的是。
A.运算器中通常都有一个状态标志寄存器,为计算机提供判断条件,以实现程序转移B.补码乘法器中,被乘数和乘数的符号都不参加运算C.并行加法器中高位的进位依赖于低位D.在小数除法中,为了避免溢出,要求被除数的绝对值小于除数的绝对值20.计算机中的累加器。
A .没有加法器功能,也没有寄存器功能B.没有加法器功能,有寄存器功能C. 有加法器功能,没有寄存器功能D.有加法器功能,也有寄存器功能21.一个C语言程序在一台32位机器上运行。
程序中定义了3个变量x、y和z,其中x和z为int型,y为short型。
当x=127、y=-9时,执行赋值语句z=x+y后,x、y和z的值分别是A.H?000000769?FFFH,zx?0000007FH,y B.H0076?FFFFFFF9H,zx?0000007FH,y?C.H0076?FFFF7H,zFHx?0000007,y?FFF D.H00000076z?FFF7H,x?0000007FH,y?22.浮点数加、减运算一般包括对阶、尾数运算、规格化、舍入和判断溢出等步骤。
设浮点数的阶码和尾数均采用补码表示,并且位数分别为5位和7位(均含2位符号位)。
75,则用浮点加法计算的最终结果是,。
若有两个数YX?825??29/32/Y?X?2A. 00111 1100010B. 00111 0100010D. 发生溢出 C. 01000 001000123.假定有4个整数用8位补码分别表示为、、、。
Hr??F2Hr?FEH90rH8?Fr3214若将运算结果存放在一个8位寄存器中,则下列运算会发生溢出的是。
A. B. rr?rr?3221D. C. rr?rr?414224.某字长为8位的计算机汇总,已知整型变量、的机器数分别为,y10000100?[X]x补。
若整型变量,则的机器数为。
10110000[Y]?2x/?y?z2?z补 A. 1 1000000 B. 00100100D. 溢出C. 1 010101025.若,,则下列表达式采用8位定点补码运算实现时,会发生溢出103?x25?y?的是。
A. B. y?x?y?x D. C. y??xyx?三、判断题1.进位信号串行传递的加法器称为串行加法器。
2.进位产生函数为。
BA?P?iii3.运算器中设置了加法器后就没有必要设置减法器。
4.浮点数对阶的原则是大阶向小阶看齐。
5.运算器不仅可以完成数据信息的算逻运算,还可以作为数据信息的传送通路。
6.80387被称为协处理器,本身不能单独使用四、简答题1.简述浮点运算中溢出的处理问题。
2.试述先行进位解决的问题及基本思想。
3.串行加法器和并行加法器有何不同?影响并行加法器的关键因素是什么?设低位来的进位信号为,请分别按下列两种方式写出、、的逻辑表达式。
、CCCCC10342(1)串行进位方式)并行进位方式2(五、分析题1.某加法器采用组内并行、组间并行的进位链,4位一组,写出进位信号C6的逻辑表达式。
2.写出一位2421码加法器的校正函数。
六、计算题1.已知X和Y,用变形补码计算X+Y和X-Y,同时指出运算结果是否溢出?2731)(1?X?Y,32321311()2??X?,Y161612.已知,。
计算][?X2[]Y01001101?X[].?.]Y1011000[1补补补补2.3.已知,,用补码一位乘法计算,要写出详细的运算过YX?10101100100..Y?-0X?程。
X,,用补码加减交替法求4.已知??10101000.Y?-0X?0.Y.已知5,,5625.Y?X?-7.2528位,各包含一位符、分别转换成二进制浮点数(阶码占4位,尾数占101()将XY号位)。
(2)用变形补码,求??XY?位,位,数符12,6.有两个浮点数,设阶符1位,阶码0110)(?0?X2)?(0.101.Y?2111?位,用补码运算规则计算的值。
尾数3YX?七、设计题电路设计加法器,要求实现如下功能:CLA1.利用加法器或BCLA加法器以及CLA位单级先行进位加法器(1)构建20 4①使用5个位的CLA加法器; 4个5位的CLA加法器;②使用比较这两种方法得到的最长进位延迟分别画出连接简图(请特别标明进位信号)。
时间有无区别。
位二级先行进位加法器。
2)构建20( CLA电路;15个4位的BCLA加法器和个5位的①使用 4加法器和1个位的CLA电路;BCLA4②使用个5位的比较这两种方法得到的最长进位延迟分别画出连接简图(请特别标明进位信号)。
时间有无区别。
位芯片设计如下.利用274181和741823种方案的32ALU (1)行波进位方案;)二级先行进位方案;(2 3)三级先行进位方案。
(八、综合应用题程序段:C位字长的计算机中运行下列类8假定在一个Unsigned int x=134;Unsigned int y=26;Int m=x;Int n=y;Unsigned int z1=x-y?;Unsigned int z2=x+y?;Int k1=m-n?;Int k2=m+n;若编译器编译时将8个8位寄存器R1~R8分别分配给变量x、y、m、n、z1、z2、k1、k2。
请回答下列问题。
(提示:带符号整数用补码表示)(1)执行上述程序段后,寄存器R1、R5和R6的内容分别是什么?(用十六进制表示)(2)执行上述程序段后,变量m和k1的值分别是多少?(用十进制表示)(3)上述程序段设计带符号整数加/减、无符号整数加/减运算,这4种运算能否利用同一个加法器及辅助电路实现?简述理由。
(4)计算机内部如何判断带符号整数加/减运算的结果是否发生溢出?上述程序段中,哪些带符号整数运算语句的执行结果会发生溢出?。