MATLAB-插值算法实现.doc

MATLAB-插值算法实现.doc

ID:58636854

大小:25.50 KB

页数:8页

时间:2020-10-17

MATLAB-插值算法实现.doc_第1页
MATLAB-插值算法实现.doc_第2页
MATLAB-插值算法实现.doc_第3页
MATLAB-插值算法实现.doc_第4页
MATLAB-插值算法实现.doc_第5页
资源描述:

《MATLAB-插值算法实现.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1.高斯插值functionf=Gauss(x,y,x0)if(length(x)==length(y))n=length(x);elsedisp('x和y的维数不相等!');return;endxx=linspace(x(1),x(n),(x(2)-x(1)));if(xx~=x)disp('节点之间不是等距的!');return;endif(mod(n,2)==1)if(nargin==2)f=GStirling(x,y,n);elseif(nargin==3)f=GStirling(x,y,n,x0);endendels

2、eif(nargin==2)f=GBessel(x,y,n);elseif(nargin==3)f=GBessel(x,y,n,x0);endendendfunctionf=GStirling(x,y,n,x0)symst;nn=(n+1)/2;f=y(nn);for(i=1:n-1)for(j=i+1:n)y1(j)=y(j)-y(j-1);endif(mod(i,2)==1)c(i)=(y1((i+n)/2)+y1((i+n+2)/2))/2;elsec(i)=y1((i+n+1)/2)/2;endif(mod(i,2)=

3、=1)l=t+(i-1)/2;for(k=1:i-1)l=l*(t+(i-1)/2-k);endelsel_1=t+i/2-1;l_2=t+i/2;for(k=1:i-1)l_1=l_1*(t+i/2-1-k);l_2=l_2*(t+i/2-k);endl=l_1+l_2;endl=l/factorial(i);f=f+c(i)*l;simplify(f);f=vpa(f,6);y=y1;if(i==n-1)if(nargin==4)f=subs(f,'t',(x0-x(nn))/(x(2)-x(1)));endendendf

4、unctionf=GBessel(x,y,n,x0)symst;nn=n/2;f=(y(nn)+y(nn+1))/2;for(i=1:n-1)for(j=i+1:n)y1(j)=y(j)-y(j-1);endif(mod(i,2)==1)c(i)=y1((i+n+1)/2)/2;elsec(i)=(y1((i+n)/2)+y1((i+n+2)/2))/2;endif(mod(i,2)==0)l=t+i/2-1;for(k=1:i-1)l=l*(t+i/2-1-k);endelsel_1=t+(i-1)/2;l_2=t+(i-1

5、)/2-1;for(k=1:i-1)l_1=l_1*(t+(i-1)/2-k);l_2=l_2*(t+(i-1)/2-1-k);endl=l_1+l_2;endl=l/factorial(i);f=f+c(i)*l;simplify(f);f=vpa(f,6);y=y1;if(i==n-1)if(nargin==4)f=subs(f,'t',(x0-x(nn))/(x(2)-x(1)));endendend2.Hermite(艾尔米特)插值functionf=Hermite(x,y,y_1,x0)symst;f=0.0;if(

6、length(x)==length(y))if(length(y)==length(y_1))n=length(x);elsedisp('y和y的导数的维数不相等!');return;endelsedisp('x和y的维数不相等!');return;endfori=1:nh=1.0;a=0.0;forj=1:nif(j~=i)h=h*(t-x(j))^2/((x(i)-x(j))^2);a=a+1/(x(i)-x(j));endendf=f+h*((x(i)-t)*(2*a*y(i)-y_1(i))+y(i));if(i==n

7、)if(nargin==4)f=subs(f,'t',x0);elsef=vpa(f,6);endendend3.拉格朗日插值functionf=Language(x,y,x0)symst;if(length(x)==length(y))n=length(x);elsedisp('x和y的维数不相等!');return;end%检错f=0.0;for(i=1:n)l=y(i);for(j=1:i-1)l=l*(t-x(j))/(x(i)-x(j));end;for(j=i+1:n)l=l*(t-x(j))/(x(i)-x(j)

8、);%计算拉格朗日基函数end;f=f+l;%计算拉格朗日插值函数simplify(f);%化简if(i==n)if(nargin==3)f=subs(f,'t',x0);%计算插值点的函数值elsef=collect(f);%将插值多项式展开f=vpa(f,6);%将插值多

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。