3数值计算方法上机实习题.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上海电力学院数值计算上机报告
课程:现代数值计算
题目:数值计算方法上机实习题报告
院系:自动化工程学院
专业年级:电机与电器
学生姓名:黄丽学号:ys1310401009
指导教师:黄建雄
2013年12月20日
数值计算方法上机实习题
1.设⎰+=1
05dx x x I n
n , (1) 由递推公式n
I I n n 151+
-=-,从0I 的几个近似值出发,计算20I ; (2) 粗糙估计20I ,用n
I I n n 51511+-=-,计算0I ; (3) 分析结果的可靠性及产生此现象的原因(重点分析原因)。 程序:
(1)由递推公式n
I I n n 151+-=-,从0I 的几个近似值出发,计算20I ; I(0) =0.1820;I(1)= 0.0900;I(2)= 0.0500;I(3)= 0.0833;I(4)= -0.1667;
I=0.182;
for n=1:20
I=(-5)*I+1/n;
end
故计算结果20I = -3.0666e+10
(2)粗糙估计20I ,用n I I n n 51511+-
=-,计算0I ; 0095.05
6 0079.010********
≈<<≈⎰⎰dx x I dx x I=0.008;
for n=20:-1:1
I=(-1/5)*I+1/(5*n);
end
I
0I = 0.1823
(3)分析结果的可靠性及产生此现象的原因(重点分析原因)。
假设n S 的真值为*n S ,误差为n ε,即
n n n S S -=*ε。对于真值也有n S S n n 151**=-+。综合2个递推等式,有15--=n n εε,即意味着只要n 足够大,按照这种每计算一步误差增长5倍的方式,所得的结果总是不可信的,因此整个算法是数值不稳定的。而第二种方式的误差会以每计算一步缩小到1/5的方式进行,这样的计算结果和实际是很相近的。
2.求方程0210=-+x e x 的近似根,要求41105-+⨯<-k k x x ,并比较计算量。
(1) 在[0,1]上用二分法;
(2) 取初值00=x ,并用迭代10
21
x k e x -=+; (3) 加速迭代的结果; (4) 取初值00=x ,并用牛顿迭代法;
(5) 分析绝对误差。
(1)在[0,1]上用二分法;
程序: a=0;b=1.0;i=0;
while abs(b-a)>5*1e-4
c=(b+a)/2;
if exp(c)+10*c-2>0
b=c;
else a=c;
end
i=i+1;
end
c
方程的近似根为:x*=(a+b )/2 = 0.0906 。步长为i =11 。
(2)取初值00=x ,并用迭代10
21x k e x -=+; 程序: x=0;y=0.1;i=0;
while abs(y-x)>5*1e-4
y=x;
x=(2-exp(x))/10;
i=i+1;
end
方程的近似根为:x=0.0905 。步长为i=4 。
(3)加速迭代的结果;
程序:x=0;xx=1;i=0;
while abs(xx-x)>5*1e-4
y=exp(x)+10*x-2;
z=exp(y)+10*y-2;
xx=x;
x=x-(y-x)^2/(z-2*y+x);
i=i+1;
end
x
方程的近似根为:x= 0.0995。步长为i=3 。
(4)取初值00=x ,并用牛顿迭代法;
程序:x=0;y=0.1;i=0;
while abs(y-x)>5*1e-4
y=x;
x=x-(exp(x)+10*x-2)/(exp(x) + 10);%diff(exp(x)+10*x-2)=exp(x) + 10
i=i+1;
end
x
i
方程的近似根为:x= 0.0905。步长为i=2 。
(6) 分析绝对误差。
solve('exp(x)+10*x-2=0')
方程的精确解为x= 0.0905。
3.钢水包使用次数多以后,钢包的容积增大,数据如下:
(注:增速减少,用何种模型)
解:(1)设y=f(x)具有指数形式
x
b ae y =(a>0,b<0)。对此式两边取对数,得x b a y 1
ln ln +=。 记A=lna ,B=b
x=[2 3 4 5 6 7 8 9 10 11 12 13 14 15 16];
for i=1:15
X(i)=1/x(i);
end
y=[6.42 8.2 9.58 9.5 9.7 10 9.93 9.99 10.49 10.59 10.60 10.8 10.6 10.9 10.76];
for i=1:15
Y(i)=log(y(i));
end
polyfit(X,Y,1)
经计算ans = -1.1107 2.4578。
故方程为⎪⎪⎩
⎪⎪⎨⎧-====+-=1107.14578.2ln 4578.211107.1ln b B a A a x y 故原方程的系数为
故原方程为:x e y 1107
.16791.11-=
(2)计算均方差:
x=[2:16]; y=[6.42 8.2 9.58 9.5 9.7 10 9.93 9.99 10.49 10.59 10.60 10.8 10.6 10.9 10.76];
f(x)=11.6791*exp( -1.1107./x);
c=0;
for i=1:15
a=y(i);
b=x(i);
c=c+(a-f(b))^2;
end
averge=c/15
结果:averge =0.0594
4.设⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝
⎛----------------=410100141010014101101410010141001014A ,⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛--=625250b ,b x =A 分析下列迭代法的收敛性,并求42110-+≤-k k x x 的近似解及相应的迭代次数。
(1) JACOBI 迭代;
以文件名math4a.m 保存。
function math4a
A=[4 -1 0 -1 0 0;-1 4 -1 0 -1 0;0 -1 4 -1 0 -1;-1 0 -1 4 -1 0;0 -1 0 -1 4 -1;0 0 -1 0 -1 4];
b=[0 5 -2 5 -2 6];
x0=[0 0 0 0 0 0];
imax=100;
tol=10^-4;
tx=jacobi(A,b,imax,x0,tol);
for j=1:size(tx,1)
fprintf('%d %f %f %f %f %f %f\n',j,tx(j,1),tx(j,2),tx(j,3),tx(j,4