数值分析实验2014

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

数值分析实验(2014,9,16~10,28)

信计1201班,人数34人

数学系机房

数值分析

计算实习报告册

专业

学号

姓名

2014~2015年第一学期

实验一 数值计算的工具 Matlab

1.解释下MATLAB 程序的输出结果 程序: t=0.1 n=1:10 e=n/10-n*t

e 的结果:0 0 -5.5511e-017 0 0 -1.1102e-016 -1.1102e-016 0 0 0 2.下面MATLAB 程序的的功能是什么? 程序:

x=1;while 1+x>1,x=x/2,pause(0.02),end 用迭代法求出x=x/2,的最小值

x=1;while x+x>x,x=2*x,pause(0.02),end 用迭代法求出x=2*x,的值,使得2x>X x=1;while x+x>x,x=x/2,pause(0.02),end 用迭代法求出x=x/2,的最小值,使得2x>X

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

02=++c bx ax

公式a ac

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

c b b c x 422-+-=,对于

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

应该用a

ac

b b x 242-+-=计算,因为b 做分母

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 t1=cputime; pause(10); t2=cputime; t0=t2-t1

(a)解释上述程序的终止准则。 当s+t=s ,终止循环。

(b)对于2/21,2/11

,2/πππ=x 计算的进度是多少?分别计算多少项? X=pi/2时,s =1.0000 x=11pi/2时,s=-1.0000 x=21pi/2时,s =0.9999 Cputime 分别是0.1563 0.0469 0.0156

5.考虑调和级数∑∞

=11

n n

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

分和,会得到怎么样的结果,为什么?

function s=fun(n) s=0; t=1/n;

for i=1:n s=s+1/i; end

当n=100时s =5.1874 当n=80时s =4.9655 当n=50时,s =4.4992 当n=10时,s =2.9290

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

3!213

2++++=x x x e x

,如果对于0

似计算指数函数的值,这样的算法结果是否会好,为什么?

function s=powerexp(x) s=1; n=1; t=1;

while s+t~=s;

t=(x^n)/factorial(n); s=s+t; n=n+1; end

当x=-1时,s =0.3679 当x=-2时,s =0.1353 当x=-3时,s =0.0498

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 σ作为标准差的两种算法,你将如何评价他们的得与失。

clc,clear x=randn(1,10000); n=length(x); a=sum(x)/n;

y1=sqrt(sum((x-a).^2)/(n-1)); y2=sqrt((sum(x.^2)-n*a^2)/(n-1)); y1,y2 后面的公式更好

改变m 的值求出不同个数x 标准差 ,没有好大差别

实验二 插值法计算实习题

1.已知函数在下列个点的值为

试用4次插值多项式(x)p 4及三次样条插值S(x)(自然边界条件)对数据进行插值。用图给出0,1,11,10}i 0.08i,0.2x ),y ,{(x i i i =+=,(x)p 4及S(x)。 function f=lagfun(x) a=[0.2,0.4,0.6,0.8,1.0];

b=[0.98,0.92,0.81,0.64,0.38]; for i=1:5 L(i)=1; for j=1:5 if j~=i

L(i)=L(i)*(x-a(j))/(a(i)-a(j)); end end end f=0;

for i=1:5

f=f+L(i)*b(i); end

执行文件

x0=[0.2,0.4,0.6,0.8,1.0];

y0=[0.98,0.92,0.81,0.64,0.38]; plot(x0,y0,'o') hold on grid on

fplot('lagfun',[0,1]);hold on x=0:0.1:1;

plot(x,newton(x0,y0,x),'r');

三次样条插值:

x=[0.2,0.4,0.6,0.8,1.0];

y=[0.98,0.92,0.81,0.64,0.38]; x1=0.2:0.08:1;

y1=interp1(x,y,x1,'spline') plot(x1,y1)

相关文档
最新文档