数值分析实验报告07158_第1页
数值分析实验报告07158_第2页
数值分析实验报告07158_第3页
数值分析实验报告07158_第4页
数值分析实验报告07158_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

实验多项式插值的振荡现象实验目的:在一个固定的区间上用插值迫近一个函数,明显Lagrange插值中使用的节点越多,插值多项式的次数就越高。我们自然关怀插值多项式的次数增添时,Ln(x)能否也更为凑近被迫近的函数。Runge给出的一个例子是极有名并富裕启迪性的。实验内容:设区间[-1,1]上函数f(x)=1/(1+25x2)。考虑区间[-1,1]的一个等距区分,分点为xi=-1+2i/n,i=0,1,2,,n,则拉格朗日插值多项式为n1Ln(x)li(x).i01225xi此中,li(x),i=0,1,2,,n是n次Lagrange插值基函数。实验步骤与结果剖析:实验源程序functionChap2Interpolation数值实验二:“实验:多项式插值的震荡现象”输入:函数式选择,插值结点数输出:拟合函数及原函数的图形promps={'请选择实验函数,若选g:'};titles='charpt_2';

f(x),

请输入

f,

若选

h(x),

请输入

h,若选

g(x),

请输入result=inputdlg(promps,'charpt2',1,{'f'});Nb_f=char(result);if(Nb_f~='f'&Nb_f~='h'&Nb_f~='g')errordlg('实验函数选择错误!');return;endresult=inputdlg({'请输入插值结点数N:'},'charpt_2',1,{'10'});Nd=str2num(char(result));if(Nd<1)errordlg('结点输入错误!');return;endswitchNb_fcase'f'f=inline('1./(1+25*x.^2)');a=-1;b=1;case'h'f=inline('x./(1+x.^4)');a=-5;b=5;case'g'f=inline('atan(x)');a=-5;b=5;endx0=linspace(a,b,Nd+1);y0=feval(f,x0);x=a::b;y=Lagrange(x0,y0,x);fplot(f,[ab],'co');holdon;plot(x,y,'b--');xlabel('x');ylabel('y=f(x)oandy=Ln(x)--');%--------------------------------------------------------------------functiony=Lagrange(x0,y0,x);n=length(x0);m=length(x);fori=1:mz=x(i);s=;fork=1:np=;forj=1:nif(j~=k)p=p*(z-x0(j))/(x0(k)-x0(j));endends=s+p*y0(k);endy(i)=s;end实验结果剖析增大分点n=2,3,时,拉格朗日插值函数曲线以下图。n=6n=7n=8n=9n=10从图中能够看出,跟着n的增大,拉格朗日插值函数在x=0邻近较好地迫近了本来的函数f(x),可是却在两头x=-1和x=1处出现了很大的振荡现象。并且,认真剖析图形,能够看出,当n为奇数时,固然有振荡,但振荡的幅度不算太大,n为偶数时,其振荡幅度变得很大。经过思虑剖析,我以为,可能的原由是f(x)自己是偶函数,假如n为奇数,那么nn-1是偶次幂,比较切合f(x)Lagrange插值函数L(x)的最高次项x自己是偶函数的性质;假如n为偶数,那么Lagrange插值函数nxn-1是奇次L(x)的最高次项幂,与f(x)自己是偶函数的性质相反,所以振荡可能更强烈。将本来的f(x)换为其余函数如h(x)、g(x),结果以下图。此中h(x),g(x)均定义在[-5,5]区间上,h(x)=x/(1+x4),g(x)=arctanx。h(x),n=7h(x),n=8h(x),n=9h(x),n=10g(x),n=7g(x),n=8g(x),n=9g(x),n=10剖析两个函数的插值图形,能够看出:跟着n的增大,拉格朗日插值函数在x=0邻近较好地迫近了本来的函数f(x),可是却在两头x=-5和x=5处出现了很大的振荡现象。并且,认真剖析图形,能够看出,当n为偶数时,固然有振荡,但振荡的幅度不算太大,n为奇数时,其振荡幅度变得很大。原由和上边f(x)的插值近似,h(x)、g(x)自己是奇函数,假如n为偶数,那么Lagrange插值函数Ln(x)的最高次项xn-1是奇次幂,比较切合h(x)、g(x)自己是奇函数的性质;假如n为奇数,那么Lagrange插值函数Ln(x)的最高次项xn-1是偶次幂,与h(x)、g(x)自己是奇函数的性质相反,所以振荡可能更强烈。实验多项式最小二乘拟合实验目的:编制以函数{xk}k=0,,n;为基的多项式最小二乘拟合程序。实验内容:对表中的数据作三次多项式最小二乘拟合。xiyin取权函数wi≡1,求拟合曲线*k*xk中的参数{αk}、平方偏差δ2,并作失散据k0{xi,yi}的拟合函数的图形。实验源程序functionChap3CurveFitting%数值实验三:“实验3.1”%输出:原函数及求得的相应插值多项式的函数的图像以及参数alph和偏差rx0=-1::2;y0=[];n=3;%n为拟合阶次alph=polyfit(x0,y0,n);y=polyval(alph,x0);r=(y0-y)*(y0-y)';%平方偏差x=-1::2;y=polyval(alph,x);plot(x,y,'k--');xlabel('x');ylabel('y0*and');holdonplot(x0,y0,'*')gridon;disp(['平方偏差:',num2str(r)])disp(['参数alph:',num2str(alph)])实验结果平方偏差:参数alph:实验实验目的:复化求积公式计算定积分.实验题目:数值计算以下各式右端定积分的近似值.实验要求:(1)若用复化梯形公式、复化Simpson公式和复化Gauss-LegendreI型公式做计算,要1*107求绝对偏差限为2,分别利用它们的余项对每种算法做出步长的事先预计.(2)分别用复化梯形公式,复化Simpson公式和复化Gauss-LegendreI型公式作计算.(3)将计算结果与精准解做比较,并比较各样算法的计算量.实验程序:事先预计的Matlab程序以下:(1).用复化梯形公式进行事先预计的Matlab程序formatlonggx=2::3;f=-4*(3*x.^2+1)./(x.^2-1).^3;%二阶导函数%plot(x,f)%画出二阶导函数图像x=;%计算导函数最大值f=-4*(3*x^2+1)/(x^2-1)^3;h2=*10^(-7)*12/f;h=sqrt(abs(h2))%步长n=1/h;n=ceil(1/h)+1%选用的点数formatlonggx=0::1;f=8.*(3*x.^2-1)./(x.^2+1).^3;%二阶导函数%plot(x,f)%画出二阶导函数图像x=1;%计算导函数最大值f=8.*(3*x.^2-1)./(x.^2+1).^3;h2=*10^(-7)*12/f;h=sqrt(abs(h2))%步长n=1/hn=ceil(1/h)+1%选用的点数formatlonggx=0::1;f=log(3).*log(3).*3.^x;%二阶导函数%plot(x,f);%画出二阶导函数图像x=1;%计算导函数最大值f=log(3)*log(3)*3^x;h2=*10^(-7)*12/f;h=sqrt(abs(h2))%步长n=1/hn=ceil(1/h)+1%选用的点数formatlonggx=1::2;f=2.*exp(x)+x.*exp(x);%二阶导函数%plot(x,f)%画出二阶导函数图像x=2;%计算导函数最大值f=2.*exp(x)+x.*exp(x);h2=*10^(-7)*12/f;h=sqrt(abs(h2))%步长n=1/hn=ceil(1/h)+1%选用的点数预计结果步长h及结点数n分别为h=n=1793h=n=1827h=n=2458h=n=7020(2).用复化simpson公式进行事先预计的Matlab程序formatlonggx=2::3;f=-2*((-72*x.^2-24).*(x.^2-1)-192*x.^2.*(x.^2+1))./(x.^2-1).^5;%四阶导函数x=;f=-2*((-72*x^2-24)*(x^2-1)-192*x^2*(x^2+1))/(x^2-1)^5;%计算导函数最大值h4=*10^(-7)*180*16/f;h=sqrt(sqrt(abs(h4)))%步长n=1/h;%求分段区间个数n=2*ceil(1/h)+1%选用的点数formatlonggx=0::1;f=4*((-72*x.^2+24).*(x.^2+1)-192*x.^2.*(-x.^2+1))./(x.^2+1).^5;%四阶导函数x=1;f=4*((-72*x^2+24)*(x^2+1)-192*x^2*(-x^2+1))/(x^2+1)^5;%计算导函数最大值h4=*10^(-7)*180*16/f;h=sqrt(sqrt(abs(h4)))%步长n=1/h;%求分段区间个数n=2*ceil(1/h)+1%选用的点数formatlonggx=0::1;f=log(3)^4*3.^x;%四阶导函数x=1;f=log(3)^4*3.^x;%计算导函数最大值h4=*10^(-7)*180*16/f;h=sqrt(sqrt(abs(h4)))%步长n=1/h;%求分段区间个数n=2*ceil(1/h)+1%选用的点数formatlonggx=1::2;f=4*exp(x)+x.*exp(x);%四阶导函数plot(x,f)%画出原函数x=2;f=4*exp(x)+x.*exp(x);%计算导函数最大值h4=*10^(-7)*180*16/f;h=sqrt(sqrt(abs(h4)))n=1/h;%求分段区间个数n=2*ceil(1/h)+1%选用的点数预计结果步长h及结点数n分别为=n=47h=n=35h=n=29=n=49积分计算的Matlab程序:formatlonggpromps={'

