首先要下载并安装dace工具包[Matlab科学计算] 使用Kriging工具箱进行简单的插值计算_dace 工具箱下载-CSDN博客在主页设置路径中添加解压包
需要注意的是Kriging与griddate一样都可以对散乱数据进行插值计算
load('data1‘’)
%模型参数设置,无特殊情况不需修改 见说明书
theta = [10 10]; lob = [1e-1 1e-1]; upb = [20 20];
[dmodel, perf] = dacefit(S, Y, @regpoly0, @corrgauss, theta, lob, upb);
% [dmodel, perf] = dacefit(S, Y, @regpoly0, @corrgauss, theta, lob, upb); %高斯模型
% [dmodel, perf] = dacefit(S, Y, @regpoly0, @corrspherical, theta, lob, upb); %球状模型
% [dmodel, perf] = dacefit(S, Y, @regpoly0, @correxp, ,theta, lob, upb); %指数模型
% corrgauss表示高斯相关函数
% lob:相关函数参数的下界向量
% upb:相关函数参数的上界向量
%S存储了点位坐标值,Y为观测值
X = gridsamp([0 0;100 100], 40); %创建一个40*40的格网,标注范围为0-100,即格网间距为2.5
% X=[83.731 32.36]; %单点预测的实现
%格网点的预测值返回在矩阵YX中,预测点的均方根误差返回在矩阵MSE中
[YX,MSE] = predictor(X, dmodel);
X1 = reshape(X(:,1),40,40); X2 = reshape(X(:,2),40,40);
YX = reshape(YX, size(X1)); %size(X1)=40*40
figure(1), mesh(X1, X2, YX) %绘制预测表面
hold on,
plot3(S(:,1),S(:,2),Y,'.k', 'MarkerSize',10) %绘制原始散点数据
hold off
figure(2),mesh(X1, X2, reshape(MSE,size(X1))); %绘制每个点的插值误差大小
在dacefit函数中,参数的含义如下:
S:输入变量的样本数据矩阵,每一行代表一个样本点,每一列代表一个输入变量。
Y:响应变量的样本数据矩阵,每一行代表一个样本点,每一列代表一个响应变量。
@regpoly0:回归多项式函数的句柄,用于拟合输入变量和响应变量之间的回归关系。regpoly0表示零阶多项式,即常数回归模型。
@corrgauss:相关函数的句柄,用于描述输入变量之间的相关性。corrgauss表示高斯相关函数。
theta:相关函数的参数向量,用于调整相关函数的形状和范围。具体含义根据相关函数的定义而定。
lob:相关函数参数的下界向量,用于限制参数的范围。
upb:相关函数参数的上界向量,用于限制参数的范围。
函数返回值包括:
dmodel:拟合好的DACE模型,可以用于进行预测和插值。
perf:拟合模型的性能指标,如均方根误差(RMSE)、均方误差(MSE)等。
通过调整相关函数的参数和范围,可以对DACE模型进行优化,以最好地拟合输入变量和响应变量之间的关系。