数值分析实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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;