A1??10x?x0?dx??0x1?x0x?1111124?dx?2?(x?x)?1;
312402?441113f()?f() 2424插值求积公式:
?
10f(x)dx??Akf(xk)?k?0n①当f(x)?1,左边=
?1011f(x)dx?1;右边=?1??1?1;左=右;
22
②当f(x)?x,左边=
?101f(x)dx?x221?01111311;右边=????;左=右;
242422
③当f(x)?x2,左边=
?101119511???;右边=?左≠右; f(x)dx?x3?;
21621616303故该插值求积公式具有一次代数精度。
2.2 梯形公式和Simpson公式
1、(p.95,习题9)设已给出f(x)?1?e?xsin4x的数据表,
x f(x) 0.00 1.000 00 0.25 1.655 34 10.50 1.551 52 0.75 1.066 66 1.00 0.721 59 分别用复化梯形法与复化辛普生法求积分I?【解】 (1)用复化梯形法:
?0f(x)?dx的近似值。
b?a1??0.25n4n?1n?1hhT5??[f(xk)?f(xk?1)]?[f(a)?2?f(xk)?f(b)]2k?02k?10.25T5??{f(0.00)?2?[f(0.25)?f(0.50)?f(0.75)]?f(1.00)}
2T5?0.125?[1.00000?2?(1.65534?1.55152?1.06666)?0.72159]a?0,b?1,n?5,h?T5?1.28358
(2)用复化辛普生法:
a?0,b?1,n?2,h?n?1b?a1??0.5n2n?1n?1hhS2??[f(xk)?4f(x1)?f(xk?1)]?[f(a)?4?f(x1)?2?f(xk)?f(b)]k?k?6k?06k?0k?1220.5?{f(0.00)?4?[f(0.25)?f(0.75)]?2?f(0.50)?f(1.00)}61S2??[1.00000?10.888?3.10304?0.72159]?1.3093912S2?
2、(p.95,习题10)设用复化梯形法计算积分I?1x?10?5,,为使截断误差不超过edx?021问应当划分区间【0,1】为多少等分?如果改用复化辛普生法呢?
【解】(1)用复化梯形法, a?0,b?1,f(x)?f'(x)?f''(x)?ex,设需划分n等分,则其截断误差表达式为:
(b?a)3(1?0)3|RT|?|I?Tn|?maxf''(?)?e; 2312n12n依题意,要求|RT|?1?10?5,即 2e1e?105?52??10?n??212.849,可取n?213。 22612n(2)用复化辛普生法, a?0,b?1,f(x)?f'(x)?f''''(x)?ex,截断误差表达式为:
(b?a)5(1?0)5e; |RS|?|I?Sn|?maxf''''(?)?e?444180(2n)2880n2880n依题意,要求|RS|?1?10?5,即 2e1e?105?54??10?n??3.70666,可取n?4,划分8等分。
14402880n42
2.3 数值微分
1、(p.96,习题24)导出三点公式(51)、(52)和(53)的余项表达式
1[?3f(x0)?4f(x1)?f(x2)]2h1f'(x1)?[?f(x0)?f(x2)]2h1f'(x2)?[f(x0)?4f(x1)?3f(x2)]2hf'(x0)?(51)(52)(53)
【解】如果只求节点上的导数值,利用插值型求导公式得到的余项表达式为
f(n?1)(?k)nR(xk)?f'(xk)?p'(xk)???(xk?xj)
(n?1)!j?0j?k由三点公式(51)、(52)和(53)可知,n?2,h?x1?x0?x2?x1,则
f(2?1)(?0)2f'''(?0)f'''(?0)2R(x0)???(x0?xj)?(x0?x1)(x0?x2)?h
(2?1)!3!3j?1
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,并比较计算结果。