gpt4 book ai didi

Matlab 反向二维插值 interp2

转载 作者:行者123 更新时间:2023-12-03 21:45:35 24 4
gpt4 key购买 nike

我有一个函数 V,它是根据两个输入 (X,Y) 计算得出的。由于计算要求很高,我只是在点网格上执行它,并且想依赖 2d 线性插值。我现在想为固定 Y 反转该函数。所以基本上我的出发点是:

X = [1,2,3];
Y = [1,2,3];
V =[3,4,5;6,7,8;9,10,11];

在(X,Y)的任意组合下当然容易得到V,例如:

Vq = interp2(X,Y,V,1.8,2.5)

给予

Vq =

8.3000

但是我如何使用二维线性插值法为给定的 V 和 Y 找到 X?我将不得不多次执行此任务,因此我需要一个快速且易于实现的解决方案。

感谢您的帮助,我们非常感谢您的努力。

P.

最佳答案

使用附加信息进行编辑

如果不是必须同时找到 x 和 y,而是给出了其中之一,则此问题将简化为仅在 1 个方向(即 x 方向)上找到最小值。一种简单的方法是将其表述为一个问题,该问题可以通过优化例程(例如 fminsearch)最小化。因此,我们定义函数 f,它返回值 Vq 与插值结果之间的差值。在我们给出初始猜测 x0 之后,我们尝试找到使这种差异最小化的 x。根据这个初始猜测,结果将是我们正在寻找的:

% Which x value to choose if yq and Vq are fixed?
xq = 1.8; % // <-- this one is to be found
yq = 2.5; % // (given)
Vq = interp2(X,Y,V,xq,yq); % // 8.3 (given)

% this function will be minimized (difference between Vq and the result
% of the interpolation)
f = @(x) abs(Vq-interp2(X, Y, V, x, yq));
x0 = 1; % initial guess)
x_opt = fminsearch(f, x0) % // solution found: 1.8

关于Matlab 反向二维插值 interp2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26549257/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com