繁体   English   中英

曲面插补曲线

[英]interpolation curve to surface

这是一个插值问题:我有一个函数z = z(x,y),并且我知道x和y之间的关系,例如x = f(y,x_0)。 x_0是时间y = 0上曲线的起点。 假设x_0 = [0 1 2]具有三个值。 对于x_0的每个值,我在R ^ 2中得到一条曲线.x1 = f1(y),x2 = f2(y)和x3 = f3(y),然后使用(在R ^ 3中绘制z1,z2,z3曲线x1,f1),(x2,f2)和(x3,f3)。 我如何对z1,z2、23进行插值以获得曲面? 谢谢您的帮助,mgm

使用您的表示法以及x = f(x0,y)和z = f(x,y)的一些任意示例关系,这就是您的操作方法(我还添加了直接计算的图作为参考):

% Define grid
x0_orig = 0:2;
y_orig  = 0:3;
[x0, y] = meshgrid(x0_orig, y_orig);

% Calculate x (replace the relationship with your own)
x = x0 + 0.1 * y.^2;

% Calculate z (replace the relationship with your own)
z = 0.1 * (x.^2 + y.^2);

% Plot
subplot(1,3,1)
surf(x, y, z)
xlabel('x')
ylabel('y')
zlabel('z')
title('Original data')

%%%%%%%%%%
% Interpolate with finer grid
x0i = 0:0.25:2;
yi  = 0:0.25:3;

xi = interp2(x0_orig, y_orig, x, x0i, yi');
[x0i yi] = meshgrid(x0i, yi);
zi = interp2(x0, y, z, x0i, yi);

subplot(1,3,2)
surf(xi, yi, zi);
title('Interpolated data')

%%%%%%%%%%
% Recalculate directly with finer grid
x0i = 0:0.25:2;
yi  = 0:0.25:3;

[x0i yi] = meshgrid(x0i, yi);
xi = x0i + 0.1 * yi.^2;
zi = 0.1 * (xi.^2 + yi.^2);

subplot(1,3,3)
surf(xi, yi, zi)
title('Recalculated directly')

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM