当前位置:  开发笔记 > 编程语言 > 正文

MATLAB中阈值内的最小二乘最小化

如何解决《MATLAB中阈值内的最小二乘最小化》经验,为你挑选了0个好方法。

用于MATLAB 的cvx套件可以解决下面的(看似无辜的)优化问题,但对于我正在使用的大型完整矩阵来说,它相当慢.我希望这是因为使用cvx是过度的,并且问题实际上有一个分析解决方案,或者巧妙地使用一些内置的MATLAB函数可以更快地完成这项工作.

背景:它是公知的,这两个x1=A\bx2=pinv(A)*b解决最小二乘问题:

minimize norm(A*x-b)

区别于此norm(x2)<=norm(x1).事实上,这x2解决问题的最小规范解决方案,因此norm(x2)<=norm(x)对于所有可能的解决方案x.

定义D=norm(A*x2-b)(等效D=norm(A*x1-b)),然后x2解决问题

minimize norm(x)
subject to
norm(A*x-b) == D

问题:我想找到解决方案:

minimize norm(x)
subject to
norm(A*x-b) <= D+threshold

换句话说,我不需要norm(A*x-b)尽可能小,只要在一定的容忍范围内.我想最小范数解x的是得到A*xD+thresholdb.

我无法在网上或手工找到问题的解析解(比如在经典的最小二乘问题中使用伪逆).我一直在搜索诸如"具有非线性约束的最小二乘"和"具有阈值的最小二乘"之类的东西.

任何见解都会非常感激,但我想我的真正问题是:在MATLAB中解决这个"阈值化"最小二乘问题的最快方法什么?

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有