数值分析简明教程- 课后答案 下载本文

f'''(?0)2f(2?1)(?1)2f'''(?1)R(x1)???(x1?xj)?(x1?x0)(x1?x2)??h

(2?1)!3!6j?0j?1

f(2?1)(?2)2f'''(?2)f'''(?2)2R(x2)???(x2?xj)?(x2?x0)(x2?x1)??h

(2?1)!3!3j?0j?22、(p.96,习题25)设已给出f(x)?x f(x) 1的数据表, 2(1?x)1.1 0.2268 1.2 0.2066 1.0 0.2500 试用三点公式计算f'(1.0),f'(1.1),f'(1.2)的值,并估计误差。

【解】已知x0?1.0,x1?1.1,x2?1.2,h?x1?x0?x2?x1?0.1,用三点公式计算微商:

11[?3f(1.0)?4f(1.1)?f(1.2)]?[?3?0.2500?4?0.2268?0.2066]??0.24702h2?0.111f'(1.1)?[?f(1.0)?f(1.2)]?[?0.2500?0.2066]??0.21702h2?0.111f'(1.2)?[f(1.0)?4f(1.1)?3f(1.2)]?[0.2500?4?0.2268?3?0.2066]??0.18702h2?0.11?26?24, f(x)?;?f'(x)?;?f''(x)?;?f'''(x)?2345(1?x)(1?x)(1?x)(1?x)f'(1.0)?用余项表达式计算误差

R(1.1)??f'''(?0)2?24?0.12R(1.0)?h???0.002533(1?1.0)5f'''(?1)224?0.123!h?3!(1?1.0)5?0.00125f'''(?2)2?24?0.12R(1.2)?h???0.04967 533(1?1.1)3、(p.96,习题26)设f(x)?sinx,分别取步长h?0.1,0.01,0.001,用中点公式(52)计算f'(0.8)的值,令中间数据保留小数点后第6位。 【解】中心差商公式:f'(a)?f(a?h)?f(a?h)f'''(a)2h。可,截断误差:R(h)?2h3!见步长h越小,截断误差亦越小。

(1) h?0.1,x0?0.8?h?0.7,x2?0.8?h?0.9,则

11[sin(0.9)?sin(0.7)]?[0.783327?0.644218]?0.695545; 2h2?0.1(2) h?0.01,x0?0.8?h?0.79,x2?0.8?h?0.81,则

11f'(0.8)?[sin(0.81)?sin(0.79)]?[0.724287?0.710353]?0.6967

2h2?0.01(3) h?0.001,x0?0.8?h?0.799,x2?0.8?h?0.801,则

f'(0.8)?

f'(0.8)?11[sin(0.801)?sin(0.799)]?[0.718052?0.716659]?0.69652h2?0.01?,可见当h?0.01时得到的误差最小。在而精确值f'(0.8)?cos(0.8)?0.6967067h?0.001时反而误差增大的原因是f(0.8?h)与f(0.8?h)很接近,直接相减会造成有效

数字的严重损失。因此,从舍入误差的角度看,步长不宜太小。

3.1 Euler格式

1、(p.124,题1)列出求解下列初值问题的欧拉格式

(1)y'?x2?y2(0?x?0.4),y(0)?1,取h?0.2;

y?y?(2)y'????x?x?

2(1?x?1.2),y(0)?1,取h?0.2;

2222【解】 (1)yn?1?yn?hy'n?yn?h(xn?yn)?yn?0.2?(xn?yn);

(2)yn?122ynynyny?yn?h(2?)?yn?0.2?(2?n)。

xnxnxnxn2、(p.124,题2)取h?0.2,用欧拉方法求解初值问题y'??y?xy2(0?x?0.6),

y(0)?1。

22【解】欧拉格式:yn?1?yn?hy'n?yn?h(?yn?xnyn)?yn?0.2?(?yn?xnyn);化2简后,yn?1?0.8yn?0.2xnyn,计算结果见下表。

n xn yn 0 0.0 1.0 1 0.2 0.8 2 0.4 0.6144 3 0.6 0.4613 3、(p.124,题3)取h?0.1,用欧拉方法求解初值问题y'?1?2y2(0?x?4),21?xy(0)?0。并与精确解y?2x1比较计算结果。

1?x2【解】欧拉格式:yn?1?yn?hy'n?yn?h(1122?2y)?y?0.2?(?2yn);nn221?xn1?xn化简后,yn?1?yn?0.4yn?20.2,计算结果见下表。 21?xn 1、(p.124,题7)用改进的欧拉方法求解上述题2,并比较计算结果。

【解】 因为y'?f(x,y)??y?xy2(0?x?0.6),h?0.2,且y(0)?1,则改进的欧拉公式:

?22?yp?yn?hf(xn,yn)?yn?h(?yn?xnyn)?0.8yn?0.2xnyn?22?yc?yn?hf(xn,yp)?yn?h(?yp?xnyp)?yn?0.2?(yp?xnyp)。 ?(yp?yc)?yn?1?2?计算结果见下表。

