lsqlin MATLAB的替代品

时间:2014-11-06 17:08:55

标签: matlab optimization matlab-coder

好的,所以我有一个脚本可以运行lsqlin优化功能数百万次。为了加速这段代码我“codegen”它(基本上自动创建一些mex文件)。这是Linear systems of inequations的后续内容。

这里的问题是lsqlin以及其他优化函数没有被转换,需要在外部调用,这会导致效率的下降。

我已经找到了MINQ工具箱,但无法理解如何从lsqlin转换为此。还找到了需要许可证的QPC工具箱,我目前正在等待。

是否有人建议使用其他工具箱以及如何将lsqlin转换为该工具箱?

对codegen lsqlin脚本的一般想法(可以看到链接被调用而不是完全转换)。

CODE:

function main_script()
  coder.extrinsic('lsqlin_script')
  for i=1:10^7
    X=lsqlin_script(A,b,X0)
    ...
  end
end

function X=lsqlin_script(A,b,X0)
  X=lsqlin(eye(2),X0, A, b,[],[],[],[],X0, optimoptions('lsqlin','Display','Off'));
end

RUN:

codegen main_script.m
main_script_mex(INPUTS)

1 个答案:

答案 0 :(得分:0)

如果您要描述您的original problem我认为您可以期待更多答案。

避免lsqlin的可能方法:
在由PxyzA定义的每个平面上计算b的{​​{3}}。 检查预测是否满足不等式要求。从那些满足选择最接近Pxyz的点。如果未找到有效点,则最近的点将位于平面的交点上。计算从Pxyz到每个交叉线的最短距离...按照应用于平面投影的步骤进行..

正如您所看到的那样,如果您认为它可以解决您的问题,那么您应该详细说明。 对于这些计算,您不需要优化功能。