3数值计算方法上机实习题要点

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

上海电力学院数值计算上机报告

课程:现代数值计算

题目:数值计算方法上机实习题报告

院系:自动化工程学院

专业年级:电机与电器

学生姓名:黄丽学号:ys**********

指导教师:***

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

相关文档
最新文档