二维插值、牛顿插值的matlab程序代码(共4页).doc
精选优质文档-倾情为你奉上二维插值的matlab程序代码>> x=129.0 140.0 103.5 88.0 185.5 195.0 105.5 157.5 107.5 77.0 81.0 162.0 162.0 117.5;>> y=7.5 141.5 23.0 147.0 22.5 137.5 85.5 60.5 121.0 3.0 56.5 116.5 84.0 43.5;>> plot(x,y,'o')>> Z=4 8 6 8 6 8 8 9 9 8 8 9 4 9;>> h=-Z;>> xi=70:3:200;yi=0:3:150;>> X,Y=meshgrid(xi,yi);>> H=griddata(x,y,h,X,Y,'cubic');>> mesh(X,Y,H);>> view(-60,30);图形如下:matlab中采用二维插值进行三维绘图之后,如何把图中的各个数据点导出?X,Y = meshgrid(-3:.25:3);Z = peaks(X,Y);XI,YI = meshgrid(-3:.125:3);ZI = interp2(X,Y,Z,XI,YI);mesh(X,Y,Z)mesh(XI,YI,ZI)%这句话就导出了插入的点牛顿插值(本程序算出牛顿插值多项式的系数)function c,d=newpoly(x,y)n=length(x);d(:,1)=y'for j=2:n for k=j:n d(k, j)=(d(k, j-1)-d(k-1, j-1)/(x(k)-x(k-j+1); endendc=d(n,n);for k=(n-1):-1:1 c=conv(c,poly(x(k); m=length(c); c(m)=c(m)+d(k,k);end牛顿插值matlab程序代码clc;format long; %显示15位%输入初始数据x0=0.4 0.5 0.7 0.8;y0=-0. -0. -0. -0.;x=0.6; %插值点n=max(size(x0);y=y0(1); %迭代初始值disp(y);s=1;dx=y0; %每次循环用dx记录差商表的一列for i=1:n-1 %构造差商表 %这里n为节点个数 dx0=dx; for j=1:n-i dx(j)=(dx0(j+1)-dx0(j)/(x0(i+j)-x0(j); end df=dx(1); s=s*(x-x0(i); y=y+s*df; %计算 disp(y);end专心-专注-专业