我正在使用Matlab的fmincon来优化目标函数,这是2个向量之间的l2范数。还存在不等式约束,其是要优化的矢量和一些其他常数矢量之间的另一个l2范数。所以基本上参数的数量是这个向量的大小,我试图在l2意义上最小化。
|| M * s - s || _2 s.t. || s-t || _2<小量
M是常数矩阵,t是常数向量,epsilon是常数。
所以现在我的问题是s很大。它可以有400到20000个变量。现在,当内部尝试存储矩阵时,fmincon会耗尽内存。有没有办法解决这个问题?
谢谢!
答案 0 :(得分:0)
运行fmincon时,应考虑添加一组选项。看optimset, 所以:
OPTI = optimset('MaxIter',1000)
或结帐所有optimization options。
然后
get_val = fmincon(... , OPTI)
如果这不起作用,您应该发布您的代码
答案 1 :(得分:0)
这并没有真正解决我的问题。我最终意识到我需要传递一个用户提供的“稀疏”粗体矩阵(之前我使用的是粗糙度的默认设置,它是有限差分的近似值)。一旦我这样做,我就停止了我的记忆。但不管怎样,谢谢!