【问题标题】:Optimization of a two dimensional function二维函数的优化
【发布时间】:2020-11-30 04:57:00
【问题描述】:

假设我们有一个二维函数

def f(x,y): #some calculations here 
    return value

我们从观察中知道以下内容

f(x,0.9y) = 10
f(x,0.8y)=15
f(x,0.8y) = 23

...

我怎样才能找到正确的 x,y 值以最适合观察结果?如果遇到这样的优化问题,推荐哪种程序?

【问题讨论】:

  • 我不认为这是正确的陈述。观察看起来像f(3,4)=12。符号f(x,0.9y)=10 毫无意义。
  • 为什么没有意义?我们希望找到观测误差最小的最佳 x 和 y。如果我们知道其中一个参数,这就是一个简单的优化问题……我们可以从两个初始猜测开始
  • 明白,但你的数学符号是无意义的。
  • 是的,你是对的 :) 你知道怎么做吗?

标签: python optimization mathematical-optimization


【解决方案1】:

您的问题似乎有错字。无论如何,鉴于我们只有两个数据点,优化并不完全可行,因为一组联立方程可以为您提供精确的结果,适用于许多不同类型的函数。

如果您打算给出三个数据点,则有不同的方法: 请注意,x 是恒定的。这意味着无论函数是什么,我们都不能说关于 2D 函数的 x 部分。所以这实际上是一个一维问题:y 的行为如何?

鉴于我们对相关数据一无所知,并且考虑到您给出的值,我凭直觉可能会使用指数/对数函数(假设最终值是 0.7)。它也可能是一个线性函数,但一旦你拟合了你产生的函数,你就必须计算误差(here 就是你这样做的方式)。除此之外,根据我的经验,您无能为力。

【讨论】:

  • 函数依赖于两个变量。函数本身决定了 4 个非线性常微分方程的输出(整数)。我想选择 x 和 y,以便输出与观察结果尽可能匹配。
猜你喜欢
  • 2015-08-27
  • 1970-01-01
  • 2018-04-08
  • 2022-11-29
  • 2013-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-25
相关资源
最近更新 更多