0.1算法
1、 (p.11,题1)用二分法求方程x3?x?1?0在[1,2]内的近似根,要求误差不
超过10-3.
【解】 由二分法的误差估计式|x*?xk|?2k?1b?a2k?1?12k?1???10?3,得到
?1000.两端取自然对数得k?3ln10ln2?1?8.96,因此取k?9,即至少需
二分9次.求解过程见下表。 k ak bk xk f(xk)符号 0 1 2 3 4 5 6 7 8 9 1 2 1.5 + 2、(p.11,题2) 证明方程f(x)?ex?10x?2在区间[0,1]内有唯一个实根;使用二分法求这一实根,要求误差不超过?10?2。
21【解】 由于f(x)?e?10x?2,则f(x)在区间[0,1]上连续,且
01f(0)?e?10?0?2??1?0,f(1)?e?10?1?2?e?8?0,即f(0)?f(1)?0,由连续函数的介值定理知,f(x)在区间[0,1]上至少有一个零点.
x又f'(x)?ex?10?0,即f(x)在区间[0,1]上是单调的,故f(x)在区间[0,1]内有唯一实根.
由二分法的误差估计式|x*?xk|?两端取自然对数得k?2ln10ln2b?a2k?1?12k?1???12?10?2,得到2k?100.
?2?3.3219?6.6438,因此取k?7,即至少需二分
7次.求解过程见下表。 k ak bk xk f(xk)符号 0 1
0 1 0.5
2 3 4 5 6 7 0.2误差
1.(p.12,题8)已知e=2.71828…,试问其近似值x1?2.7,x2?2.71,x2=2.71,x3?2.718各有几位有效数字?并给出它们的相对误差限。
【解】有效数字:
因为|e?x1|?0.01828??0.05?因为|e?x2|?0.00828??0.05?1212?10?1012?1,所以x1?2.7有两位有效数字; ,所以x2?2.71亦有两位有效数字;
?3?1因为|e?x3|?0.00028??0.0005??10,所以x3?2.718有四位有效数字;
?r1?|e?x1|x1|e?x2|x2|e?x3|x3?0.052.70.052.71?1.85%;
?r2???1.85%;
?r3??0.00052.718?0.0184%。
评 (1)经四舍五入得到的近似数,其所有数字均为有效数字;
(2)近似数的所有数字并非都是有效数字.
2.(p.12,题9)设x1?2.72,x2?2.71828,x3?0.0718均为经过四舍五入得出的近似值,试指明它们的绝对误差(限)与相对误差(限)。
【解】 ?1?0.005,?r1??1x1?0.0052.72?1.84?10?3;
?2?0.000005,?r2??2x2??0.0000052.71828?1.84?10?6;
?3?0.00005,?r3??3x30.000050.0718?6.96?10?4;
评 经四舍五入得到的近似数,其绝对误差限为其末位数字所在位的半个单位.
3.(p.12,题10)已知x1?1.42,x2??0.0184,x3?184?10?4的绝对误差限均为
0.5?10?2,问它们各有几位有效数字?
【解】 由绝对误差限均为0.5?10?2知有效数字应从小数点后两位算起,故x1?1.42,有
三位;x2??0.0184有一位;而x3?184?10?4?0.0184,也是有一位。
1.1泰勒插值和拉格朗日插值
1、(p.54,习题1)求作f(x)?sinx在节点x0?0的5次泰勒插值多项式p5(x),并计算
p5(0.3367)和估计插值误差,最后将p5(0.5)有效数值与精确解进行比较。
【解】由f(x)?sinx,求得ff(4)(1)(x)?cosx;f(6)(2)(x)??sinx;f(3)(x)??cosx;
(5)(x)?sinx;f(5)(x)?cosx;f(1)(x)??sinx,所以
p5(x) ?f(x0)?f
?f(0)?f?x?13!3(x0)(x?x0)?f(2)f(2)(x0)2!x???2(x?x0)???f(5)2f(x0)5!(x?x0)
5(1)(0)x?15!x
5(0)(0)2!5!x
5x?(6)插值误差:R5(x)?|f(?)|6!(x?x0)?0.33673!36|sin(?)|6!0.33675!?65(x?x0)?616!6x,若x?0.5,则
p5(0.3367)?0.3367???0.3303742887?5,而
6!故取p5(0.3367)?0.33037,与精确值f(0.3367)?sin(0.3367)?0.330374191?相比
R5(0.3367)?0.33676?2.02?10?0.5?10,精度到小数点后5位,
较,在插值误差的精度内完全吻合!
2、(p.55,题12)给定节点x0??1,x1?1,x2?3,x3?4,试分别对下列函数导出拉格朗日余项:
(1)f(x)?4x?3x?2; (2)f(x)?x?2x
f(4)433【解】依题意,n?3,拉格朗日余项公式为 R3(x)?(1)f(4)(?)34!?(x?xi?0i)
(x)?0 → R3(x)?0;
(2)因为f(4)(x)?4!,所以
(4)R3(x)?f(?)4!(x?1)(x?1)(x?3)(x?4)?(x?1)(x?1)(x?3)(x?4)
3、(p.55,题13)依据下列数据表,试用线性插值和抛物线插值分别计算sin(0.3367)的近似值并估计误差。
i 0 0.32 0.314567 1 0.34 0.333487 (4)2 0.36 0.352274 3xi sin(xi)
【解】依题意,n?3,拉格朗日余项公式为 R3(x)?(1) 线性插值
因为x?0.3367在节点x0和x1之间,先估计误差
f''(?)2!0.0122f(?)4!?(x?xi?0i)
R1(x)?(x?x0)(x?x1)?sin(?)2(x?x0)(x1?x)?max(x?x0)(x1?x)2
??12?10;须保留到小数点后4为,计算过程多余两位。
4y(x1-x0)2/4y=(x-x0)(x-x1)0P1(x) ?x?x1x0?x110.0210.02x0sin(x1)?x11x1?x0x
sin(x0)?x?x0x1?x0?(x?x0)sin(x1)?(x1?x)sin(x0)?
P1(x) ??(0.3367?0.0167?0.32)sin(0.34)?(0.34?0.3367)sin(0.32)? ?sin(0.34)?0.0033?sin(0.32)?
?
?0.3304
(2) 抛物线插值 插值误差:
?R2(x)
f'''(?)3!(x?x0)(x?x1)(x?x2)??cos(?)63(x?x0)(x1?x)(x?x2)
?max(x?x0)(x1?x)(x2?x)6?3?0.016?12?10?6
yy=(x-x0)(x-x1)(x-x2)Max=3(x1-x0)3/80抛物线插值公式为: P2(x)
(x?x1)(x?x2)(x0?x1)(x0?x2)10.022x0x1x2x
?sin(x0)?(x?x0)(x?x2)(x1?x0)(x1?x2)sin(x1)?(x?x1)(x?x0)(x2?x1)(x2?x0)sin(x2)
?(x1?x)(x?x0)?(x1?x)(x2?x)?sin(x)?(x?x)(x?x)sin(x)?sin(x)00212??22??P2(0.3367) 10?52?0.0210?5?3.8445?3.8445?sin(0.32)?38.911?sin(0.34)?2.7555?sin(0.36)?
?0.022?sin(0.32)?38.911?sin(0.34)?2.7555?sin(0.36)? ?0.33037439?
经四舍五入后得:P2(0.3367)?0.330374,与sin(0.3367)?0.330374191较,在插值误差范围内完全吻合!
?精确值相比
1.3分段插值与样条函数
?x3?x21、(p.56,习题33)设分段多项式 S(x)??32?2x?bx?cx?10?x?11?x?2