如何解决 R 中的线性不等式系统

How to solve a system of linear inequalities in R

假设我有一个线性不等式系统:Ax <= b。我想弄清楚如何在 R 中解决这个问题。

我知道包 lintools 中的 eliminate 函数执行变量消除。输出是以下信息的列表:

A: the A corresponding to the system with variables eliminated.

b: the constant vector corresponding to the resulting system

neq: the number of equations

H: The memory matrix storing how each row was derived

h: The number of variables eliminated from the original system.

我写了一个循环来尝试执行变量消除。但是,我不确定如何从这个线性不等式系统中获得最终解决方案:

library(lintools)
A <- matrix(c(
  4, -5, -3,  1,
  -1,  1, -1,  0,
  1,  1,  2,  0,
  -1,  0,  0,  0,
  0, -1,  0,  0,
  0,  0, -1,  0),byrow=TRUE,nrow=6) 
b <- c(0,2,3,0,0,0)

L <- vector("list", length = nrow(A))
L[[1]] <- list(A = A, b = b, neq = 0, nleq = nrow(A), variable = 1)
for(i in 1:(nrow(A) - 3)){
  print(i)
  L[[i + 1]] <-  eliminate(A = L[[i]]$A, b = L[[i]]$b, neq = L[[i]]$neq, nleq = L[[i]]$nleq, variable = i + 1)
}

想必你会知道如何处理这个(我不知道):

str(L)     # the last two items in L are NULL
tail(L,n=3)[[1]] #Take the first of the last three.
$A
               
[1,] -0.5 0 0 0
[2,]  0.5 0 0 0
[3,] -1.0 0 0 0

$b
[1] 3.5 1.5 0.0

$neq
[1] 0

$nleq
[1] 3

$H
NULL

$h
[1] 0