数值分析第一次作业解答
1:
(a)一个问题的病态性如何,与求解它的算法有关系。
×;
(b)无论问题是否病态,好的算法都会得到它好的近似解。
×;
(c)计算中使用更高的精度,可以改善问题的病态性。
×;
(d)用一个稳定的算法计算一个良态问题,一定会得到他好的近似解。
√;
(e)浮点数在整个数轴上是均匀分布。
×;
(f)浮点数的加法满足结合律。
×
(g)浮点数的加法满足交换律。
×;
(h)浮点数构成有效集合。
√;
(i)用一个收敛的算法计算一个良态问题,一定得到它好的近似解。
√2:程序
t=0.1;
n=1:10;
e=n/10-n*t
e = 1.0e-015 *[ 0 0 -0.0555 0 0 -0.1110 -0.1110 0 0 0]
由舍人误差造成n=3,6,7时的结果不为零。
4:两种等价的一元二次方程求解公式
22b x a c x -±=
=
对a=1,b=-100000000,c=1,应采用哪种算法?
A=[1,-100000000,1];
roots(A);
可得: X1=100000000;x2=0
a=1;b=-100000000;c=1;
x11=(-b-sqrt(b*b-4*a*c))/(2*a) x12=(-b+sqrt(b*b-4*a*c))/(2*a) x21=2*c/(-b-sqrt(b*b-4*a*c)) x22=2*c/(-b+sqrt(b*b-4*a*c))
由第一种算法:
X1=100000000;x2=7.45058×910- 由第二种算法:
X1=13417728;x2=-1.0×810 原因:太小的数作分母。
5:程序:
function y=tt(x)
s=0;
t=x;
n=1;
while s+t~=s;
s=s+t;
t=-x^2/((n+1)*(n+2))*t n=n+2;
end
n
t
(a)t小于计算机的计算精度。
(
(21)
(21)!
n
t
eps
n
+
≤
+)
(b)x=/2
π; n=23
x=11/2
π; n=75
x =21/2
π; n=121
7:
function y=tt1(x) s=0;
t=1;
n=1;
while s+t~=s; s=s+t; t=x/n*t; n=n+1; end
n
s
计算结果:
X=-100;
258.144710x e =⨯ X=-50;
32.041810x e =⨯。