matlab - 在 fmincon 中应用变量的变化
问题描述
(免责声明:我也发帖到mathworks上,希望能尽快得到答复。我希望这不会被反对。)
我想从 R^I 中最小化一个表现良好的实值目标函数 $f$。可行点位于一组有限点 x^1 到 x^n 的凸包内。我只对找到 f(y) 最大化的点 y 感兴趣,而不关心允许我将 y 写为 x^i 的凸组合的 N 个权重(在 N 维单纯形中)。
当然,我可以简单地将优化写为:
popt = fmincon(@(p) f(x'*p),[],[],ones(1,N),1,zeros(N,1),[]);
y = x'*popt;
然而,如果跨越凸包的点几乎是多重共线的,那么这个复合函数(作为 p 的函数)在最优值附近非常平坦。我怀疑这会大大降低 fmincon 的速度,并且会帮助它在 R^I 空间而不是 N 维单纯形上“解决问题”。我可以采取哪些步骤来实现这一目标?
解决方案
推荐阅读
- php - 第一次使用 PHP cURL,集成 API 签名表单的小问题
- sql - 如何做 2 个子请求来计算表中的男人和女人
- python - 在我的 python 脚本中更新 requests.get
- javascript - 复制功能无法识别 p5js 中另一个画布上的图像
- vue.js - Vue/Nuxt - 从子元素触发鼠标离开
- r - R中函数运行时的异常值
- parsing - 逐字节搜索文件的正确方法是什么?
- wordpress - 在帖子页面上预填充 Woocommerce 简短描述
- firebase - 从 Firestore Flutter 中的文档中获取用户名
- java - 无法解析方法'toString()