簡體   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