当前位置:首页 > 《计算方法》复习题-1
第一章 绪 论 .1 .
第一章 绪 论
复习题
例1计算a?(2?1)6,取2?1.4,采用下列算式计算: (1)
1(2?1)6;
(2)99?702; (3)(3?22)3; (4)
1(3?22)3。
问哪一个得到的结果最好?
解 显然
a?(2?1)?6(2?1)6(2?1)6(2?1)6?1(2?1)6
(2?1)6?[(2?1)2]3?(3?22)3?99?702 (2?1)6?1(2?1)6?1[(2?1)]23?1(3?22)3
所以(1)?(2)?(3)?(4),这4个算式是恒等的,但当取2?1.4计算时,因为(2),(3)都涉及到两个相近数相减,使有效数字丢失,而(1)在分母算式上的乘幂数比算式(4)大,所以算式(4)最好。事实上,当取2?1.4时,有?x?0.015,再由f(x)的误差
|f(x??x)?f(x)|?|f'(1.4)||?x|也可直接估计出每个算式的误差,显然,算式(4)误
差最小。
具体计算可得: (1)
1(2?1)6?5.2?10?3;
.2 . 实用数值分析解题指导
(2)99?702?1.0; (3)(3?22)3?8.0?10?3; (4)
1(3?22)3?5.1?10?3。
比较可得用第(4)个算式所得的结果更接近于a。
例1.8 建立积分In??解 由
10xndxn?0,1,?,20的递推关系式,并研究它的误差传递。 x?51xn?5xn?11??dx??xn?1dx? 005?xn1In?5In?1和
I0??可建立下列递推公式
1dx?ln6?ln50x?51
?I0?ln6?ln5??1I??5In?1n?n?(n?1,2,?,20) (*)
计算出I0后,由递推关系式可逐次求出I1,I2,?,I20的值。但在计算I0时有舍入误差,因
*此在使用递推关系式中,实际算出的都是近似值In(n?1,2,?,20)。即
?I0*?I0?e0??*1*?In??5In?1n?现在来研究误差是如何传递的。
*(n?1,2,?,20)
设I0有误差e0,假设计算过程中不产生新的舍入误差,则由(*)式可得
**en?In?In??5In?1?5In(n?1,2,?) ?1??5en?1从而有
en?(?5)ne0
第一章 绪 论 .3 .
即原始数据I0的误差e0对第n步的影响使该误差扩大了5倍。当n较大时,误差将淹没真值,因此递推公式(*)是数值不稳定的。
现在从另一方向使用这一公式
*n1?1?In?1???In?(n?20,19,?,1) (**)
5?n?****只要给出I20的一个近似值I20,即可递推得到I19,类似于上面的推导可得 ,I18,?,I0en?1每递推一步误差缩小到原值的
由于x?[0,1]时,
1?1???en,e0????en
5?5?n1,所以递推公式(**)是数值稳定的。 5xnxnxn?? 65?x5所以有估计式
11?In?
6(n?1)5(n?1)于是
11?I20? 6?215?21取
11? I20?126105?0.00873015872?I20?0.0087301587?可得另一算法:? 11I?(?I)(n?20,19,?,1)n?1n?5n?由此可见,对于同一数学问题,使用的算法不同,效率也大不相同,只有选用数值稳定性好的算法,才能求得较准确的结果。
.4 . 实用数值分析解题指导
基于Mathematica的数值计算实例
例1 计算e,?有n(n?1,2,...,10)位有效数字的近似值,并列表。 解 Mathematica程序:
Table[{N[E,n],N[Pi,n]},{n,1,10}]; TableForm[%]
运行结果:
3. 3. 2.7 3.1 2.72 3.14 2.718 3.142 2.7183 3.1416 2.71828 3.14159 2.718282 3.141593 2.7182818 3.1415927 2.71828183 3.14159265 2.718281828 3.141592654
例2 用程序计算1500,解 Mathematica程序:
612有n(n?10,11,?,15)位有效数字的近似值。
Table[{N[Sqrt[1500],n],N[12^(1/6),n]},{n,10,15}]; TableForm[%]
运行结果:
38.72983346 1.513085749 38.729833462 1.5130857494 38.7298334621 1.51308574942 38.72983346207 1.513085749423 38.729833462074 1.5130857494229 38.7298334620742 1.5130857494229
例3 计算cos75.5,arctan34.7,log579的近似值。 解 Mathematica程序:
{Cos[75.5 Degree],ArcTan[34.7 Degree],Log[5,79]}//N; TableForm[%]
运行结果:
0.25038 0.544548 2.71489
00
共分享92篇相关文档