1、1计算方法习题课软件学院 韩臻email: tel: (010)51688789(O)(2006 年 12 月)范例 1:一、题目:用公式 求方程 x2 56x + 1 = 0 的)2/(4(2acbx两个根,问要使它们具有四位有效数字, 至少要取几acb4位有效数字?如果利用韦达定理,又该取多少位有效数字呢?二、解答:用方法(1): x = ( - b )/(2a) 求解 4 位有效数字的 x+ ,只需 2 位有效数字的 即可;但求解 4 位有效数字的 x - ,需要 7 位有效数字的 。 用方法(2): x+= ( - b + )/(2a) , x -= c/(a x+)求解 4 位有效数
2、字的 x+ 和 x 都只需 2 位有效数字的 即可。三、证明:计算可得 sqrt(56 2-4)=55.964274319设 * 是 的具有 k 位有效数字的近似值,则 2,一般地 bk 是不大于 5、不小于 0.05 的正数,在kb10|*这里 bk0disp(ya*yb0);return;end8while b-aepsj=j+1;x=0.5*(a+b);y=x*x-56*x+1;if y*ya = 0a=x;ya=y;endif y*yb = 0b=x;yb=y;endendf=0.5*(a+b);return;3、 结果在 Matlab5.0 环境下,在命令窗口中运行程序 p9_7.m
3、p9_7输出具有 10 位有效数字的 Delta、X1 和 X2:Delta=5.5964274319e+001x1=5.5982137159e+001 x2=1.7862840734e-002输入 Delta 的 1 位有效数字近似值 delta=609delta=6.0000000000e+001方法(1)的结果:x1=5.8000000000e+001 x2=-2.0000000000e+000原结果:X1=5.5982137159e+001 X2=1.7862840734e-002相对误差:e1=3.6044762546e-002 e2=1.1296427432e+002方法(2)的结
4、果:x1=5.8000000000e+001 x2=1.7241379310e-002相对误差:e1=3.6044762546e-002 e2=3.4790738633e-002是否结束试验? N输入 Delta 的 2 位有效数字近似值 delta=56delta=5.6000000000e+001方法(1)的结果:x1=5.6000000000e+001 x2=0.0000000000e+000原结果:X1=5.5982137159e+001 X2=1.7862840734e-002相对误差:e1=3.1908107907e-004 e2=1.0000000000e+000方法(2)的结果
5、:x1=5.6000000000e+001 x2=1.7857142857e-002相对误差:e1=3.1908107907e-004 e2=3.1897929881e-00410是否结束试验? n输入 Delta 的 3 位有效数字近似值 delta=56.0delta=5.6000000000e+001方法(1)的结果:x1=5.6000000000e+001 x2=0.0000000000e+000原结果:X1=5.5982137159e+001 X2=1.7862840734e-002相对误差:e1=3.1908107907e-004 e2=1.0000000000e+000方法(2)
6、的结果:x1=5.6000000000e+001 x2=1.7857142857e-002相对误差:e1=3.1908107907e-004 e2=3.1897929881e-004是否结束试验? n输入 Delta 的 4 位有效数字近似值 delta=55.96delta=5.5960000000e+001方法(1)的结果:x1=5.5980000000e+001 x2=2.0000000000e-002原结果:X1=5.5982137159e+001 X2=1.7862840734e-002相对误差:e1=3.8175735599e-005 e2=1.1964274319e-001方法(2)的结果:x1=5.5980000000e+001 x2=1.7863522687e-002