matlab kriging模型

kriging工具箱:https://orbit.dtu.dk/en/publications/dace-a-matlab-kriging-toolbox

x=rand(1,100)*5;
y=rand(1,100)*5;
z=x./(y+1)+0.01*rand(1,100);
data=[x',y',z'];
scatter(x,y,25,z);
colorbar;

%模型参数设置
theta = [5 5]; lob = [1e-1 1e-1]; upb = [20 20];
%变异函数模型为高斯模型
[dmodel, perf] = dacefit(data(:,1:2), data(:,3), @regpoly0, @corrgauss, theta, lob, upb);
%创建一个40*40的网格,范围为0-5
X = gridsamp([0 0;5 5], 40);
%格网点的预测值返回在矩阵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
mesh(X1, X2, YX);         %绘制预测表面

theta是初始值,lob和upb是参数范围,计算结果存在dmodel.theta中。

>> dmodel.theta
ans =
   0.903390452322443   4.718047509652705

当对模型不确定或者变量波动剧烈时,所给范围宜较宽。

若初始值选取不合理,则可能造成曲面波动。

如以下情况:

posted @ 2021-12-07 21:22  叮叮当当sunny  阅读(1883)  评论(0编辑  收藏  举报