n xn yp yc yn 与原结果比较见下表 0 0.0 1.0 0.76 0.88 0 0.0 1.0 0.88 1 0.2 0.6730 0.7092 0.6911 1 0.2 0.8 0.6911 2 0.4 0.5147 0.5564 0.5356 2 0.4 0.6144 0.5356 3 0.6 0.3941 0.4319 0.413 3 0.6 0.4613 0.413 n xn yn yn(改进)

3.3 龙格-库塔方法

1、(p.124,题11)用四阶经典的龙格-库塔方法求解初值问题y'?8?3y,y(0)?2,试取步长h?0.2计算y(0.4)的近似值,要求小数点后保留4位数字。

【解】 四阶经典的龙格-库塔方法公式:

?h?yn?1?yn?(K1?2K2?2K3?K4)6??K1?f(xn,yn)?h?; K?f(x,y?K1)?21nn?22??h?K3?f(x1,yn?K2)n?2?2?K?f(x,y?hK)n?1n3?4列表求得y(0.4)如下:

n 0 1 2 xn 0.0 0.2 0.4 yn 2.000 2.3004 2.4654

4.1 迭代法及收敛定理

1、(p.153,题1)试取x0?1,用迭代公式xk?1?32202xk?2xk?10(k?0,1,2,?),求

方程x?2x?10x?20?0的根,要求准确到10。

【解】 迭代计算结果列于下表 ?3k 1 2 3 4 5 xk 1.53846 1.29502 1.40182 1.35421 1.37530

|xk-xk-1| 0.53846 0.24344 0.10680 0.04761 0.02109 <0.001 N N N N N k 6 7 8 9 xk 1.36593 1.37009 1.36824 1.36906 |xk-xk-1| 0.00937 0.00416 0.00185 0.00082 <0.001 N N N Y 因为|x9?x8|?0.00082?10?3,所以x??x9?1.36906。 2、(p.153,题2)证明方程x?代过程xk?1?1cosx有且仅有一实根。试确定这样的区间[a,b],使迭21cosxk对x0?[a,b]均收敛。 21111【证明】设:g(x)?cosx,则当x?R时,g(x)?cosx?[?,],且一阶导数

22221111g'(x)??sinx连续, |g'(x)|?|?sinx|??1,所以迭代过程xk?1?cosxk对

22221(压缩映像定理),方程x?cosx有且仅有一实根。<证毕> x0?R均收敛。

23、(p.153,题4)证明迭代过程xk?1?xk1对任意初值x0?1均收敛于2。 ?2xkg(x)?【证明】设:

x1x1x1?,对于任意x?1,因为??2所以g(x)?2。??2,2x2x2x一阶导数g'(x)?x1111?2??1, 根据压缩映像定理,迭代公式xk?1?k?对任意2x22xk?初值x0?1均收敛。假设limxk?x,对迭代式xk?1?k??xk1两边取极限,则有?2xkx?1x???,则x?2x???2?2,解得x???2,因x???2不在x?1范围内,须舍去。

故x?

?2。<证毕>

4.2 牛顿迭代法

1、(p.154,题17)试用牛顿迭代法求下列方程的根,要求计算结果有4位有效数字:

(1)x?3x?1?0,x0?2 (2)x?3x?e?2?0,x0?1

【解】 (1)设f(x)?x3?3x?1,则f'(x)?3x2?3,牛顿迭代公式:

2x3xk?1k 33f(xk)xk?3xk?12xk?1?xk??xk??22f'(xk)3xk?33(xk?1)(k?0,1,2,?),迭代计算过|xk-xk-1| 0.00006 程见下列表。 xk |xk-xk-1| 0.11111 0.00944 <0.0001 N N k 3 xk 1.87939 <0.0001 Y 1 1.88889 2 1.87945

因为|x3?x2|?0.00006?10?4,所以x??x3?1.879。

22f(xk)xk?3xk?exk?2xk?exk(xk?1)?2?xk??xk??f'(xk)2xk?3?exk2xk?3?exk(2)设f(x)?x2?3x?ex?2,则f'(x)?2x?3?ex,牛顿迭代公式:

xk?1k (k?0,1,2,?)<0.001 N Y ,迭代计算过程见下列表。 xk |xk-xk-1| 0.73106 0.01155 <0.0001 N N k 3 4 xk 0.25753 0.25753 |xk-xk-1| 0.00014 0.00000 1 0.26894 2 0.25739

因为|x3?x2|?0.00000?10?4,所以x??x4?0.2575。

32、(p.154,题18)应用牛顿法于方程x?a?0,导出求立方根3a(a?0)的迭代公式,并证明该迭代公式具有二阶收敛性。

【证明】(1)设:f(x)?x3?a,则f'(x)?3x2,对任意x?0,牛顿迭代公式

xk?133f(xk)xk?a2xk?a k?0,1,2,? ?xk??xk??22f'(xk)3xk3xk2x3?a(x?0) (2)由以上迭代公式,有:limxk?x?a。设 g(x)?2k??3x?3g(x?)?x?;g'(x?)?2a2a(1?3)?0;g''(x?)?43xx?3ax?x?a323a。

xk?1?x??g(xk)?g(x?)?g'(x?)(xk?x?)?g''(?)(xk?x?)2 2!xk?1?x?g''(x?)1,可见该迭代公式具有二阶收敛性。<证毕> lim??3k??(x?x?)22!ak