克里金插值matlab代码

% 克里金插值示例

clc;

clear;

% 生成模拟数据

x = linspace(0, 10, 11);

y = linspace(0, 10, 11);

[X, Y] = meshgrid(x, y);

Z = sin(sqrt(X.^2 + Y.^2)) + 0.1 * randn(size(X));

% 设置克里金参数

nugget = 0.1; % 块金值

range = 1; % 范围

sill = 1; % 基台值

azimuth = 0; % 方位角

% 计算距离矩阵

D = pdist2(cat(3, X(:), Y(:)), cat(3, X(:), Y(:)));

D = D / range;

% 计算半方差矩阵

V = nugget + (sill - nugget) * exp(-D);

% 计算权重矩阵

W = V .* ones(size(D));

for i = 1:size(D, 1)

    W(i, i) = sum(W(i, :)) - W(i, i);

end

% 克里金插值

[~, I] = max(W);

Z_pred = Z(I) + (Z(I) - Z(I(I))) * (1 - exp(-D(I)));

% 绘制结果

figure;

surf(X, Y, Z, 'FaceColor', 'b');

hold on;

surf(X, Y, Z_pred, 'FaceColor', 'r');

title('克里金插值示例');

xlabel('X');

ylabel('Y');

zlabel('Z');

legend('原始数据', '插值结果');

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悦目春风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值