中国石油大学(华东)理学院参考书目(Reference)(1.研究和创造算法,2.使用算法)计算方法(第二版)同登科、周生田、张高民2009数值计算引论(第二版)白峰杉(高等教育出版社2010)NumericalAnalysis(SeventhEdition),RLBurden,JDFaires《MATLAB》任何一本较新点的参考书课程评分方法(GradingPolicies)作业成绩(20%)期末考试成绩(60%)程序实验成绩(20%)§1误差/*Error*/一、误差的来源与分类/*Source&Classification*/1、从实际问题中抽象出数学模型——模型误差/*ModelingError*/2、通过观测得到模型中某些参数(或物理量)的值——观测误差/*MeasurementError*/3、数学模型与数值算法之间的误差求近似解——方法误差(截断误差/*TruncationError*/)4、由于机器字长有限,原始数据和计算过程会产生新的误差——舍入误差/*RoundoffError*/二、误差分析的基本概念/*BasicConcepts*/设为真值(精确值),为的一个近似值称为近似值的绝对误差,简称误差。xxxxexx注:误差可正可负,常常是无限位的绝对误差限/*accuracy*/——绝对值的上界exx如:5314159110314159262.(.)绝对误差还不能完全表示近似值的好坏(绝对误差/*absoluteerror*/)11.Def近似值的误差与准确值的比值:xexexxxx称为近似值的相对误差,记作reexx注:实际计算时,相对误差通常取rexxexx12.Def(相对误差/*relativeerror*/)相对误差也可正可负rexxxx13.Def(有效数字/*SignificantDigits*/)相对误差限——相对误差的绝对值的上界r/*relativeaccuracy*/如:31415926.314.3141592.3位21102e6位51102e若近似值与准确值的误差绝对值不超过某一位的半个单位,该位到的第一位非零数字共有位,则xxnxn称有位有效数字注:0.2300可能有4位有效数字,而0.0023只有2位有效数字。12300如果写成0.123105,则表示只有3位有效数字。数字末尾的0不可随意省去!3.1415926535897932;3.1415例1:问:有几位有效数字?请证明你的结论。*10501050*and103141504131..π||π,.π*证明:有位有效数字,精确到小数点后第位。43有效数字与相对误差和绝对误差之间关系密切!例3计算下列多项式的值nnnaxaxaxp10)(为已知数据01,,,naaax分析:输入数据为,输出数据为,若直接由算出,再乘相应的系数并相加,则要做次乘法和次加法,占用个存储单元。0,,,naaxx)(xpnxx,,2021,,,aaann12()nnn12n秦九韶方法,也称为Horner算法nnaxaxaxaxp))(()(110只用次乘法和次加法,并占用个存储单元n2nn三、数值算法及稳定性/*NumericalAlgorithmandStability*/大家一起猜?dxe2x1011/e解法之一:将作Taylor展开后再积分2xe91!4171!3151!21311)!4!3!21(10864210dxxxxxdxe2xS4R4/*Remainder*/,104Sdxe2x取则111!5191!414R称为截断误差/*TruncationError*/005091!414.R这里7430024010333014211013114....S0010200050..|舍入误差/*RoundoffError*/|006000100050102...dxe-x的总体误差计算=0.747……由截去部分/*excludedterms*/引起由留下部分/*includedterms*/引起例4近似计算210xedx10333333.100238042.一个算法如果输入数据有扰动(即误差),而计算过程中舍入误差不增长,则称此算法是数值稳定的,否则此算法就称为不稳定的。14.Def(数值稳定性/*NumericalStability*/)此公式精确成立80001050.IIE记为*0I632120560111100.edxeeIx则初始误差111111110010nI)e(ndxexeIdxexennnn101091110121113121413151411036787944............110008812800111003059200112063289600113722764801149495942411514233914II.II.II.II.II.II.II.????!!!Whathappened?!例5计算101012,,,,......nxnIxedxne11101011[]nxnxnnIxenxedxnIe公式一:考察第n步的误差nE11|||||(1)(1)|nnnnnEIInInI||!01En||Enn我们有责任改变。造成这种情况的是不稳定的算法/*unstablealgorithm*/迅速积累,误差呈递增趋势。初始的小扰动801050||.E)1(1111nnnnInIInI公式二:注意此公式与公式一在理论上等价。方法:先估计一个IN,再反推要求的In(nN)。11)1(1NINeN1112(1)1NNIIeNN可取0*NNNIIEN,时当()()()()()()1514151314121311121011121110042746233216161100638169181511006687022014110071779214131100773517321211008387711511110367879442I.eII.II.II.II.II.II.()01110632120561II.取考察反推一步的误差:()()1111||11||NNNNEIIENNN以此类推,对nN有:||)1(...)1(1||NnEnNNE误差逐步递减,这样的算法称为稳定的算法/*stablealgorithm*/在我们今后的讨论中,误差将不可回避,算法的稳定性将会是一个非常重要的话题。§2误差分析/*ErrorAnalysis*/一、误差分析的方法1212()()()xxxx121221()()()xxxxxx12211222()()()xxxxxxx两个近似数,四则运算得到的误差限分别为12,xx(1)(2)对于函数y=f(x),若用x*取代x,将对y产生什么影响?分析:e*(y)=f(x*)f(x)e*(x)=x*xMeanValueTheorem()()fxxx*与x非常接近时,可认为,则有:()()ffx()()()eyfxex即:产生的误差经过作用后被放大/缩小了倍。故称为放大/缩小因子/*amplificationfactor*/或绝对条件数/*absoluteconditionnumber*/.xf()fx()fx()|()|()reyeyfx()|()|rexexx()()()()()()()rrfxfxxxxeyxxfxxxfxexfx相对误差条件数/*relativeconditionnumber*/f的条件数在某一点是小\大,则称f在该点是好条件的/*well-conditioned*/\坏条件的/*ill-conditioned*/。注:关于多元函数可类似讨论.)...,(21nx,x,xfy()()()fxexfx例7105%x设,试求函数的相对误差限.()nfxx解:由题设知:近似值为,绝对误差限为10x()5%x1111()()nnfxxxnnx()()()()0.005()()()reffxexexeffxfxnxn二、几点注意事项/*Remarks*/1、避免相近二数相减例:a1=0.12345,a2=0.12346,各有5位有效数字。而a2a1=0.00001,只剩下1位有效数字。几种经验性避免方法:;xεxεxεx;1lnlnlnxεxεx当|x|1时:;2sin2cos12xx...6121112xxxex注:求和时从小到大相加,可使和的误差减小。例:按从小到大、以及从大到小的顺序分别计算1+2+3+…+40+1094、先化简再计算,减少步骤,避免误差积累。一般来说,计算机处理下列运算的速度为exp,,5、选用数值稳定的算法。2、避免小分母:分母小会造成浮点溢出/*overflow*/3、避免大数吃小数称为尾数,j为阶§3计算机的数系结构/*StructureofNumberSystem*/计算机的数系是一个不完整的数系。计算机只能表示有限个数,即计算机的精度是有限的。每种计算机内部运算是按固定的有限位数进行的,也就是按固定位数的有限位浮点数进行运算的。浮点数系统由四个整数表征:基,精度(尾数)位数,下溢界和上溢界tLU计算机所表示的数的集合(规格化浮点数系):若,则,其中,.0fmfM1Lm1()UtM12100100.,,,jtiFfdddditdLjU例如:2312(,,,),,,FtLUtLU12310202130120.,,,jiFfddddidj四种排列:123100101110111ddd尾数只能为4个数:1232401001202028(.)1232501011202128(.)1232601101212028(.)1232701111212128(.)故F中有33个浮点数(加上0):10121112425555168423333842777716842jjjj一般地,机器数有单精度和双精度之分。通常,单精度为32位,双精度为64位,它们是正负号、阶码和尾数所占二进制的总长度。阶码正负号1位阶码7位1位尾数23位尾数正负号32位阶码正负号1位阶码10位1位尾数52位尾数正负号64位t=23,约相当于十进制7位有效数字:绝对值范围,即t=52,约相当于十进制15位有效数字:绝对值范围,即12812822~393829103410.~.1024102422~3093085561017910.~.