数值分析课件_图文_第1页
数值分析课件_图文_第2页
数值分析课件_图文_第3页
数值分析课件_图文_第4页
数值分析课件_图文_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 数值运算的误差估计数值运算的误差估计 两个近似数 与 ,其误差限分别为 及 ,Ax1Ax2)(1 Ax)(2 Ax);()()(2121AAAAxxxx);()()(122121AAAAAAxxxxxx).0()()()/(222122121AAAAAAAAxxxxxxxx它们进行加、减、乘、除运算得到的误差限分别为 设 是一元函数, 的近似值为 ,以 近似 ,其误差界记作 ,)(xfxAx)(Axf)(xf)(Axf 一般情况下,当自变量有误差时函数值也产生误差,之间介于AAAAAxxxxfxxxfxfxf,)(2)()()()(2 取绝对值得 ).(2)()()()()(2AAAAxfx

2、xfxfxf 其误差限可利用函数的泰勒展开式进行估计.利用泰勒展开).()()(AAAxxfxf 假定 与 的比值不太大,可忽略 )(Axf )(Axf )(Ax的高阶项,于是可得计算函数的误差限 当 为多元函数,如计算 时. f),(1nxxf 的近似值为 ,nxx,1nAAxx,1则 的近似值为),(1nAAxxf于是由泰勒展开,如果nkkAkknAAnAAxxxxxfxxf111)(),(),(, )(),(11nkkAkAknAAxxxfxxf),(1nxxf),(1nxxf于是可以估计到函数值的误差界,近似地有 ,1nkkAkAkxxxf),(),(11nAAnxxfxxf 已测得某

3、场地长 的值为 ,lm110Al宽 的值d为 ,80mAd已知 . m1.0,m2.0AAddll试求面积 的绝对误差限与相对误差限.lds 因,ldsdlslds),()()(AAAAAddsllss; )(),(11nkkAAknAAxxfxxf知例例解解由其中 ,m80AAdls而 ,m2.0)(Al于是绝对误差限 );m(27)1.0(110)2.0(80)(2As相对误差限 AAArsss)()(m,110AAlds,m1.0)(AdAAAdls )(%.31.0880027 1.3.2 1.3.2 病态问题与条件数病态问题与条件数 对一个数值问题本身, 如果输入数据有微小扰动(即误

4、差),引起输出数据(即问题解)相对误差很大,这就是病病态问题态问题. 例如计算函数值 时,)(xf若 有扰动 ,其xAxx 相对误差为 ,xxxA 函数值 的相对误差为)(Axf)()()(xfxfxfA,)()()()()(pAACxfxfxxxxxfxfxf 称为计算函数值问题的条件数条件数. pC相对误差比值 自变量相对误差一般不会太大,如果条件数 很大,pC将引起函数值相对误差很大,出现这种情况的问题就是病态问题病态问题. 例如, ,nxxf)(它表示相对误差可能放大 倍. n 如 ,10n有 ,24.1)02.1(, 1)1(ff,02.1Ax 自变量相对误差为 ,%2函数值相对误差

5、为 ,%24 一般情况下,条件数 就认为是病态, 越大病态越严重. 10pCpC则有)()(xfxfxCp,1nxnxxnn, 1x若取这时问题可以认为是病态的. 1. 要避免除数绝对值远远小于被除数绝对值的除法要避免除数绝对值远远小于被除数绝对值的除法;2。避免两个相近的数相减。避免两个相近的数相减;3. 要防止大数要防止大数“吃掉吃掉”小数小数;2。应选用数值稳定性的计算方法。应选用数值稳定性的计算方法;2。简化计算步骤和公式,设法减少运算次数。简化计算步骤和公式,设法减少运算次数。 避免误差危害的若干原则避免误差危害的若干原则 一个算法如果输入数据有误差,而在计算过程中舍入误差不一个算法

6、如果输入数据有误差,而在计算过程中舍入误差不增长,则称此算法是增长,则称此算法是数值稳定数值稳定的,否则称此算法为的,否则称此算法为不稳定不稳定的的. . 2。防止溢出。防止溢出。解:解:ndxxdxxxxIInnnn可得算法:可得算法: )20, 2 , 1(511823. 05ln6ln10nInIInn建立积分建立积分20, 1 , 0510 ndxxxInn的递推关系式,并研究它的误差传递。的递推关系式,并研究它的误差传递。例例一、使用数值稳定的计算公式(一、使用数值稳定的计算公式(即能控制误差的传播) 避免误差危害的若干原则这个算法不具有稳定性,因为这个算法

7、不具有稳定性,因为1823. 00 I的舍入误差传播到的舍入误差传播到 时,该误差放大时,该误差放大5倍,传到倍,传到1I20I时,该误差将是时,该误差将是 倍,当倍,当n较大时,误差将较大时,误差将205淹没真值,这种递推公式不宜采用。淹没真值,这种递推公式不宜采用。5561 , 0nnnxxxxx 时时,所以有估计式所以有估计式)1(51)1(61 nInn避免误差危害的若干原则于是于是2151216120 I粗略地取粗略地取0087301587. 021051126120 I可得另一算法:可得另一算法: )1 ,19,20)(1(510087301587. 0120nInIInn这个算法

8、是稳定的,因为由这个算法是稳定的,因为由 引起的误差在引起的误差在以后的计算过程中将逐渐减小。以后的计算过程中将逐渐减小。20I避免误差危害的若干原则nIn(按算法(按算法1计算计算)In(按算法(按算法2计算)计算)0.182321550.1823215510.088392250.0883922220.058038750.0580389230.043139580.0431387340.034302080.034303350.028489580.0284683560.024218750.0243249170.021763390.0212326080.016183050.0188369990.0

9、30195880.0169261710-0.050979410.01536914110.345806120.0140633912-0.645697260.013016368.305409380.0118412714-41.455618310.01222222130 0*10I二、防止相近的两数相减二、防止相近的两数相减避免误差危害的若干原则在数值计算中两相近数相减,有效数字会严重损失在数值计算中两相近数相减,有效数字会严重损失. . 这说明必须尽量避免出现这类运算这说明必须尽量避免出现这类运算. . 最好是改变计算方最好是改变计算方法,防止这种现象产生法,防止这种现象产生. . 1000000

10、. 05706121. 15706122. 15429arctan5430arctan6个零个零 y8位有效数字位有效数字8位有效数字位有效数字1位有效数字位有效数字 这说明必须尽量避免出现这类运算这说明必须尽量避免出现这类运算. . 最好是改变计算方最好是改变计算方法,防止这种现象产生法,防止这种现象产生. . 1000000. 05706121. 15706122. 15429arctan5430arctan6个零个零 y8位有效数字位有效数字8位有效数字位有效数字 33921910000000. 05429arctan5430arctan7个零个零 y1位有效数字位有效数字改变计算公式:

11、改变计算公式:,可得,可得由由 1arctanarctanarctan8arctan5430arctan54291arctan3.3921911 1029479471精度提高了很多。此例说明,可通过改变精度提高了很多。此例说明,可通过改变计算公式避免或减少有效数字的损失。计算公式避免或减少有效数字的损失。的的近近似似值值。利利用用四四位位数数学学用用表表求求021cos x解:查表得解:查表得9994. 02cos0 01 cos21 0.99940.0006Axx 04cos20.99940.5 10Axx0.0006Ax 故有一位有效数字。,1sin22cos1020 若用公式若用公式02

12、023sin10.01752sin 12 (0.0175)0.6125 10,Axx例例避免误差危害的若干原则0.0006125具有4位有效数字求求 的小正根的小正根. . 01162xx 解解,6381x 只有一位有效数字只有一位有效数字. . *2x6382x则具有则具有3 3位有效数字位有效数字. . 若改用若改用例例由求根公式由求根公式6382x,06.094.78*2x0627.094.1516381很接近时,应用很接近时,应用和和如果如果21xx1122lnlnln.xxxx应应用用很很大大时时当当,x,111 xxxx说说明明避免误差危害的若干原则用右边算式有效数字就不损失用右边

13、算式有效数字就不损失. . 思考:思考:sinx x当当 0,1xx时,如何计算时,如何计算 sintanxx如果无法改变算式,如果无法改变算式,在计算机上则采用双精度运算,以在计算机上则采用双精度运算,以增加有效数字位数,增加有效数字位数,但这要增加机器计算时间和多占内但这要增加机器计算时间和多占内存单元存单元. . 避免误差危害的若干原则一一般般情情况况,时时当当)()(*xfxf 可可用用泰泰勒勒展展开开 )(2)( )( )()(*xxxfxxxfxfxf取右端的有限项近似代替左端。取右端的有限项近似代替左端。 当两个绝对值相差很大的数进行加法或减法运当两个绝对值相差很大的数进行加法或

14、减法运算时算时, ,绝对值小的数有可能被绝对值大的数绝对值小的数有可能被绝对值大的数 吃掉吃掉 从从而引起计算结果很不可靠而引起计算结果很不可靠. .三、防止大数吃小数三、防止大数吃小数避免误差危害的若干原则例如,某计算机允许表示具有七位有效数字的十进制数,例如,某计算机允许表示具有七位有效数字的十进制数,计算计算333.3333+0.0002222222。 若计算时没有位数的限制,则计算结果应当是若计算时没有位数的限制,则计算结果应当是333.3335222222。而现在的问题是,计算机由于字长位数。而现在的问题是,计算机由于字长位数的限制,只能表示七位有效数字,于是只得将小数点最后的限制,

15、只能表示七位有效数字,于是只得将小数点最后的的6个数字全部删掉,得到个数字全部删掉,得到333.3335。这样,在相加的过。这样,在相加的过程中,大数就把小数程中,大数就把小数“吃掉吃掉”了。了。例例避免误差危害的若干原则 在五位十进制计算机上,计算在五位十进制计算机上,计算,5249210001iiA其中 . 9 .01 .0i 解:把运算的数写成规格化形式解:把运算的数写成规格化形式 .1052492.0100015iiA由于在计算机内计算时要对阶由于在计算机内计算时要对阶,若取若取 ,9.0i55510000009.010000009.01052492.0A,表示机器中相等符号)(105

16、2492.05对阶时对阶时 ,在五位的计算机中表示为,在五位的计算机中表示为5100000090.i机器机器 0 0 ,因此因此结果显然不可靠,这是由于运算中出现了大数结果显然不可靠,这是由于运算中出现了大数 52492 “52492 “吃吃掉掉”小数小数 造成的造成的. . i,109.0101.03100013ii于是于是 A551052492. 010001. 0 如果计算时先把数量级相同的一千个如果计算时先把数量级相同的一千个 相加,最后相加,最后再加再加5249252492,就不会出现大数,就不会出现大数“吃吃”小数现象,小数现象,i,1052492. 010009. 055.533

17、9252592 A这时这时 分母接近零的数会产生溢出错误分母接近零的数会产生溢出错误,因而产生大的因而产生大的误差误差,而且当很小的除数稍有一点误差时,对计算结而且当很小的除数稍有一点误差时,对计算结果影响很大。此时可以用数学公式化简后再做果影响很大。此时可以用数学公式化简后再做.2)()(yyxexyeyxe 很很多多。时时,舍舍入入误误差差可可能能增增大大当当xy 四、防止用接近零的数做除数四、防止用接近零的数做除数避免误差危害的若干原则5 .3141001. 01415. 39 .28550011.01415.3若直接计算,再逐项相加共需要做若直接计算,再逐项相加共需要做4+3+2+1=

18、10次次乘法和乘法和4次加法次加法.分析分析若用著名的秦九韶算法:若用著名的秦九韶算法:4( )(72)3)4)5P xxxxx只要做只要做4次乘法和次乘法和4次加法。次加法。五、注意简化计算步骤,减少运算次数五、注意简化计算步骤,减少运算次数4324( )72345P xxxxx例例求下列多项式在求下列多项式在 的值的值2 x避免误差危害的若干原则 例例0111)(axaxaxaxPnnnnn的值,的值, 若直接计算若直接计算 再逐项相加,一共需做再逐项相加,一共需做kkxa2)1(12)1(nnnn次乘法和次乘法和 次加法次加法. . n 若采用秦九韶算法若采用秦九韶算法 10,(1, 2

19、,1, 0),( ),nnkkknuauxuaknPxu计算多项式计算多项式012101211)()()(aaaaxaxxxaaxaxaxxPnnnnnnnn 只要只要 次乘法和次乘法和 次加法就可算出次加法就可算出 的值的值. . nn)(xPn2311ln 2ln(1).( 1).231111ln 21.( 1).23nnnTaylorxxxxxnxn 例:计算的值。解:算法一:由展式有令有55ln211|102 1012nn由交错级数级数判别法可知收敛。若要时,则显然项数大,收敛速度慢。得:并取则令则而由于算法二1031211.)12.531(211ln)1ln()1ln(.)1(.32

20、)1ln(.32)1ln(:24213232nxxxnxxxxxxxxnxxxxxnxxxxxnnnn20241112121110211 111ln 2(1.( )335 321 321111(.)3239259211111110132391223919ln 2T其截断误差为两种算法,同样计算,计算精度及速度差距很大。2! !2! !12nnPn2 解:解: 若按先计算分子,再计算分母,然后再进行除法,若按先计算分子,再计算分母,然后再进行除法,最后乘以最后乘以例例 计算计算22121ppkkppP这样就避免了上溢。这样就避免了上溢。 这种算法的缺点是当这种算法的缺点是当n n很大时,受字长的

21、限制,分子、分很大时,受字长的限制,分子、分母可能产生溢出。母可能产生溢出。若算法改进为若算法改进为六、防止溢出。六、防止溢出。 计算计算 ,取取 ,利用下列等利用下列等式计算,哪一个得到的结果最好?式计算,哪一个得到的结果最好?6)12( f4 . 12 61( 21)3(32 2)31(32 2)9970 2思考与练习利用等价变换使下列表达式计算比较精确利用等价变换使下列表达式计算比较精确.; 111211)1( xxxx; 111)2( xxxxx; 11)3(12 xxxtdt; 1)1ln()4(2 xxx; 11)5( xex;cos1)6(x .sincos1)7(xx 练习练习思考与练习提示提示xxxxxxxxx11211)2( xxtdtxxarctan)1arctan(1)3(12 )1)(21(211211)1(2xxxxxx xxxxxxxx)1(11arctan)1(1)1(arctanarctan)1arctan(arctantan

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论