如何找到不确定函数的最大和最小界限

计算科学 优化 matlab 凸优化
2021-12-20 06:03:50

首先我想说我已经搜索了不确定拟合,稳健拟合,线性优化,凸优化等。但是我缺乏解决这个问题的知识,我需要你的帮助。

我有一个函数 gnom(x) = sin(x)*cos(x) 和一个不确定的部分 dg(x) = alpha*sin(8x)

和 g(x) = gnom(x) + dg(x)

我对函数进行了采样,这意味着:

k = -47:1:47;

x = 0.021*k;

但我没有 alpha,但它是有界的:0 <= alpha <= 0.2

我想找到 g(x) 的上限和下限。这意味着找到最大化 g(x) 的 alpha 和最小化 g(x) 的 alpha。两个不同的问题。

我几乎可以肯定,这些问题(单独)可以写成以下形式的优化问题:

max g(x) = sin(x)*cos(x) + alpha*sin(8x)

s.t. 0 <= alpha <= 0.2

但是因为我有函数 SAMPLED 它不应该这么困难(非线性优化)。我可以把问题写成:

max G1 + alpha*G2

s.t. 0 <= alpha <= 0.2

在哪里:

G1 = sin(x)*cos(x) 采样 x = 0.021*k;(如前所述)。G1 是 <95x1 双倍>

G2 = sin(8x) 采样 x = 0.021*k;(如前所述)。G2 是 <95x1 双>

alpha 是要找到的常数

我希望将其作为优化问题(matlab 或 SeDuMi 本机命令)而不是算法(使用 for 循环等)来解决。我需要这个,因为有更复杂的优化需要解决......

我知道这并不难,但是我搜索了很多,找不到答案……希望你们能帮助我。

非常感谢

1个回答

您正在尝试解决非凸函数的优化问题,也没有任何其他有用的属性。这只能通过“全局优化问题”的算法来解决,这些算法通常非常复杂。另一方面,由于在您的情况下问题是一维的,因此您所做的采样似乎是一种完全合理的方法。