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

下载本文档

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

文档简介

《数值分析》课程实验报告实验题目:插值法及其应用姓名:汪凯凯朱文博姚志东程坤学号:311001311011311007专业(领域):水利工程硕士类别:全日制工程硕士任课教师:禹海雄注:请任课教师用红色笔批阅论文。成绩批阅时间评语:教师签名:一、实验题目下列数据点的插值x01491625364964y012345678能够得到平方根函数的近似,在区间[0,64]上作图。1)用这9个点作8次多项式插值P(x)(规定用Lagrange插值或者Newton插值程序).2)用分段线性插值程序求I(x).从得到的成果看在[0,64]上,哪个插值更精确,并在同一图形上表达出来。二、实验规定(1)按照题目规定完毕题目内容(2)写出对应的MATLAB程序(3)给出实验成果(4)对实验成果进行分析讨论(5)写出对应的实验报告三、实验环节(1)拉格朗日插值程序:functionf=Language(x,y,x0)symst;if(length(x)==length(y))n=length(x);elsedisp('x和y的维数不相等!');return;endf=0.0;fori=1:nl=y(i);for(j=1:i-1)l=l*(t-x(j))/(x(i)-x(j));end;forj=i+1:nl=l*(t-x(j))/(x(i)-x(j));end;f=f+l;simplify(f);if(i==n)if(nargin==3)f=subs(f,'t',x0);elsef=collect(f);f=vpa(f,6);endendend在命令窗口输入:x=[01491625364964];y=[012345678]f=Language(x,y)得:P(x)=-0.063*x^8+0.8*x^7-0.*x^6+0.*x^5-0.00498071*x^4+0.0604294*x^3-0.38141*x^2+1.32574*x;(2)分段线性插值程序求I(x):function

yi=fd2(x,y,xi)

n=length(x);

m=length(y);

if

n~=m

error('X和Y向量的长度必须相似');

return;

end

for

k=1:n-1

Ifabs(x(k)-x(k+1))<eps

%

x(k)-x(k+1)

的绝对值必须不不大于eerror('数据有误');

return;

endIf(x(k)<=xi)&&(xi<=x(k+1))

%

确保

x(k)

<

xi

<

x(k+1)

temp=x(k)-x(k+1);

yi=(xi-x(k+1))/temp*y(k)+(xi-x(k))/(-temp)*y(k+1)

return;

end

end在区间[0,64]上作图程序:原函数:function[y]=f(x)y=sqrt(x)end分段线性函数:function[y]=div(x0,y0,x,n)fora=1:length(x)forb=1:nif(x>=x0(b))&&(x<=x0(b+1))y=(x-x0(b+1))/(x0(b)-x0(b+1))*y0(b)+(x-x0(b+1))/(x0(b+1)-x0(b))*yo(b+1);elsecontinueendendend拉格朗日插值函数:function[y]=lagrange(x0,y0,x)n=length(x0);l=ones(1,n);forb=1:nforc=1:nifb==ccontinueelsel(b)=(x-x0(c))/(x0(b)-x0(c))*l(b)endendendY=y0.*ly=sum(Y)end拉格朗日插值与原函数图像:n=input(‘inputn=:’);x0=linspace(0,64,n+1);forx=0:0.01:64y1=lagrange(x0,y1,x);holdonplot(x,y1,’r’);plot(x,f(x),’k’);disp(x);end分段线性插值与原函数图像:Symsxflxf=sqrt(x);N=input('请输入插值节点数N=');xx=0:64/N:64;ff=zeros(1,length(xx));fori=1:(N+1)x=xx(i);ff(i)=eval(f);endM=0:0.01:64;output=zeros(1,length(M));n=1;fori=2:N+1forx=0:0.01:64if(x<xx(i))&&(x>=xx(i-1))lx(1)=ff(i-1)*(x-xx(i))/(xx(i-1)-xx(i));lx(2)=ff(i)*(x-xx(i-1))/(xx(i)-xx(i-1));output(n)=lx(1)+lx(2);n=n+1;endendendezplot(f,[0,64])holdonA=0:0.01:64;plot(A,output,'g');分析讨论1,不同插值节点数所得的分段线性插

温馨提示

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

评论

0/150

提交评论