数值分析matlab数值试验_第1页
数值分析matlab数值试验_第2页
数值分析matlab数值试验_第3页
数值分析matlab数值试验_第4页
数值分析matlab数值试验_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验一:误差传播及算法稳定性实验1.2 1、试验程序:function charpt1_2% 误差传播及算法稳定性实验 clc;clear all;promps='请选择递推关系式,若选E1=1/e,En=1-nEn-1,请输入1,若选EN=0,En-1=(1-En/n,请输入2:' I=1; while Iresult=inputdlg(promps,'charpt1_2',1,'1' Nb=str2num(char(result; if (Nb=1|(Nb=2 I=0; end end% I=1; while Iresult=inputdlg

2、('请输入递推步数 n>=1:','charpt1_2',1,'10' steps=str2num(char(result;if (steps>0&(steps=fix(steps % 如果steps 大于0且为整数 I=0; end end%result=inputdlg('请输入计算中所采用的有效数字位数n:','charpt1_2',1,'5' Sd=str2num(char(result;format long % 设置显示精度 result=zeros(1,steps;

3、 % 存储计算结果err=result; % 存储计算的绝对误差值 func=result; % 存储用quadl 计算的近似值 % 用quadl 计算积分近似值 for n=1:stepsfun=(x x.n.*exp(x-1; func(n= quadl(fun,0,1; end% % 用自定义算法计算if(Nb=1digits(Sd;result(1=subs(vpa(1/exp(1; for n=2:stepsresult(n=subs(vpa(1-n*result(n-1; enderr=abs(result-func; elseif(Nb=2 digits(Sd;result(st

4、eps=0;for n=(steps-1:-1:1result(n=subs(vpa(1-result(n+1/(n+1; enderr=abs(result-func; end% 输出结果数值及图像 clf;disp('库函数计算值:'disp(sprintf('%e ',func; disp('递推值:'disp(sprintf('%e ',result; disp('误差值:'disp(sprintf('%e ',err; if(Nb=1plot(1:steps,result,'-rs

5、',1:steps,func,':k*',1:steps,err,'-.bo'elseif(Nb=2plot(steps:-1:1,result,'-rs',steps:-1:1,func,':k*',steps:-1:1,err,'-.bo' endxlabel('第n 步' ylabel('计算值'legend('自定义算法结果',' 库函数计算结果',' 误差值' grid on2、试验结果:选择递推关系式1,递推步数为1

6、0,有效数字为5位,计算结果如下: 库函数计算值:3.678794e-001 2.642411e-001 2.072766e-001 1.708934e-001 1.455329e-001 1.268024e-001 1.123836e-001 1.009323e-001 9.161229e-002 8.387707e-002 递推值:3.678800e-001 2.642400e-001 2.072800e-001 1.708800e-001 1.456000e-001 1.264000e-001 1.152000e-001 7.840000e-002 2.944000e-001 -1.94

7、4000e+000误差值:5.588280e-007 1.117662e-006 3.352927e-006 1.341222e-005 6.705713e-005 4.023702e-004 2.816427e-003 2.253226e-002 2.027877e-001 2.027877e+000 12345678910第n 步计算值选择递推关系式2,递推步数为10,有效数字为5位,计算结果如下: 库函数计算值:3.678794e-001 2.642411e-001 2.072766e-001 1.708934e-001 1.455329e-001 1.268024e-001 1.123

8、836e-001 1.009323e-001 9.161229e-002 8.387707e-002 递推值:3.678800e-001 2.642400e-001 2.072800e-001 1.708900e-001 1.455300e-001 1.267900e-001 1.125000e-001 1.000000e-001 1.000000e-001 0.000000e+000 误差值:5.588280e-007 1.117662e-006 3.352927e-006 3.412224e-006 2.942873e-006 1.237016e-005 1.164270e-004 9.3

9、22618e-004 8.387707e-003 8.387707e-002 第n 步计算值选择递推关系式1,递推步数为10,有效数字为6位,计算结果如下: 库函数计算值:3.678794e-001 2.642411e-001 2.072766e-001 1.708934e-001 1.455329e-001 1.268024e-001 1.123836e-001 1.009323e-001 9.161229e-002 8.387707e-002 递推值:3.678790e-001 2.642420e-001 2.072740e-001 1.709040e-001 1.454800e-001

10、1.271200e-001 1.101600e-001 1.187200e-001 -6.848000e-002 1.684800e+000 误差值:4.411720e-007 8.823378e-007 2.647073e-006 1.058778e-005 5.294287e-005 3.176298e-004 2.223573e-003 1.778774e-002 1.600923e-001 1.600923e+00012 345678910第n 步计算值选择递推关系式2,递推步数为10,有效数字为6位,计算结果如下: 库函数计算值:3.678794e-001 2.642411e-001

11、 2.072766e-001 1.708934e-001 1.455329e-001 1.268024e-001 1.123836e-001 1.009323e-001 9.161229e-002 8.387707e-002 递推值:3.678800e-001 2.642410e-001 2.072770e-001 1.708930e-001 1.455360e-001 1.267860e-001 1.125000e-001 1.000000e-001 1.000000e-001 0.000000e+000 误差值:5.588280e-007 1.176622e-007 3.529274e-0

12、07 4.122239e-007 3.057127e-006 1.637016e-005 1.164270e-004 9.322618e-004 8.387707e-003 8.387707e-002 第n 步计算值3、结果分析:很明显第二种递推式结果要比第一种好,式1在第七步后有明显误差,而式2在第三步后基本与近似解一致。而从理论上也可以得到我们也可以得到类似结论。这是由于式1前一步的误差乘以n 后累积到后一步,从而使误差扩散,而式2恰恰相反。有效数字位数影响不是很明显。实验二:多项式差值的震荡现象实验2.1 1、试验程序:function charpt2_1%数值试验二:多项式差值的震荡现

13、象promps='请选择实验函数,若选f(x,请输入f, 若选h(x,请输入h ,若选g(x,请输入g:'result=inputdlg(promps,'charpt2_1',1,'f'Nb_f=char(result;result=inputdlg('请输入插值多项式的次数N>=1:','charpt2_1',1,'10' Nd=str2num(char(result;switch Nb_fcase'f'f=inline('1./(1+25*x.2'a=-1;

14、b=1;case'h'f=inline('x./(1+x.4'a=-5;b=5;case'g'f=inline('atan(x'a=-5;b=5;end% x0=linspace(a,b,Nd+1;y0=feval(f,x0;x=a:0.1:b;y=Lagrange(x0,y0,x;clf;fplot(f,a,b,'co'hold on;plot(x,y,'b-'xlabel('x'ylabel('y=f(x o and y=Ln(x-'% function y=La

15、grange(x0,y0,xn=length(x0;m=length(x;for i=1:mz=x(i;s=0.0;for k=1:np=1.0;for j=1:nif(j=kp=p*(z-x0(j/(x0(k-x0(j;endends=s+p*y0(k;endy(i=s;end2、试验结果:函数f(x:n=2-1-0.8-0.6-0.4-0.20 x y =f (x o a n d y =L n (x -n=3 x y =f (x o a n d y =L n (x - n=4x y =f (x o a n d y =L n (x -n=5 -1-0.8-0.6-0.4-0.20x y =f (x o a n d y =L n (x -n=6 x y =f (x o a n d y =L n (x - n=10 x y =f (x o a n d y =L n (x -函数g(x:n=2 -5-4-3-2-1012345x y =f (x o a n d y =L n (x - n=3 x y =f (x o a n d y =L n (x -n=4 x y =f (x o a n d y =L n (x -n=5 -5-4-3-2-1012345x y =f (x o a n d y =L n (x -n=6 x y =f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论