【问题标题】:Finding solutions for a 2 variable function寻找 2 变量函数的解决方案
【发布时间】:2016-05-04 10:24:19
【问题描述】:

我有一个函数 Y = f(a,b)。

a 和 b 以 0 为界

函数没有定义,但可以想象成一个黑盒子,如果我插入 (a,b) 的值,我会得到一个“Y”。也可能存在 (a,b) 的其他值给出相同的 Y。但它始终是 (a,b) 的有限数量。

我使用了蛮力搜索并找到了所有值并用它绘制了一个 3D 图,如下所示。但这并不总是曲线。这只是我的初始条件的一种情况。

现在我的目标是知道 Y' 的特定值,我需要以最少的迭代次数找到所有解决方案 (a,b)。 (通过迭代,我的意思是,将 (a,b) 插入函数以获取 Y)。

【问题讨论】:

  • 您使用哪种编程语言和软件包来绘制图形?
  • @PeterDavidCarter 我正在使用 C++ 和 Visual Basic。该图基本上是在 Matlab 中使用蛮力算法获取所有值后制作的。

标签: algorithm search curve-fitting nonlinear-optimization non-linear-regression


【解决方案1】:

一般情况下没有解决方案。如果 f 是某个哈希函数,唯一的解决方案是尝试所有输入。

现在假设 f 是连续的,至少在您正在寻找的值附近并且它相对平滑,那么您可以取一个三角形覆盖您正在寻找值的区域,计算它的顶点和中心的三角形,并猜测 3 个三角形中的哪一个可能包含您的解决方案,然后限制为那个。

或者,您可以在该区域上创建一个网格,计算网格中每个顶点的值,然后将搜索限制在您认为可能存在该值的单元格并继续搜索。通过这种方式,您可以确保单元格足够小,以免错过感兴趣的特征。

这一切都依赖于对 f 的行为方式有所了解,并且如果 f 不符合您的期望,它会以一种糟糕的方式工作或根本不起作用。

【讨论】:

  • 实际上我正在尝试使用泰勒级数曲线拟合在几次迭代中近似绘图,然后在该区域周围使用粗略搜索来找到值。
猜你喜欢
  • 1970-01-01
  • 2014-07-20
  • 2017-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-24
  • 2015-10-25
相关资源
最近更新 更多