是否有可能将优化从高维度降低到一维?

时间:2017-05-02 12:28:03

标签: matlab optimization

我现在正在做一个优化问题。目前,我在优化min f(x_1,x_2,...,x_n)中有代码。优化后,它可能会使x_1,x_2,...,x_n的值不同。但是,假设我想制作x_1=x_2=...=x_n并再次进行优化,我期望找到y以使f(y,y,...,y)最小化。将x_1,x_2,...,x_n设置为与初始输入完全相同,但仍然可以生成x_1,x_2,...,x_n的不同值。有没有什么好方法可以解决问题而不重写代码?任何现有的功能/技术都可以帮助我做到这一点?如果可能的话,你可以看待函数是未知的(函数代码是不可访问的,我知道的是函数的代码,当输入n参数时,它给出一个值)。

1 个答案:

答案 0 :(得分:1)

正如Erwin Kalvelagen所指出的,最常见的方法是将其定义为等式约束,但如果您的目标是简化问题,则可以定义一个新函数,该函数接受单个输入值并将其转发给每个输入您的函数f。假设您使用fmincon,解决方案是:

x = fmincon(@(x) f(x, x, x, ..., x), x0, ...)