请选择积分公式,若用复化梯形,请输入

T,用复化

simpson,输入

S,用复化

Gauss_Legendre,输入

GL:'};result=inputdlg(promps,'charpt4',1,{'T'});Nb=char(result);if(Nb~='T'&Nb~='S'&Nb~='GL')errordlg('

积分公式选择错误

');return;endresult=inputdlg({'请输入积分式题号

1-4:'},'

实验',1,{'1'});Nb_f=str2num(char(result));if(Nb_f<1|Nb_f>4)errordlg('

没有该积分式

');return;endswitchNb_fcase1fun=inline('-2./(x.^2-1)');a=2;b=3;case2fun=inline('4./(x.^2+1)');a=0;b=1;case3fun=inline('3.^x');a=0;b=1;case4fun=inline('x.*exp(x)');a=1;b=2;endif(Nb=='T')%用复化梯形公式promps={'请输入用复化梯形公式应取的步长:'};result=inputdlg(promps,'h=str2num(char(result));if(h<=0)

实验',1,{''});errordlg('请输入正确的步长!');return;endtic;N=floor((b-a)/h);detsum=0;fori=1:N-1xk=a+i*h;detsum=detsum+fun(xk);endt=h*(fun(a)+fun(b)+2*detsum)/2;time=toc;tendif(Nb=='S')%

