数值分析实验

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

《数值分析》计算实习报告册

专业信息与计算科学学号********

姓名张妃___

2012~2013年第一学期

实验一数值计算的工具Matlab

1.解释下MATLAB程序的输出结果

程序:

t=0.1

n=1:10

e=n/10-n*t

答案:

t = 0.1000 小数点后输出四位

n = 1 2 3 4 5 6 7 8 9 10 n取1到10

e =1.0e-015 *

0 0 -0.0555 0 0 -0.1110 -0.1110 0 0 0

e等于-0.0555×15

10

2.下面MATLAB程序的的功能是什么?

程序:

x=1;while 1+x>1,x=x/2,pause(0.02),end

x=1;while x+x>x,x=2*x,pause(0.02),end

x=1;while x+x>x,x=x/2,pause(0.02),end

答案:

当x=1时,对x无限二分,到1+x>1结束,且循环之间间隔0.02秒

当x=1时,对x

2无限循环,到x+x>x结束,且循环之间间隔0.02秒

当x=1时,对x无限二分,到x+x>x结束,且循环之间间隔0.02秒

3.考虑下面二次代数方程的求解问题

02=++c bx ax

公式a ac

b b x 242-+-=是熟知的,与之等价地有ac

b b

c x 422

-+-=,对于

1,100000000,1===c b a ,应当如何选择算法。

答案: clc,clear a=1;

b=100000000; c=1;

x1=(-b+sqrt(b*b-4*a*c))/2*a x2=(-b+sqrt(b*b-4*a*c))/2*a x3=2*c/(-b+sqrt(b*b-4*a*c)) x4=2*c/(-b+sqrt(b*b-4*a*c)) d=x1*x1+100000000*x1+1 e=x2*x2+100000000*x2+1 f=x3*x3+100000000*x3+1 g=x4*x4+100000000*x4+1

x1 =-7.4506e-009=-7.4506×910 x2 = -7.4506e-009 x3 =-134217728 x4 = -134217728 d =0.25494194030762 e =0.25494194030762 f = 4.592625709481985e+015 g = 4.592625709481985e+015

因为d ,e 比f ,g 更接近0所以公式a ac

b b x 242-+-=更好。

4.函数)sin(x 有幂级数展开...!

7!5!3sin 7

53+-+-=x x x x x

利用幂级数计算x sin 的MATLAB 程序为 function s=powersin(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 修改后程序

function s=powersin(x) s=0; x=pi/2; t=x; k=0; n=1; while s+t~=s; s=s+t;

t=-x^2/((n+1)*(n+2))*t; n=n+2; k=k+1; end K

结果 X=21*pi/2 k =60 ans = 0.9999 X=11*pi/2 k = 37 ans = -1.0000 X=pi/2 k =11 ans = 1.0000

(a)解释上述程序的终止准则。 t=0时,终止

(b)对于2/21,2/11,2/πππ=x 计算的进度是多少?分别计算多少项? ans =1.0000 ans =-1.0000 ans = 0.9999 11,37,60

5.考虑调和级数∑∞

=11

n n ,它是微积分中的发散级数,在计算机上计算该级数的部分

和,会得到怎么样的结果,为什么? clc;clear s=0; n=20;

for i=n-1:n+10000000000 t=1/i; s=s+t; end S 结果 s = 18.5697

for i=n-1:n+100000 s = 8.5952

for i=n-1:n+10000000000000 s = 18.5697

S 会随着i 的项数的增大而增大,到一定程度后不变。因为在计算机中如果一个数很小,计算机会默认为0.

6.指数函数的级数展开...!

3!213

2++++=x x x e x

,如果对于0

似计算指数函数的值,这样的算法结果是否会好,为什么? 1.clc,clear s=1; t=1; x=-1; for i=1:100000 t=t*i; tt=x^i/t; s=s+tt; end s

X=1;s=2.7183 x=-1; s= 0.3679 2.function s=powersin(x) s=0; m=1; t=1; n=1; while s+t~=s; s=s+t; m=m*n; t=-x^(n)/m; n=n+2;

x=0,f=1;x=1,y= -0.4107;x=-1,f=2,4107

7.考虑数列n i x i ,...2,1,=,它的统计平均定义为

∑==n

i i x n x 1

1,

标准差2

121)(11⎥⎦⎤⎢⎣⎡--=∑=x x n n i i σ数学上等价于2

122

1)(11⎥⎥⎦

⎤⎢⎢⎣⎡--=∑=x n x n n i i σ作为标准差的两种算法,你将如何评价他们的得与失。 1. clc,clear

a=input('请输入数据') n=length(a); sm=sum(a); ave=sm/n; b1=0; for i=1:n

b1=(a(i)-ave)^2+b1; end b1

b2=((1/(n-1))*b1)^(1/2) 结果 b1=133.9368 b2=11.5731 2.clc,clear

a=input('请输入数据') n=length(a); sm=sum(a); ave=sm/n;

相关文档
最新文档