这是一个插值问题: 我有一个函数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
答案 0 :(得分:0)
使用你的符号和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')