




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上实验 2.1 多项式插值的震荡现象 问题提出:考虑在一个固定的区间上用插值逼近一个函数。显然Lagrange插值中使用的节点越多,插值多项式的次数越高,我们自然关心插值多项式的次数增加时,是否也更加靠近被逼近的函数。Runge 给出的一个例子是极著名并富有启发性的。设区间-1,1上函数 实验内容:考虑空间-1,1的一个等距划分,分点为 , 0,1,2 .,则拉格朗日插值多项式为 .其中,是次Lagrange插值基函数。实验要求:(1) 选择不断增大的分点数目画出原函数及插值多项式函数在-1,1上的图像,比较并分析实验结果。(2) 选择其他的函数,例如定义在区间-5,5
2、上的函数 ,重复上述的实验看其结果如何。首先编写拉格朗日插值函数的Matlab实现:Matlab程序为:function y=lagrange(x0,y0,x) %Lagrange插值n=length(x0);m=length(x);for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if(j=k) p=p*(z-x0(j)/(x0(k)-x0(j); end end s=s+p*y0(k); end y(i)=s;end(1) 当函数为时,Matlab程序为:x=linspace(-1,1,100);y=1./(1+25*x.2);plot
3、(x,y)hold on;for i=2:2:10 x0=linspace(-1,1,i+1); y0=1./(1+25*x0.2); y=laglanri(x0,y0,x); plot(x,y,'r-') hold onend运行结果:结果分析:从图上看到在区间-1,1的两端点附近,随着插值点数的增加,插值函数与偏离的越远,而且出现了振荡现象。(2) 当函数为时Matlab程序为:x=linspace(-5,5,100);y=x./(1+x.4);plot(x,y)hold on;for i=2:2:10 x0=linspace(-5,5,i+1); y0=x0./(1+x0
4、.4); y=laglanri(x0,y0,x); plot(x,y,'r-') hold onend运行结果:结果分析:从图上看到在区间-5,5的两端点附近,随着插值点数的增加,插值函数与偏离的越远,而且出现了振荡现象。(3) 当函数为x=linspace(-5,5,100);y=atan(x);plot(x,y)hold on;for i=2:2:10 x0=linspace(-5,5,i+1); y0=atan(x0); y=laglanri(x0,y0,x); plot(x,y,'r-') hold onend运行结果:结果分析:从图上看到在区间-5,5
5、的两端点附近,随着插值点数的增加,插值函数与偏离的越远,而且出现了振荡现象。实验 3.1编制以函数为基的多项式最小二乘拟合程序,并用于对表3.11中的数据作3次多项式二乘拟合。- 1.0- 0.50.00.51.01.52.0-4.447-0.4520.5510.048-0.4470.5494.552取权数1,求拟合曲线中的参数、平方误差,并作离散数据的拟合函数的图像。Matlab程序如下:x0=-1:0.5:2;y0=-4.447 -0.452 0.551 0.048 -0.447 0.549 4.552;alph=polyfit(x0,y0,n);%ployfit为最小二乘拟合函数,alp
6、h为系数(按降幂排列y=polyval(alph,x0);r=(y0-y)*(y0-y)'%平方误差,注意平方的表达式x=-1:0.01:2;y=polyval(alph,x);plot(x,y,'k-');xlabel('x');ylabel('拟合曲线');hold on;plot(x0,y0,'*');title('离散数据的多项式拟合');grid on;disp('平方误差:',sprintf('%g',r);disp('参数alph:',sprin
7、tf('%gt',alph)运行结果:平方误差:2.17619e-005参数alph:1.99911-2.99767 -3.96825e-005 0.结果分析:根据给定的7个点的数据,所求的拟合函数的曲线可以基本地反映数据点的变化趋势。所求的三次多项式为: 其最小平方误差为:2.17619e-005。实验4.1实验目的:复化求积公式计算定积分.实验目的:数值计算下列各式右端定积分的近似值.(1) ; (2);(3) ; (4);实验要求:(1) 若用复化梯形公式、复化Simpson公式和复化Gauss-Legendre I 型公式做计算,要求绝对误差限为,分别利用它们的余项对每
8、种算法做出步长的事前估计.(2) 分别用复化梯形公式,复化Simpson公式和复化Gauss-Legendre I 型公式作出计算.(3) 将计算结果与精确解做比较,并比较各种算法的计算量.事前估计的Matlab程序如下:1用复化梯形公式进行事前估计的Matlab程序format long g x=2:0.01:3;f=-4*(3*x.2+1)./(x.2-1).3; %二阶导函数%plot(x,f) %画出二阶导函数图像x=2.0; %计算导函数最大值f=-4*(3*x2+1)/(x2-1)3; h2=0.5*10(-7)*12/f;h=sqrt(abs(h2) %步长n=1/h; n=ce
9、il(1/h)+1 %选取的点数%222%format long gx=0:0.01: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=0.5*10(-7)*12/f;h=sqrt(abs(h2) %步长n=1/hn=ceil(1/h)+1 %选取的点数%333%format long gx=0:0.01:1;f=log(3).*log(3).*3.x;%二阶导函数%plot(x,f); %画出二阶导函数图像x=1; %计算导函数最大值f=log(3
10、)*log(3)*3x;h2=0.5*10(-7)*12/f;h=sqrt(abs(h2) %步长n=1/hn=ceil(1/h)+1 %选取的点数%format long gx=1:0.01:2;f=2.*exp(x)+x.*exp(x);%二阶导函数%plot(x,f) %画出二阶导函数图像x=2; %计算导函数最大值f=2.*exp(x)+x.*exp(x);h2=0.5*10(-7)*12/f;h=sqrt(abs(h2) %步长n=1/hn=ceil(1/h)+1 %选取的点数估计结果步长h及结点数n分别为h = 0.n = 1793h = 0.n = 1827h = 0.n = 2
11、458h = 0.n = 70202用复化simpson公式进行事前估计的Matlab程序format long g x=2:0.01:3;f=-2*(-72*x.2-24).*(x.2-1)-192*x.2.*(x.2+1)./(x.2-1).5;%四阶导函数x=2.0;f=-2*(-72*x2-24)*(x2-1)-192*x2*(x2+1)/(x2-1)5; %计算导函数最大值h4=0.5*10(-7)*180*16/f; h=sqrt(sqrt(abs(h4) %步长n=1/h; %求分段区间个数n=2*ceil(1/h)+1 %选取的点数 %222%format long g x=0
12、:0.01: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*x2+24)*(x2+1)-192*x2*(-x2+1)/(x2+1)5; %计算导函数最大值h4=0.5*10(-7)*180*16/f;h=sqrt(sqrt(abs(h4)%步长n=1/h; %求分段区间个数n=2*ceil(1/h)+1 %选取的点数 %333%format long g x=0:0.01:1;f=log(3)4*3.x;%四阶导函数x=1;f=log(3)4*3.x;%计算导函数最大值h4=0.5*10(-
13、7)*180*16/f;h=sqrt(sqrt(abs(h4)%步长n=1/h; %求分段区间个数n=2*ceil(1/h)+1 %选取的点数 %444%format long g x=1:0.01:2;f=4*exp(x)+x.*exp(x);%四阶导函数plot(x,f) %画出原函数x=2;f=4*exp(x)+x.*exp(x); %计算导函数最大值h4=0.5*10(-7)*180*16/f;h=sqrt(sqrt(abs(h4)n=1/h; %求分段区间个数n=2*ceil(1/h)+1 %选取的点数 估计结果步长h及结点数n分别为h = 0.13411n = 47h = 0.76
14、542n = 35h = 0.18433n = 29h = 0.18546n =49积分计算的Matlab程序:format long gpromps='请选择积分公式,若用复化梯形,请输入T,用复化simpson,输入S,用复化Gauss_Legendre,输入GL:'result=inputdlg(promps,'charpt 4',1,'T');Nb=char(result);if(Nb='T'&Nb='S'&Nb='GL') errordlg('积分公式选择错误
15、9;); return;endresult=inputdlg('请输入积分式题号1-4:','实验4.1',1,'1');Nb_f=str2num(char(result);if(Nb_f<1|Nb_f>4) errordlg('没有该积分式'); return;endswitch Nb_f case 1 fun=inline('-2./(x.2-1)');a=2;b=3; case 2 fun=inline('4./(x.2+1)');a=0;b=1; case 3 fun=inlin
16、e('3.x');a=0;b=1; case 4 fun=inline('x.*exp(x)');a=1;b=2;endif(Nb='T')%用复化梯形公式 promps='请输入用复化梯形公式应取的步长:' result=inputdlg(promps,'实验4.2',1,'0.01'); h=str2num(char(result); if(h<=0) errordlg('请输入正确的步长!'); return; end tic; N=floor(b-a)/h); dets
17、um=0; for i=1:N-1 xk=a+i*h; detsum=detsum+fun(xk); end t=h*(fun(a)+fun(b)+2*detsum)/2; time=toc; tendif(Nb='S')%用复化Simpson公式 promps='请输入用复化Simpson公式应取的步长:' result=inputdlg(promps,'实验4.2',1,'0.01'); h=str2num(char(result); if(h<=0) errordlg('请输入正确的步长!'); ret
18、urn; end tic; N=floor(b-a)/h); detsum_1=0; detsum_2=0; for i=1:N-1 xk_1=a+i*h; detsum_1=detsum_1+fun(xk_1); end for i=1:N xk_2=a+h*(2*i-1)/2; detsum_2=detsum_2+fun(xk_2); end t=h*(fun(a)+fun(b)+2*detsum_1+4*detsum_2)/6; time=toc; t endif(Nb='GL')%用复化Gauss_Legendre I %先根据复化Gauss_Legendre I公式的
19、余项估计步长 promps='请输入用复化Gauss_Legendre I 公式应取的步长:' result=inputdlg(promps,'实验4.2',1,'0.01'); h=str2num(char(result); if(h<=0) errordlg('请输入正确的步长!'); return; end tic; N=floor(b-a)/h);t=0; for k=0:N-1 xk=a+k*h+h/2; t=t+fun(xk-h/(2*sqrt(3)+fun(xk+h/(2*sqrt(3); end t=t*h/
20、2; time=toc; tendswitch Nb_f case 1 disp('精确解:ln2-ln3=-0.') disp('绝对误差:',num2str(abs(t+0.); disp('运行时间:',num2str(time); case 2 disp('精确解:pi=3.979') disp('绝对误差:',num2str(abs(t-pi); disp('运行时间:',num2str(time); case 3 disp('精确解:2/ln3=1.368') disp(
21、'绝对误差:',num2str(abs(t-1.368); disp('运行时间:',num2str(time); case 4 disp('精确解:e2=7.065') disp('绝对误差:',num2str(abs(t-7.065); disp('运行时间:',num2str(time);end 运行结果:当选用复化梯形公式时:(1)式运行结果为:t = -0.351精确解:ln2-ln3=-0.绝对误差:1.3944e-008运行时间:0.003(2)式运行结果为:t = 3.336精确解:pi=3.979绝对误差:3.9736e-008运行时间:0.005(3)式运行结果为:t = 1.861精确解:2/ln3=1.368绝对误差:4.3655e-008运行时间:0.016(4)式运行结果为:t = 7.610精确解:e2=7.065绝对误差:2.0775e-008运行时间:0.007当选用复化Simpson公式进行计算时(1)式运行结果为:t = -0.7519精确解:ln2-ln3=-0.绝对误差:2.7519e-011运行时间:0.022(2)式运行结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- VB语言难点突破与试题及答案
- 网络管理员考试的资源整合试题及答案
- 网络管理员实施方案试题及答案总结
- 行政法在区域治理中的应用探讨试题及答案
- 2025年软件设计师考试开发工具选择指导试题及答案
- 2025年软考成功重点及试题及答案
- 掌握程序调试与优化技巧试题及答案
- 中标合作协议书几份
- 面试表现提升的自我训练计划
- 信息处理技术员考试开卷题目及答案
- 2024年江西各地供电服务有限公司招聘笔试真题
- 2025届山东省潍坊市高考二模历史试题(含答案)
- GINA+2024哮喘防治指南修订解读
- 篦冷机岗位试题及答案
- 中国糖尿病肾脏病防治指南(2021年版)
- 奥特曼过关测试题及答案
- 学生营养与健康知识课件
- 注射抗凝药物的观察与护理
- 高中主题班会 高三学习攻略-主题班会课件
- 2025年广州体育职业技术学院单招职业倾向性考试题库及答案1套
- 苏教版五年级数学下册典型例题第五单元分数的加法和减法·单元复习篇(原卷版+解析)
评论
0/150
提交评论