用复化

Simpson公式promps={'

请输入用复化

Simpson公式应取的步长:

'};result=inputdlg(promps,'h=str2num(char(result));if(h<=0)

实验',1,{''});errordlg('

请输入正确的步长!

');return;endtic;N=floor((b-a)/h);detsum_1=0;detsum_2=0;fori=1:N-1xk_1=a+i*h;detsum_1=detsum_1+fun(xk_1);endfori=1:Nxk_2=a+h*(2*i-1)/2;detsum_2=detsum_2+fun(xk_2);endt=h*(fun(a)+fun(b)+2*detsum_1+4*detsum_2)/6;time=toc;tendif(Nb=='GL')%用复化Gauss_LegendreI%先依据复化Gauss_LegendreI公式的余项预计步长promps={'请输入用复化Gauss_LegendreI公式应取的步长:'};result=inputdlg(promps,'实验',1,{''});h=str2num(char(result));if(h<=0)errordlg('请输入正确的步长!');return;endtic;N=floor((b-a)/h);t=0;fork=0:N-1xk=a+k*h+h/2;t=t+fun(xk-h/(2*sqrt(3)))+fun(xk+h/(2*sqrt(3)));endt=t*h/2;time=toc;tendswitchNb_fcase1disp('精准解:ln2-ln3=')disp(['绝对偏差:',num2str(abs(t+)]);disp(['运转时间:',num2str(time)]);case2disp('精准解:pi=')disp(['绝对偏差:',num2str(abs(t-pi))]);disp(['运转时间:',num2str(time)]);case3disp('精准解:2/ln3=')disp(['绝对偏差:',num2str(abs)]);disp(['运转时间:',num2str(time)]);case4disp('精准解:e^2=')disp(['绝对偏差:',num2str(abs)]);disp(['运转时间:',num2str(time)]);end入采用复化梯形公式时:(1)式运转结果为:t=精准解:ln2-ln3=绝对偏差:运转时间:(2)式运转结果为:t=精准解:pi=绝对偏差:运转时间:(3)式运转结果为:t=精准解:2/ln3=绝对偏差:运转时间:(4)式运转结果为:t=精准解:e^2=绝对偏差:运转时间:入采用复化Simpson公式进行计算时:(1)式运转结果为:t=精准解:ln2-ln3=绝对偏差:运转时间:(2)式运转结果为:t=精准解:pi=绝对偏差:0运转时间:(3)式运转结果为:t=精准解:2/ln3=绝对偏差:运转时间:(4)式运转结果为:t=精准解:e^2=绝对偏差:运转时间:入采用复化Gauss-LegendreI型公式进行计算时:(1)式运转结果为:t=精准解:ln2-ln3=绝对偏差:运转时间:(2)式运转结果为:t=精准解:pi=绝对偏差:运转时间:(3)式运转结果为:t=精准解:2/ln3=绝对偏差:运转时间:(4)式运转结果为:t=精准解:e^2=绝对偏差:运转时间:结果剖析:入采用复化梯形公式时,对步长的事先预计所要求的步长很小,选用的节点好多,偏差绝对1*107限要达到2时,对不一样的函数n的取值需达到1000-10000之间,计算量是很大。用复化simpson公式对步长的事先预计所要求的步长相对大些,选用的节点较少,偏差绝对1*107限要达到2时,对不一样的函数n的取值只要在10-100之间,计算量相对小了好多,可知足用较少的节点达到较高的精度,比复化梯形公式的计算量小了好多。用复化simpson公式计算所得的结果比用复化梯形公式计算所得的结果精度高好多,并且计算量小。入采用Gauss-LagrangeI型公式进行计算时,采用较少的节点就能够达到很高的精度。实验常微分方程性态和R-K法稳固性试验实验目的:观察下边微分方程右端项中函数y前面的参数对方程性态的影响(它可使方程为好条件的或坏条件的)和研究计算步长对R-K法计算稳固性的影响。实验内容及要求:实验题目:常微分方程初值问题'yayax1,0x1,此中,50a50。其精准解为y(x)eaxx。实验要求:本实验题都用4阶经典R-K法计算。(1)对参数a分别取4个不一样的数值:一个大的正当,一个小的正当,一个绝对值小的负值和一个绝对值大的负值。取步长h=,分别用经典的R-K法计算,将四组计算结果画在同一张图上,进行比较并说明相应初值问题的性态。(2)取参数a为一个绝对值不大的负值和两个计算步长,一个步长使参数ah在经典R-K法的稳固域内,另一个步长在经典R-K法的稳固域外。分别用经典R-K法计算并比较计算结果。取全域等距的10个点上的计算值,列表说明。实验程序:Matlab程序以下:functioncharp5RK%数值试验:常微分方程性态和R-K法稳固性试验%输入:参数a,步长h%输出:精准解和数值解图形对照%clf;result=inputdlg({'请输入

[-50

,50]间的参数

a:'},'

实验',1,{'-40'});a=str2num(char(result));if(a<-50|a>50)errordlg('

请输入正确的参数

温馨提示

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

评论

0/150

提交评论