ineq.tex 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. \chapter{INEQ: Support for solving inequalities}
  2. \label{INEQ}
  3. \typeout{{INEQ: Support for solving inequalities}}
  4. {\footnotesize
  5. \begin{center}
  6. Herbert Melenk \\
  7. Konrad--Zuse--Zentrum f\"ur Informationstechnik Berlin \\
  8. Takustra\"se 7 \\
  9. D--14195 Berlin--Dahlem, Germany \\[0.05in]
  10. e--mail: melenk@zib.de
  11. \end{center}
  12. }
  13. \ttindex{INEQ}
  14. This package supports the operator {\bf ineq\_solve} that
  15. tries to solves single inequalities and sets of coupled inequalities.
  16. The following types of systems are supported
  17. \footnote{For linear optimization problems please use the operator
  18. {\bf simplex} of the {\bf linalg} package (section~\ref{simplex}}:
  19. \begin{itemize}
  20. \item only numeric coefficients (no parametric system),
  21. \item a linear system of mixed equations and $<=$ -- $>=$
  22. inequalities, applying the method of Fourier and Motzkin,
  23. \item a univariate inequality with $<=$, $>=$, $>$ or $<$ operator
  24. and polynomial or rational left--hand and right--hand sides,
  25. or a system of such inequalities with only one variable.
  26. \end{itemize}
  27. Syntax:
  28. \begin{center}
  29. {\tt INEQ\_SOLVE($<$expr$>$ [,$<$vl$>$])}
  30. \end{center}
  31. where $<$expr$>$ is an inequality or a list of coupled inequalities
  32. and equations, and the optional argument $<$vl$>$ is a single
  33. variable (kernel) or a list of variables (kernels). If not
  34. specified, they are extracted automatically from $<$expr$>$.
  35. For multivariate input an explicit variable list specifies the
  36. elimination sequence: the last member is the most specific one.
  37. An error message occurs if the input cannot be processed by the
  38. current algorithms.
  39. The result is a list. It is empty if the system has no feasible
  40. solution. Otherwise the result presents the admissible ranges as set
  41. of equations where each variable is equated to one expression or to an
  42. interval. The most specific variable is the first one in the result
  43. list and each form contains only preceding variables (resolved form).
  44. The interval limits can be formal {\bf max} or {\bf min} expressions.
  45. Algebraic numbers are encoded as rounded number approximations.
  46. \noindent
  47. {\bf Examples}:
  48. \begin{verbatim}
  49. ineq_solve({(2*x^2+x-1)/(x-1) >= (x+1/2)^2, x>0});
  50. {x=(0 .. 0.326583),x=(1 .. 2.56777)}
  51. reg:=
  52. {a + b - c>=0, a - b + c>=0, - a + b + c>=0, 0>=0, 2>=0,
  53. 2*c - 2>=0, a - b + c>=0, a + b - c>=0, - a + b + c - 2>=0,
  54. 2>=0, 0>=0, 2*b - 2>=0, k + 1>=0, - a - b - c + k>=0,
  55. - a - b - c + k + 2>=0, - 2*b + k>=0,
  56. - 2*c + k>=0, a + b + c - k>=0,
  57. 2*b + 2*c - k - 2>=0, a + b + c - k>=0}$
  58. ineq_solve (reg,{k,a,b,c});
  59. {c=(1 .. infinity),
  60. b=(1 .. infinity),
  61. a=(max( - b + c,b - c) .. b + c - 2),
  62. k=a + b + c}
  63. \end{verbatim}