Matlab:linprog违反了约束

Matlab:linprog违反了约束,matlab,optional-parameters,linear-programming,Matlab,Optional Parameters,Linear Programming,我有一个线性规划优化,带有等式约束。(最小f'*x,使Aeq*x=beq,x>=lb) 当我得到结果时,Aeq*x=beq应该是有效的,但在输出中它被以下内容所违反: norm(Aeq*x-beq)=4.7919e-05 输出变量给出 输出.construction=3.2781e-05 我使用的是“内点”算法,它表明没有任何选项可以降低该违规的容差()?您链接到的文档表明,控制原始容差的显式选项仅适用于双单纯形算法。您可以制定原始问题的对偶,并调整对偶可行性的容差。这将起作用,因为对偶的对偶

我有一个线性规划优化,带有等式约束。(最小f'*x,使Aeq*x=beq,x>=lb)

当我得到结果时,Aeq*x=beq应该是有效的,但在输出中它被以下内容所违反:

norm(Aeq*x-beq)=4.7919e-05
输出变量给出 输出.construction=3.2781e-05


我使用的是“内点”算法,它表明没有任何选项可以降低该违规的容差()?

您链接到的文档表明,控制原始容差的显式选项仅适用于双单纯形算法。您可以制定原始问题的对偶,并调整对偶可行性的容差。这将起作用,因为对偶的对偶本身就是原始的。这听起来很难看,但似乎没有别的办法。。你也可以在目标中添加一个大的项(Bigmab(Aeqx beq),它可以线性化),但这更难看,并可能导致数值问题。更糟糕的是,因为我有Matlab R2013a,甚至没有可用的对偶单纯形算法。在这种情况下,如果你连接一个外部解算器,你会更好。似乎lpSolve有一个带指令的,和一个可以设置原始可行性容差的。
norm(Aeq*x-beq)=4.7919e-05