发布时间 : 星期六 文章拉格朗日插值牛顿插值更新完毕开始阅读02e1573ae55c3b3567ec102de2bd960590c6d9ae
杜丁坤 20171506003 自动化1班
实验二 插值法
一、实验目的和要求
(1)学会Langrange插值、Newton插值和Hermite插值等基本插值方法. (2)学会Matlab提供的插值函数的使用方法,会用这些函数解决实际问题 (3) 按照题目要求完成实验内容、写出相应的Matlab程序给出实验结果. (4)对实验结果进行分析讨论. (5)写出相应的实验报告.
一、 实验内容
1. Lagrange插值公式.
练习1:已知1?1,4?2,9?3,利用Lagrange插值法求5的值。
拉格朗日插值的函数
%%%%%%%%%
function yi=Lagrange(x,y,xi) n=length(x); m=length(y); if n~=m
error('The length of X must be equal!'); end
p=zeros(1,n); for k=1:n
t=ones(1,n); for j=1:n if j~=k
if abs(x(k)-x(j)) error('the DATA is error'); return; end t(j)=(xi-x(j))/(x(k)-x(j)); end end p(k)=prod(t); end yi=sum(y.*p); %%%%% 主函数是: %%%%% X=[1 3 9]; Y=[1 2 3]; Xi=5; Lagrange(X,Y,xi) 练习2:已知1?1,4?2,9?3,利用Newton插值法求5的值,并与上题的结果 进行比较。 牛顿插值函数 %%%%%%%% function yi=Newton(x,y,xi) n=length(x); m=length(y); if n~=m error('The length of X must be equal!'); end A=zeros(n,n); A(:,1)=y; for j=2:n for i=1:n-j+1 A(i,j)=(A(i+1,j-1)-A(i,j-1))/(x(i+j-1)-x(i)); end end X1=xi*ones(1,n)-x; X=ones(1,n); for p=2:n for q=1:p-1 X(p)=X(p)*X1(q); end end Y=zeros(1,n); for r=1:n Y(r)=A(1,r)*X(r); end yi=sum(Y); %%%%%%%%%% 主函数: X=[1 3 9]; Y=[1 2 3]; Xi=5; Newton(X,Y,xi) 三、实验要求 要求在实验前必须预习,将实验内容事先准备好,否则不允许上机。 上机过程中由指导老师检查结果后方可做其他内容。每次实验结束后完成实验报告并在下次实验之前由学委统一交给指导教师。