数值分析例题 下载本文

内容发布更新时间 : 2024/12/23 20:02:49星期一 下面是文章的全部内容请认真阅读。

f(x)?x4时左右两端不等,故所给求积公式仅有三阶精度。

练习2:判别下列求积公式是否是插值型的,并指明其代数精度:

?303f(x)dx??f(1)?f(2)?

2l(x),l1(x)直接求积知

3解 这里关于拉格朗日插值基函数03?0l0(x)dx??0l1(x)dx?2

3因此所给求积公式是插值型的。

按定理1,含有2个节点的求积公式至少有1阶精度。再考察左端?9,而右端?f(x)?x2,原式

3(1?4),左右两端不相等。因此所给求积公式仅有1阶精度。 24dx?01?x21例 取9个等距节点(包括区间端点)分别用复化梯形公式和复化辛甫生公式求积分的近似值(取6位小数) 解:易知h?xk 0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1.0 对复化梯形公式

1?0.125 列表如下 8fk 4 3.938426 3.764706 3.506849 3.200000 2.876405 2.560000 2.265487 2 复化梯形公式组合系数 1 2 2 2 2 2 2 2 1 复化辛甫生公式组合系数 1 4 2 4 2 4 2 4 1 ?1?f0?2(f1?f2??f7)?f8?50.223818

4dxh??01?x22?1?3.138989

1对复化辛甫生公式

?2?f0?4f1?2f2?4f3?2f4?4f5?2f6?4f7?f8?75.389224

4dx2h???3.141593?01?x2621

练习 利用n=5的复化辛甫生公式计算积分I?dx?01?x的近似值.

1分析:n=5,需要2×5+1=11个点的函数值,h=(1-0)/5=1/5, 然后计算。

解: 区间长度为b-a=1, n=5,h=1/5=0.2

所需节点xk=0+kh (k=0,1,…,5),在每个小区间[xk-1, xk]中还要计算

1x1k?1?2?xk?1?h ( k?1,2,?5 )2n?1n?1hSn?[f(a)?f(b)?2?f(xk)?4?f(x1)]k?6k?1k?02? S5?1111111??[?2?(???)?651?01?0.21?0.41?0.61?0.8111111 4?(????)?]?0.693151?0.11?0.31?0.51?0.71?0.91?1

例. 依次利用n=8的复化梯形公式和n=4时的复化辛甫生公式计算定积分

I??sinxdx,已知函数f(x)?sinx 的数据如下表 0xx1k 0 1 2 3 4 解 : axk 0 1/8 1/4 3/8 1/2 f(xk) 1.000 000 0 0.997 397 8 0.989 615 8 0.976 726 7 0.958 851 0 k 5 6 7 8 xk 5/8 3/4 7/8 1 f(xk) 0.936 155 6 0.908 851 6 0.877 192 5 0.841 470 9 ?bn?1hf(x)dx?Tn?[f(a)?f(b)?2?f(xk)]

2k?1n?11?T8?[f(0)?f(1)?2?f(xk)]16 k?1?0.9456909?ban?1n?1hf(x)dx?Sn?[f(a)?f(b)?4?f(x1)?2?f(xk)]k?6k?0k?12331[f(0)?f(1)?4?f(x1)?2?f(xk)] ∴ S4?k?24k?0k?12331S4?[f(0)?f(1)?4?f(x1)?2?f(xk)]k?24k?0k?0211357[f(0)?f(1)?4[f()?f()?f()?f()]? 248888123 ? 2[f()?f()?f()] ]444?0.9460832?小结:判断一种算法的优劣,计算量是一个重要的因素。由于在求f(x)的函数值时,通常要做许多加减乘除四则运算,因此在统计求积公式数值f(x)的次数

用复化求积法。取n?8用梯形公式(18)求得

?Akkf(xk)的计算时只要统计求函

T8?0.9456909

再取n?4用复化公式辛甫生公式(19),又得S4?0.9460832

比较上面两个结果,它们都要提供9个点的函数值,工作量基本相同,然而精度却差别很大,同积分的准确值0.9460831比较,复化梯形方法的结果T8有两位有效数字,而复化辛甫生公式的结果S4却有六位有效数字。

复化辛甫生公式是一种常用的数值求积方法。为了便于编写程序,可将求积公式(19)事先改写成下列形式

n?1???h???Sn??f(b)?f(a)???4f(x1)?2f(xk)??

k?6?k?0?2????例. 用变步长梯形公式计算定积分I?sinx?0xdx .

1解:我们先对整个区间[0,1]使用梯形公式.对于函数f(x)?sinx,有xf(0)?1,而

f(1)?0.8414709,据梯形公式计算得:T1?1?0[f(0)?f(1)]?0.9207355

2然后再计算中点的函数值f()?0.9588510,从而据

121hn?1T2n?Tn??f(x1) 有T2?1T1?1f(1)?0.9397933 .以此类推

k?22k?022221113T4?T2?[f()?f()]?0.9445135 …

2444这样不断二分下去,二分10次可以得到比较精确的值0.9460381. 练习:用变步长梯形公式计算积分I?解:设f(x)?2dx?2?01?x2,要求Tk?1?Tk?0.5?10

12,应用变步长梯形公式有 21?x1?0122[f(0)?f(1)]?(?)?1.522221?01?11112T2?T1?f(0.5)?(1.5?)?1.5522221?0.5111122T4?T2?[f(0.25)?f(0.75)]?[1.55?(?)]?1.565622 24221?0.251?0.75111357T8?T4?[f()?f()?f()?f()]288888112222?[1.5656?(???)]2222241?0.1251?0.3751?0.6251?0.875?1.5695T1?∵T8?T4?0.0039?0.5?10 ∴取I?2?1.5695

例6.1 用中心差商数值微分公式计算函数解:f?(x)? h 0.001 0.005 0.3500 0.01 0.3500 f(x)?x在x=2处的一阶导数 2?h?2?h2h0.5 0.3564 1 0.3660 f(x?h)?f(x?h),当x=2时,有 f'(2)?2h0.05 0.3530 0.1 f?(x) 0.3500 0.3535 第三章

例1 求解初值问题

取步长h

2x??y?y??y??y(0)?1?(0?x?1)

解 为便于进行比较,本章将多种差分方法求解上述初值问题。这里先用欧拉方法。求解方程(3-8)的欧拉格式具有形式

?2x?n?yn?1?yn?h?y?n??yn???0.1,计算结果见下表。

xn 0.1 0.2 0.3 0.4 0.5 yn 1.1000 1.1918 1.2774 1.3582 1.4351 y(xn) 1.0954 1.1832 1.2649 1.3416 1.4142 xn 0.6 0.7 0.8 0.9 1.0 yn 1.5090 1.5803 1.6498 1.7178 1.7848 y(xn) 1.4832 1.5492 1.6125 1.6733 1.7321 例2 用欧拉方法计算初值问题

?y??x2?100y2?的解函数y(x)在x = 0.3时的近似值。(取步长h=0.1,小数点y(0)?0?后至少保留4位) 解:欧拉格式为:

2222yn?1?yn?h(xn?100yn)?yn?0.1?(xn?100yn)由

y(0)?0 ?

y(0.1)?y1?0.0000

y(0.2)?y2?0.1?0.12?0.0010y(0.3)?y3?y2?0.1?(0.22?100?0.00102)?0.0050

?y??8?3y , (1?x?2)练习:用梯形格式求解初值问题?,取步长h=0.2,小数

y(1)?2?点后至少保留五位

解:梯形格式为

hyn?1?yn?[f(xn,yn)?f(xn?1,yn?1)],于是

2