功能:采用权重系数方法进行二维插值(Weight Function)

格式:
InterpolationWF2D(x0,y0,f0,x,y,n,a,k,t)
InterpolationWF2D(x0,y0,f0,x,y,n,a,k)
InterpolationWF2D(x0,y0,f0,x,y,n,a)
InterpolationWF2D(x0,y0,f0,x,y,n)
InterpolationWF2D(x0,y0,f0,x,y)

x0:矩阵变量存储的离散数据x坐标点
y0:矩阵变量存储的离散数据y坐标点,此参数与x0变量矩阵维数一致
f0:矩阵变量存储的离散数据在(x,y)坐标下对应的函数值,,此参数与x0、y0变量矩阵维数一致
x:矩阵变量存储的需要插值点的x坐标
y:矩阵变量存储的需要插值点的y坐标,此参数与x变量矩阵维数一致
n:选取离插值点最近的已知点个数,默认为4
a:衰减调节系数,一般情况下默认为1，当t选择类型3时,此值只能介于(0,1)之间
k:一个1*2的矩阵变量,其元素分别表示x0与y0对插值f0的权重系数,默认均一样,均取1。注意,权重系数不能小于0.
t:权重系数产生函数类型,具体可参看说明.此值默认为1


说明:

1、函数成功返回与x、y变量同维数的插值矩阵。如果插值结果不理想,可尝试更改相应参数。最后的数据如果平滑度不够,可以使用函数{SmoothGrid<矩阵运算\SmoothGrid>}对结果进行加工处理。

2、参数t选取时对应函数
t=1, f(r)=exp(-a*r)/R
t=2, f(r)=(1-r)^a       //选择此模型时,建议将n取8
t=3, r<a,f(r)= 1+(0.1-1)*r/a ;; r≥a,f(r)=0.1*(1-r)/(1-a)  //注意选择此种类型时,a值必须介于(0,1)之间
t=4, f(r)=4/(3-exp(1-r^a))
t=5, f(r)=sin((1-r)^a)
t=6, f(r)=sin(1-r)^a

注意:本函数插值出的变量值介于各个已知插值点数据值之间。

原理:{散乱数据插值预测<http://blog.163.com/shikang999@126/blog/static/17262489620150193586584/>}

例子:

//这里以小木虫的{三维曲面绘制求助<http://emuch.net/bbs/viewthread.php?tid=5999724&fpage=1>}例子为例,下面的data即来自帖子,依次回车执行各条命令可看到结果


x=data(,1);//获得data第1列数据
y=data(,2);
z=data(,3);
a=max(x);
b=min(x);
x0=MeshGrid2(b,a,50);//生成x坐标网格
a=max(y);
b=min(y);
y0=MeshGrid2(b,a,50);//生成y坐标网格
y0=y0';//注意要转置一次
z0=InterpolationWF2D(x,y,z,x0,y0);//调用本函数求解
cloud(x0,y0,z0)//可以绘制出云图1的效果

z0=InterpolationWF2D(x,y,z,x0,y0,8,1,2);cloud(x0,y0,z0)//可以绘制出云图2的效果
//图1
{<http://img0.ph.126.net/ewg8NYE2lex6DU5b2BqrxA==/6630917132605487004.png>}
//图2
{<http://img2.ph.126.net/sBCJi-meVHwo0rL4fPwINw==/6630149673489293162.png>}